Cover of The Mythical Man-Month

The Mythical Man-Month

Frederick P. Brooks

6 ideas

  1. Adding People to Late Projects Delays Them

    When a software project is behind schedule, adding manpower makes it later rather than earlier because new people must be trained, communication overhead multiplies, and existing work must be repartitioned. This is Brooks's Law: men and months are not interchangeable, since the work involves complex interdependencies that cannot be neatly divided.

  2. Communication Overhead Scales Quadratically

    As team size grows, the number of communication paths between members increases by n(n-1)/2, so adding workers raises coordination burden far faster than it raises output. Tasks requiring constant intercommunication between many people resist division almost entirely.

  3. Conceptual Integrity From Few Minds

    A system reflects unified design only when its architecture flows from one or a few minds, not a committee, because consistency and elegance come from a single coherent set of ideas. It is better to omit features that don't fit the central vision than to dilute integrity by accommodating every contributor's preference.

  4. Surgical Team Organization

    Structure a software team like a surgical operation, where one chief programmer does the central creative work and the rest of the team (copilot, administrator, editor, testers) exists to multiply that one person's effectiveness. This concentrates design decisions in one mind while removing administrative and support friction from that person.

  5. No Single Silver Bullet for Complexity

    No single development, in technology or management technique, will produce an order-of-magnitude improvement in software productivity within a decade, because software's essential difficulties—complexity, conformity, changeability, invisibility—are inherent rather than accidental. Tools attack only accidental difficulties, leaving the essence untouched.

  6. Plan to Throw One Away

    The first system you build will be flawed and should be treated as a pilot intended for discarding, since you will inevitably redesign once you understand the real problem. The only question is whether to plan to throw away a prototype or to ship the discardable version to customers.

Save and mark ideas in the app