November 26 2020 at 11:30AM
The Mythical Man-Month
This article is focusing mostly on software development projects and will highlight the arguments behind why adding additional resources to a late software project makes it later.
Man-month is a unit of effort used in estimating and scheduling projects in several industries. In his well-known book, also used as title of this article, Frederick Brooks states that however cost could be calculated as a product of the number of men and the number of month, it is absolutely not applicable for progress. Using man-month for measuring the size of a job implies that men and months are interchangeable. However, we all know that interchangeability is true only for tasks where no sequential constraints exists. No matter how many women are assigned, the bearing of a child takes nine months.
The factor that contributes most as added burden to the amount of work to be done is communication. This is also the reason why adding more resources to a project could slow it down. Adding new staff to a project will require the following communication overhead.
- Training is necessary for each worker on the technology, the product strategy and the processes. This work should be done with all newcomers, so this part of the added effort varies linearly with the number of workers.
- Intercommunication is worse, as three workers require three times as communication as two, four require six times as much, and if common meetings become necessary matters get even worse.
- In smaller projects adding too many people to the staff can result in overlapping work and at some point, extra resources can slow down the people trying to solve the problem.
There are some useful hints that could be used for designing a software project and diminishing later communication overhead. Firstly, new projects are to be started with a small senior team and additional staff should be added only after code architecture and MVP are complete. A stabilized codebase can significantly reduce training time for future newcomers. Secondly, during early stages only full-time, long-term contributors are to be added to the team. Once the project is established, new contributors could be added by calculating ramp-up time to project estimates.
Regardless of how smart our project team has been structured in the beginning, uncertainties in estimating could easily result in missed deadlines. To overcome broken schedules it could be recommended to pull in experienced senior staff on temporary basis, hire specialist for specific critical blocking issues, or involve consultants for tasks that could be outsourced with minor ramp-up time.
Note and Disclaimer: The author of this Blog post is Piltmann Ákos, PMI-ACP®. He is the guest author of PMI.hu. The writing reflects the author's own professional opinion, findings, and conclusions, which do not necessarily agree with the position of PMI Budapest, Hungarian Chapter, and cannot be considered as an official recommendation, resolution, or opinion of PMI Budapest. The copyright and publication rights of the writing belong to the original author.