In his article “The Mythical Man-Month”, Frederick P. Brooks states the fact that much of the software projects are late and tries to investigate this phenomenon. In his opinion, estimation techniques are insufficient because of optimism, the progress of projects are not monitored well, and managers take wrong measures to a project that starts to be late. He states that, usually effort is thought to be equivalent of progress which is in fact wrong in his opinion.
In Brooks point of view, optimism is the first reason of late projects. Programmers assume that everything will be in ideal condition and usually a safety margin or risk management is omitted. Some complexities, especially those are inherent to the problem domain that is worked on, can not be seen a-priori. Incompleteness and inconsistencies of our ideal solution usually appears at implementation phase. Besides, prototypes may be required to be implemented to chose the best fitting alternative. These all will sure to yield deviations from assumed ideal conditions and the time estimates based on these ideal conditions will be shaken.
Calculating time due man-month is another failure of correct estimation. In such a complex activity as software engineering, there will sure be communication overhead, and variations about work done by different man. Sometimes as team grow, the communication overhead may even cross over all the gain of parallelism. Moreover, some tasks are not able to be partitioned, or can feasibly be partitioned to different programmers at all. Therefore, estimated project time found by multiplying man and month will be highly questionable.
Time required for systems test part is usually underestimated because of optimism: only minimal amount of bugs will be expected to appear. It is clear that generally this is far from real, besides, debugging is mostly a process that can not be partitioned, therefore must be done sequentially. Underestimate for testing time will not reveal itself until the very end of project, and this will be at the time that is most devastating in financial perspective. Fully hired development team with dissatisfied customers and boss, and psychology will make situation worse.
Weather because of the prior mentioned reasons, or because manager mis estimated project time in order to obey boss’s delivery date, when a project is late, hiring more men usually wont help to complete the project on time. Training, orienting and communication overhead of new employees will decrease the effect of parallelism which will yield to Brook’s law “Adding manpower to a late software project makes it later”