|
| Menu |
 |
|
|
|
|
“Faster-Better-Cheaper”
Strategy for Software Development
Projects
Qaiser
Khan
|
| |
|
While the goal
of any software development project
has always been to produce excellent
software within the prescribed time
and budget limits, the redefined and
most modern mindset of “Faster-Better-Cheaper”
software development projects with
implied competitive suggestion is
becoming more popular among the software
houses throughout the world, especially
in the USA, China, and India. In the
current ruthlessly dog eat dog competition
for software supremacy, the old fashion
philosophy and methods will just not
cut it in the marketplace. What the
new mindset means for the developers
is to strive to beat the other guys
in the market, develop a killer applications,
and do so cheaper than the other guys
can do. This is the ultimate objective
of the modern project management.
The term “Faster-Better-Cheaper”
was popularized by Dan Goldin during
his tenure as, NASA, American aerospace
agency, administrator. Goldin adopted
this approach to all NASA's space
projects after American Congress
drastically cut his agency's budget
and asked him to do more with little.
Goldin responded with his resoundingly
successful implementation of the
“Faster-Better-Cheaper” approach
to his projects. Project managers
from multitude of disciplines, including
software developing, studied and
learned valuable lessons from this
approach. What changed for the software
developer are the goal and the craft
of project management with accentuation
on aggressiveness.
The new goal emphasizes that projects
must be completed faster, and its
product must be better and cheaper
than the competition. The change
in the craft, however, has numerous
elements but first and foremost,
the most important one is the renewed
emphasis on the optimization of
the available resources. How we
go about doing this optimization?
This is the focus of attention of
this article.
One of the best ways to solve a
problem fast is to break the problem
into pieces and arrange for all
the pieces to be solved simultaneously
parallel processing. These pieces
are variably called, tasks, elementary
tasks, pebbles, activities or a
number of other terms preferred
by various organizations for their
internal use. In this article we
will call these pieces elementary
tasks. The more the elementary tasks,
the quicker the resolution of the
total problem. This simple and obvious
observation underlines the science
and art of modern project management
the theoretical essence of the project
management. In practice, however,
almost always the environment is
not as accommodating. There are
a variety of reasons that this breaking-up
into pieces and simultaneous solution
of those pieces can work only up
to a point. They all relate to the
practical problems of (1), cohesiveness
of the elementary activity, (2),
dependency of the elementary activities
on each others, and (3), assignment
of resources to complete each elementary
activity. Lets discuss each of these
elements as follows:
Cohesiveness
Cohesiveness of an elementary activity
occurs when further division of
it is either impossible or will
not yield any additional advantage
that is, when it reaches the point
of diminishing returns. A skilled
project manager will reduce the
size of each elementary activity
to its minimum manageable extent
and then chart an attack strategy
that will complete the activity
with minimum possible resources
and will also conform to the overall
project completion goal. He will
avoid miss allocation of resources
by assigning suitable resources
that are just appropriate for that
particular elementary element.
Dependency
Dependency is a state in the life
cycle of an elementary activity
where it has to wait for one or
more other elementary activities
to be completed before work on this
activity can be concluded. For example,
in a house construction work the
building of the roof cannot be completed
until the walls have been erected
and ready to support the roof. Although,
some assembly work can be worked
on during the time the walls are
being raised. In this case the erection
of the walls is a dependency for
the construction of roof activity.
Project manager will also define
these dependencies for each of the
elementary activity. If designed
poorly it can come back and haunt
the development staff with lots
of frustration and uneasiness, perhaps
cost and time overruns and, conceivably,
defective software products.
Assignment
of resources
Project managers have many essential
resources available to them to assign
to the individual elementary activities.
These include computer time, clock
time, human resources, and software
development tools, etc. Assigning
proper resources to proper elements
is a valuable skill. To achieve
a high level of optimization a project
manager will design the project
such that the number of elementary
elements simultaneously being worked
on is at the maximum the available
resources can possibly sustain.
The allocation of resources to each
element is also built into the project
design. This is a dynamic process
with constant shifting of resources
from one element to another. Resources
freed up from one element are to
be immediately reallocated to others
waiting to be completed. Idling
resources is a waste that must be
avoided by all means. It also shows
poor project design. Some contingency
plans must also be built into the
project design to circumvent this
eventuality in situations where
idling is caused by external factors
beyond the control of the project
manager. A skillful project manager
will constantly keep an eye on the
dependent elements upcoming to be
worked on and the freed up resources
for immediate reassignment to that
element. This transition must be
smooth without the occurrence of
idling or delays.
These
strategies play an important role
in developing software projects
that will satisfy the intended goals
of the project. Although there are
project management software tools
available, they mostly deal with
tracking the project after it has
been designed and defined by the
project manager. The basic work
of identifying the elementary elements,
dependencies, and the allocation
of the resources still have to be
worked out by the project manager.
Project managers paying attention
to these basic strategies will get
the biggest bang for their buck
and efforts with instant results.
During
his 25-year career as project manager,
the writer has developed large,
complex, multi-million dollar software
projects for the state government
in the US. He has provided training
and consultancy services in project
management to software houses in
the USA, India, China, and Japan.
|
|
|
| Latest |
 |
|
|
|
|
|
|
|
|