• Brooks argues that adding manpower to a late software project makes it later, due to the increased complexity of communication. He emphasizes the importance of having a small, skilled team, clear communication, and the need for planning.

Brooks’ Law

  • “Adding manpower to a late software project makes it later.”
  • Ramp-Up Time: New team members require time to become productive. They need to learn about the project, its code base, the tools being used, and the team’s working style.
  • Communication Overhead: As more people are added to a project, the complexity of communication increases exponentially
  • Division of Labor: There’s a limit to how effectively a task can be partitioned among multiple workers. Some tasks simply cannot be divided because of their sequential nature, and for those that can be divided, the division itself can introduce extra work, such as integration and testing of the different parts.
  • Diminishing Returns: After a certain point, the productivity per worker starts to decrease as the team size increases, due to the factors mentioned above.

Software Estimation

  • Optimistic assumptions, failure to account for all necessary tasks (like integration and testing), and the unpredictable nature of creative work like programming often lead to underestimation.

Quality vs. Time

  • Rushing to meet deadlines often leads to compromises in software quality. He emphasizes the importance of not sacrificing quality for speed, as poor quality can lead to more significant issues and delays later, like increased maintenance costs and system failures

Value of Iteration

  • Significant shift from the prevailing models of his time. He argues that software should be developed in stages, with each stage building on the previous one
  • Allows for continuous testing, feedback, and refinement, leading to a more robust and well-designed final product

Conceptual Integrity in Design

  • Emphasizes the importance of having a coherent and cohesive design approach, ensuring that all components of the software work well together and adhere to a central concept
  • Often involves a strong guiding hand, such as a chief architect, to ensure that all aspects of the project align with the overarching design philosophy

Conclusion

  • The Mythical Man-Month has profoundly influenced modern software development. For sure, some of these ideas have evolved and attitudes have changed over the years.
  • Finally, in 2023, many of us now see estimation as solving the wrong problem, preferring instead to deliver working software more often to make real progress more transparent. When trains leave every 5 minutes, the timetable becomes less important.