We have all been taught math problems along the following lines – “If 2 developers take 70 days to finish building a software, how long would 7 developers take?”.
Our math textbook encourages us to take a linear, proportional relationship to solve this problem. Managers in the real world, while estimating effort for their teams, often use the same logic. In the process they do not factor the time it takes to:
- Explain the software to all the 7 developers and align them on the same goal
- Minimize overlap among the individual tasks of the developers
- Conduct meetings to check-in on progress and make interventions
- Foresee all the challenges of developing in a particular technical environment
- Minimize bottlenecks in tasks that are sequential
- Integrate the separate pieces of work into a seamlessly working software
Brook’s law states that adding human resources to a late software project makes it later. As an IBM study shows, while the difference in efficiency between the best and the worst individuals could be 10x, the difference between teams can be as much as 2000x.
In real life, as in the world of math textbooks, dividing a task within a larger team is easy. The challenge is to coordinate, communicate and integrate the disparate chunks to a fully functional whole.