Monday, March 7, 2011

The Mythical Man Month Ch. 1-3

The Mythical Man-Month
Ch. 1-3
Brooks, Frederick P
Addison-Wesley, 1995



Summary:

The first chapter discusses the differences between types of programming projects. The first type of project, a basic program, only accomplishes a specific task. The next type, a programming product, is intended for a more general audience. Programming products are typically better documented and more throughly tested than basic programs. The third type, a programming system, consists of several programs or systems that work together to accomplish a task. The fourth type, a programming systems product, is a combination of a programming system and a programming product. A programming product or programming system will likely cost 3 times as much as a basic program, while a programming systems product will likely cost nine times as much.

The second chapter discusses why throwing more people at a project does not help it progress faster. Communication and training are the main hurdles that prevent progress from being improved by the addition of more team members. Adding more team members can often increase the time that it takes to communicate ideas inside the programming team. In addition, training new team members prevents the trainer from accomplishing the work that he could have been doing had he not been training the new employee. Due to these factors, adding a new employee to the programming team can cause the project to release even later than it would have if the team member had not been added.

Chapter 3 describes a surgical team and draws comparisons between surgical teams and an ideal software engineering team. The surgical team consisting of the surgeon, the copilot, the administrator, the editor, secretaries, the program clerk, the toolsmith, the tester, and the language lawyer. In this team, each team member, or type of team member, has a specific role to play and has specialized skills that help them perform that role. This is contrasted with the less ideal hog butchering team, where all team members play the same role and have the same skill set.

Discussion:

This reading was very interesting because it describes several mistakes that software managers make when staffing for a project. The concept of the surgical team, where team members have specific roles and work in unison is also an interesting concept and it would be great if more teams were structured this way. However, since the surgical team if full of specialists, it would probably be a very expensive team to staff and train. This reading can be extended to software managers that are tasked with hiring staff for a software project.

No comments:

Post a Comment