Brooks’ Law

Image created with Midjourney. Image prompt:
Image created with Midjourney. Image prompt: A group of minimalistic figures adding more blocks to an already teetering tower of blocks, representing a late project. Each new figure appears slightly faded and transparent, indicating their recent addition. The tower's height is visibly increasing, but it's also starting to sway dangerously.
💬
Adding human resources to a late software development project makes it even later.

In the dynamic world of software development, project delays are not uncommon. When faced with a looming deadline, the intuitive response might be to throw more resources at the problem. However, Brooks' Law suggests otherwise: "Adding human resources to a late software development project makes it later"1.

Coined by Fred Brooks in his influential book, 'The Mythical Man Month,' this law is not so much a rigid rule but an observation of a common pitfall in software project management. The underlying logic is that adding new members to a team increases communication overhead and requires a ramp-up period, which can slow down progress in the short term. Moreover, some tasks are not easily divisible or parallelizable, limiting the potential for increasing velocity.

Let's examine three scenarios where Brooks' Law comes into play in the context of digital software products:

Feature Development

Consider a team working on a new feature for a software product that is behind schedule. Introducing new developers at this stage might seem like a good idea, but it could lead to further delays. The new members would need time to familiarize themselves with the codebase and the feature requirements. Additionally, the existing team members would need to spend time onboarding the new developers, taking them away from their coding tasks.

Debugging and Quality Assurance

In the debugging and quality assurance phase of a project, adding more testers to a late project could backfire. Testers new to the project would need time to understand the software's functionality and the testing protocols, slowing down the testing process. Additionally, the influx of new bug reports could overwhelm the development team, causing further delays.

Large-Scale Projects

For large-scale software projects involving multiple teams, Brooks' Law is particularly relevant. Adding more teams to expedite a delayed project can exacerbate communication challenges. Coordinating work across many teams can become a complex task in itself, leading to confusion, duplication of effort, and ultimately, project delays.

Conclusion

In conclusion, Brooks' Law serves as a cautionary note for project managers in the realm of software development. It emphasizes the importance of careful resource allocation, effective communication, and strategic planning. While it may be tempting to add more people to a late project, it's crucial to consider the potential ramifications and seek alternatives, such as reevaluating priorities, removing blockers, or improving processes, to help bring the project back on track.

See also

Death March

Reading List: The Mythical Man Month

Sources

Brooks' Law on Wikipedia