This week I’ll finish discussing The Mythical
Man-Month.
Chapter 11 – Plan to Throw One Away describes
the need for prototyping. As Brooks comments,
“Where a new system concept or new technology is used, one has to build a
system to throw away…” Obviously many
more systems have now been built than when this was written, but the caveat on planning
for something remains valid. Years ago I
saw a company decide to learn a new development technology by writing a custom
order processing system. Needless to
say, they should have planned to throw the first one away!
Chapter 12 – Sharp
Tools describes how critical is it to have appropriate tools. Here again, time has changed the tools but
not the necessity of having good ones and knowing when and how to use them.
Chapter 13 – The
Whole and the Parts describes how applications are commonly built of
components. This chapter discusses
various approaches for testing them – an early description of unit and
integration testing.
Chapter 15 – Hatching
a Catastrophe starts with my favorite quote in the book: “How does a project get to be a year
late? … One day at a time.” One of
the section headings, “Milestones or Millstones”, describes the reluctance,
even today, of many IT people to commit to a schedule – or to even develop one! The concepts covered here are 100%
applicable today. Consider Brooks’
description “For picking milestones there is only one relevant rule. Milestones must be concrete, specific,
measurable events, defined with knife-edge sharpness.”
The other quotation starting the chapter is from
Sophocles: “None love the bearer of bad
news.” The good project manager doesn’t
shoot messengers but instead creates an environment where people are encouraged
to speak the truth.
Chapter 15 – The
Other Face describes the importance of documenting the work so that it is
maintainable later. While approaches may
have changed, the need is still there.
The Epilogue consists of one paragraph. To conclude this series of Blogs on Brooks’
work I’ll quote the first sentence: “The
tar pit of software engineering will continue to be sticky for a long time to
come.”