The Mythical Man-Month is Frederick Brooks' seminal collection of essays vis-a-vis software engineering. From the title, one would imagine that the tome's unifying thesis revolves around the discredited idea that adding more engineers to a project will enable the project to be completed in fewer months, or, to put it another way, that the length of a project's schedule is a linear function of the number of workers assigned to that project. Using graphs based on mathematical formulas and on research conducted by other specialists, Brooks neatly dismantles the person-month myth - demonstrating, in fact, that in many projects (particularly if complex interrelationships are required or if the project is behind schedule), adding more bodies often increases the time required for completion.
Despite what the title suggests, however, the above-mentioned topic is but one of many covered by this work. Other topics include the distinction between the "essential" and "accidental" elements of software design; the distinction between building a computer program vs. designing a "programming a systems product" (and the ninefold difference in complexity and time between the two); the quest for software engineering's elusive "silver bullet"; the importance of documentation; the surprisingly small percentage of time that actual writing of code occupies on the timeline of a typical software-development project (as contrasted with time needed for testing and debugging); large teams vs. small "surgical teams" (and why the latter isn't always the answer for all projects); the "buy versus build" dilemma; and many others.
Much of the material in the first several chapters of the book appears obsolete (although there are still valuable principles that can be gleaned). However, in chapter 19 (a kind of "retrospective" chapter added 20 years after the original publication date), Brooks amends much of the out-of-date material, e.g., his earlier views on program size and space metrics (rendered all but irrelevant in this age of multi-gigabyte memory), and the degree to which the (albeit hard-to-predict) personal computer explosion and the growth of the Internet. However, even since the time of the book's revision (1995), further explosions have taken place in the computing industry - most notably with regards to Web 2.0, the ubiquity of data-driven Web applications (these even obsoleting many shrink-wrapped products), Web services, and development methodologies such as Agile and XP - that even chapter 19 may seem a little out-of-date to the modern developer. In spite of this, the principles of the book are still applicable: the chapters on estimation, team size, and the dismantling of the person-month myth are enough to make this tome required reading for developers and managers alike - especially the latter.Get more detail about The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition).
No comments:
Post a Comment