|
Business Accent
The Free Cycle Development Model
Principles of open source and grid computing can be applied
to increase business profitability says Vikas Mujumdar
The first part of this article appeared in our previous
issue

Vikas Mujumdar
|
The Open Source Approach
Once it has been established that there are available free cycles, a model similar
to that employed for open source software development must be adopted to harness
those free cycles.
The figure below depicts how this might be accomplished.
Projects A, B, and C have resources with free cycles. These are utilized by
Project D. Project managers for each of these projects collaborate with each
other to enable the free cycle development model (FCDM). In this scenario, for
the sake of simplicity, only one project is shown to be using free cycles from
other projects. It is conceivable that there is a give and take of free cycles
across projects.
To make this work well, excellent project management skills will be required
along with a robust mechanism of effort estimation (under variable circumstances),
dynamic work allocation, tracking, re-allocation, and validation, verification
and merging.
There are several unusual situations a project manager will have to factor in
when planning for and estimating schedule and effort in such a model:
Free cycles from a particular resource are not guaranteed and can vary through
the course of the assignment.
Task re-allocation across resources will be much more frequent than in a dedicated
group.
Time and effort will have to be budgeted for merging the deliverables from various
resources in the grid.
Face-to-face interactions may not always be possible and hence written communication
and documentation has to be detailed and unambiguous.
If working with fixed deadlines, the project manager will have to be able to
reasonably accurately predict and track free cycle availability and utilization.
| Production Support |
Coding, Reviews, QA, Documentation |
| Requirements Analysis |
Reviews |
| Design |
Reviews |
| Development |
Reviews |
| System Testing |
Reviews, QA, Documentation |
| UAT Support |
Coding, Reviews, QA, Documentation |
What can be accomplished
It is conceivable that any work that an individual engages in during his primary
work cycles, may be assigned to the individual during the free work cycles.
The list of activities that can be assigned to an individual to utilize the
free cycles is almost the same as the complete list of activities an individual
may be expected to be engaged in during regular course of business:
- Coding
- Reviews (Requirements, Designs, Architectures, Code,
Documentation)
- QA / Testing
- Production Support
- Documentation
Of course, it would be unrealistic to expect a software programmer to work on
multiple complex development projects to utilize free cycles. Or to expect an
individual engaged in QA to test multiple complex applications. Hence, a reasonable
combination of work must be determined based on the qualifications and experience
of the individual and the nature of the primary project.
The table below lists feasible combinations of work assignment.
Some Essential Ingredients
There are some essential ingredients in the recipe for a successful approach
to the Free Cycle Development model. These are explained below.
- Collaborative and adaptive project management
Typically, project managers are extremely possessive about the resources assigned
to their project teams. This is understandable, since one of the key performance
indicators for project managers is the delivery of a project within schedule
and budget.
In this model, project managers will have to learn to share their resources
to benefit other projects, while at the same time ensuring that their own projects
are not adversely impacted.
The model itself, and hence the people and processes, must be highly adaptable
and flexible. Even projects that follow the simplest model, the Waterfall model,
do not always follow the plan. In the FCD model, there are many more variables,
and quickly adapting the plan to realign with the new variables will ensure
success. Hence, more intensive project monitoring and tracking is essential.
- Collaborative development
Similarly, developers are very possessive about the code they write. Suggestions
for improvement or modifications to their code are not very well received.
Developers must learn to understand their own limitations and accept the wisdom
of others to achieve a deliverable of impeccable quality. This should also be
taken as an opportunity for on-going learning.
Every deliverable that leaves an individuals workstation
must be of the highest quality possible, limited only by the individuals
capability. At the same time, the resource must be open to the fact that anything
can always be improved upon and embrace collaborative development.
- Choice of architecture and technology
Some types of architecture, clearly those closer to what is
referred to as loosely coupled architectures will lend themselves
best to this model. The Service Oriented Architecture (SOA), which is the future
wave, is one of the best examples of an architecture that is suitable for the
FCDM.
- Development processes and standards
Clear and uncomplicated processes must be defined for all activities in this
model. Remember that this model assumes a group of distributed and only moderately
homogeneous resources. Even more importantly, standards, preferably industry
rather than proprietary, must be defined and adhered to when creating any deliverable
in this model.
Some of the concepts of Agile programming, described in the Agile Manifesto,
may be quite useful here.
Everything in this model, from processes and standards to design and architecture
to the management approach, should be kept simple. The model inherently introduces
a fundamental complexity and every other aspect of the operating framework for
the model should be kept as simple as possible.
Benefits of the FCD Model
The benefits of a well-executed FCD model are many.
The same number of total resources will deliver more work in this model by simply
putting their free cycles to effective use.
Because of this, not necessarily each and every project, but the set of projects
as a whole, will be delivered faster than in the traditional approach.
Each individual could potentially be utilized to 100% capacity, thus giving
a higher return on investment.
Due to the process of harnessing collective intelligence every deliverable
will be of a quality that surpasses that which otherwise would have been limited
by the capability of an individual or a relatively smaller group of individuals.
- Increased resource motivation and challenge
Although a soft benefit, its value cannot be underestimated. In this model,
every resource will be able to contribute across a variety of projects that
utilize their time, skill and potential to the maximum. In such an environment,
resources are bound to remain motivated, much more than if they were to feel
trapped in a project that may or may not utilize their potential to the maximum.
Resource motivation and interest in this model could be further enhanced by
a reward mechanism where an individual could get a bonus for free cycles put
to good use for another project.
All of the above is going to translate into what matters most to any business
increased profitability. Especially in the case of Fixed Price projects,
if a project can be delivered ahead of schedule by simply using free cycles
that cost nothing, there is going to be a significant increase in profitability
since the price charged to the customer is fixed. Alternately, some of the resultant
savings could be passed on to the customer, thus resulting in highly competitive
pricing and increasing the chances of getting new business and revenue.
One would not be wrong in dismissing this as an Utopian concept. Cross-location
project execution and global delivery management are still challenges that many
companies are trying to overcome. This model requires significantly greater
discipline and skills, both technical and managerial.
However, there are very few options left for software development companies
to differentiate themselves and enhance their profitability. Shying away from
a solution because it requires a greater skill or poses a bigger challenge would
be a defeatist approach and would only speed up the progress to mediocrity.
This model will not help improve productivity, quality or any of the other attributes
used to measure the efficiency of a software development firm. Some of the limitations
inherent in the human resources employed will remain and other solutions must
be found to overcome those problems.
Those who get the implementation right are going to be able to survive the tough
times ahead.
The author has 15 years of experience in software development
and is currently a Senior Delivery Manager with the PrimeSourcing division of
i-flex solutions ltd. based in Mumbai. The views and ideas in this article are
entirely his own and do not in any way reflect the views or ideas of i-flex
solutions ltd.
|