Effective Engineering
e-Newsletter
– 12/19/2002
This is your bi-weekly e-Newsletter from Effective
Engineering Consulting Services (www.effectiveeng.com).
If you would like to receive Effective Engineering e-newsletters as
they are published, please send an email to e-newsletter@effectiveeng.com,
and we will add you to our distribution list.
eN-0212191:
Too Many Cooks Spoil the Broth!
By
Tom Dennis – President, Effective Engineering [tdennis@effectiveeng.com]
A tendency of management when projects start to
encounter delays is to add more people (more cooks).
While it may sound reasonable to add people to make up some time,
unless they are the right people with the right skills added at the right
time, the effect may be the opposite of what was intended.
In his famous book, “The Mythical Man-Month: Essays on Software
Engineering” ,
Frederick P. Brooks, Jr. states “Brooks Law: Adding manpower to a late software project makes it later.”
[p 25] This is true not only for
software projects, but for any projects with complex interrelationships.
Some relevant quotes from Brooks are given below:
► “Men and months are interchangeable only when the task can be
partitioned among many workers with no communications between them.” [p
16]
► “When a task cannot be partitioned because of sequential
constraints, the application of more effort has no effects on the schedule.
The bearing of a child takes nine months, no matter how many women are
assigned.” [p 17]
► “In tasks that can be partitioned but which require communication
among the subtasks, the efforts of communications must be added to the amount
of work to be done.” [p 17]
► “The added burden of communications is made up of two parts,
training and intercommunications. Each
worker must be trained in the technology, the goals of the effort, the overall
strategy, and the plan of work. This
training cannot be partitioned, so this part of the added effort varies
linearly with the number of workers. [Note:
when the people currently involved in the project must be the ones conducting
the training, this changes the linear relationship, and adds further delay.]
Intercommunication is worse. … If each part of the task must be
separately coordinated with each other part, the effort increases as
n(n-1)/2.” [p 18]
► “Since software construction is inherently a systems effort – an
exercise in complex interrelationships – communication effort is great, and
it quickly dominates the decrease in individual task time brought about by
partitioning. Adding more men
then lengthens, not shortens, the schedule.” [p 19]
► “No parts of the schedule are so thoroughly affected by sequential
constraints as component debugging and system test. Furthermore, the time required depends on the number and
subtlety of the errors encountered. … Testing is usually the most mis-scheduled
part of programming. … Failure to allow enough time for system test, in
particular, is particularly disastrous. Since
the delay comes at the end of the schedule, no one is aware of schedule
trouble until almost the delivery date. Bad
news, late and without warning, is unsettling to customers and to managers.
… It is therefore very important to allow enough system test time in the
original schedule.” [p 19-20]
► “For the programmer, as for the chef, the urgency of the patron may
govern the scheduled completion of the task, but it cannot govern the actual
completion.” [p21]
► “The number of months of a project depends upon its sequential
constraints. The maximum number
of men depends upon the number of independent subtasks. From these two quantities one can derive schedules using
fewer men and more months. One
cannot, however, get usable schedules using more men and fewer months.“ [p
25-26]
Adding
people (cooks) to a project can significantly increase development expenses.
This is shown in the graph at www.effectiveeng.com/the_problem.htm
(also shown here) in green. Depending
on when in the project people are added, the direct cost of these additional
people will vary. These costs
impact the company’s bottom line (profits).
However, as is illustrated above, adding manpower to a late project
usually makes the project later, so added people also tend to cause project
delays, as shown in red in the graph (and as described in eN-112102 – Late
Projects Kill Companies), and can lead to poor quality (as described in
eN-120502 – Poor Quality Products Imply A Poor Quality Company).
When this is the case, both the top line (revenues lost forever, and
sales lost due to delayed delivery and poor quality) and bottom line (profits
lost due to increased development and support expenses) are adversely
impacted.
When developing complex products, time must be taken up front to
identify and plan for the right number of cooks to do all of the required
tasks in a realistic and controllable fashion.
These tasks must then be tracked to ensure project milestones are being
achieved on schedule.
_______________________
Frederick P. Brooks, Jr. “The Mythical Man-Month: Essays on Software
Engineering”. © 1975 by Addison-Wesley Publishing Company, Inc.
Copyright © 2002
Effective Engineering Consulting Services, All Rights Reserved