Tuesday, March 15, 2011

The Mythical Man-Month, Chapters 4-6

Reference Information
The Mythical Man-Month
Brooks, Frederick P., Jr.
Addison-Wesley, 1995



Summary
Chapter four, entitled Aristocracy, Democracy, and System Design, discusses the need for putting as few people in charge of designing the architecture of a software project as possible. The author states that conceptual integrity is the most important consideration in system design. It is better to have fewer features if the system would achieve a more focused design. The primary objective of tools is to increase ease of use, which is only enhanced when the time gained in functional specification exceeds the time lost in learning. The ratio between these two is the real test of system design. No matter how much functionality is provided, a system must be as simple and straightforward as possible. To maintain conceptual integrity, the design of the system must be produced by as few people as possible. Architecture design and implementation should not be shared by the same person. 


Chapter five, called The Second-System Effect, introduces the notion that a designer's second system will actually be more susceptible to mistake than his first. This is because the designer tries to apply too much of what he learned during his first attempt without due consideration. His later designs will be much better after the many mistakes of the second. The author supports the idea of a throw-away implementation - analogous to a prototype. The architect needs to be extremely disciplined on his second creation to ensure that it is not dangerously filled with superfluous features. 


Chapter six talks about the need for communication and documentation. A manual is the external documentation for the tool, which the end user will use. It must describe everything the user sees, but it should not explain implementation details or anything the user does not see. Formal definitions could also be used, but the author suggests that these are too unwieldy to be practical. The only formal definition with any value is the program code itself, which is the best and most accurate definition. The author recommends having two sets of meetings: a weekly one between all the system architects, and one with architects, implementors, and businessmen. 




Opinion
The only thing of note is that it is better to have fewer designers since that leads to a cleaner and more straightforward design. I have noticed similar patterns in my own groups: if more than one person is crucial to the design, it will most likely not be very clean.



No comments:

Post a Comment