28 Kasım 2013 Perşembe

Why is “adding manpower to a late software project makes it later”?


Should we add manpower to the project if we discover that our software project is behind schedule? How can we catch up in a late project?

According to Brooks, failure to meet schedule is the reason for most software project failures. The reasons for that:
1.      We don’t know how to estimate (overly optimistic).
2.      We confuse effort with progress.
3.      Software managers give in to pressure to reduce time estimates because they are uncertain of their estimate.
4.      We don’t monitor schedule progress properly.
5.      We tend to handle schedule slips by adding people.  This tends to magnify the problem…


Progress vs. Cost, 1

When there is no dependency among people, the amount of time to do a task diminishes with each new person.  Note that the cost (people * months) is constant.

Progress vs. Cost, 2

When there is a dependency and the task cannot be partitioned, adding people has no effect on time required, but it has a big effect on cost.



Progress vs. Cost, 3


If task can be partitioned, but requires communication, must handle training and communication as each person is added.  This can cause project to be later.

Example:
Suppose that at 2 months, we achieve milestone A.  We must deliver on time. What can we do?


Assume the project will go according to plan from here on (optimism!)
So 9 person-months must be accomplished in 2 monthsà Add 2 people.




Assume the project estimate is off by a factor of 2.
So 18 person-months must be accomplished in 2 monthsà Add 6 people.




n  Let’s say we add 2 people at month 2.
n  Must train them – assume this takes 1 month and requires 1 of the other 3 people.
n  During month 3:
n  3 person-months of training work
n  2 person-months of actual work.
n  Still have 9-2=7 person-months of work, but only 1 month left!
Brooks’s law:  Adding people to a late software project makes it later.

Should we add manpower to the project if we discover that our software project is behind schedule? How can we catch up in a late project?

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. We cannot, get workable schedules using more men and fewer months.

Exceptions – What should be Done
·         Projects that are not really late, especially those with unrealistic or otherwise flawed timetables.
·         Over-hiring: We can add more staff than are needed. For example, if we think that our project will require 3 people for 6 months, we can hire 4 people at the beginning of the project.
·         Good project segmentation: The notion here is that if a team is broken up into sub-teams, the addition of a new member will drain fewer time, talent and energy resources from the project, since fewer team members will have to be involved in the ramping-up of a new player whose responsibilities and tasks are compartmentalized and relatively isolated—in terms of inputs, outputs and impact on the “big picture” or project as a whole.

Hiç yorum yok:

Yorum Gönder