Tuesday, April 5, 2011

The Mythical Man Month

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

Summary:
Ch. 10 - The critical documents for a computer product are objectives, specifications, schedule, budget, organizational chart, space allocations, estimate, forecast, and prices.  These last three are linked together, and create a spiral that can be beneficial or disastrous to the product.  No matter the product size, a manager is wise to have the necessary project documents.  

Ch. 11 - When building a pilot system, the product manager must accept that the first version, or the pilot system, will be scrapped in favor of a redesigned version with new ideas implemented.  As such, the system need to be designed to be tolerant to change.  Even after the product is delivered, changes will be made.


Ch. 12 - People like to use personalized tools, but from a programming perspective this is not conducive to good communication.  The programmer needs appropriate simulators, compiler and assembly vehicles, program libraries and accounting, program tools, documentation systems, and performance simulators.  High level languages provide increased productivity and debugging speed. 


Discussion:
Ch. 10 - As a project grows, documentation is critical to keep track of what is where, and even what is what.  There are few things worse than having to figure out how a piece of code works because its author did not sufficiently describe it.

Ch. 11 - One of the most stressed concepts in Software Engineering was having a high threshold for change.  Possible changes need to be kept in mind throughout the development cycle, or else you end up with a monolithic program in which any minor change will cause disaster.

Ch. 12 - Having a good toolkit is a essential for the programmer.  It can make complex tasks simple, and it makes the act of programming more accessible and easy to pick up.

No comments:

Post a Comment