Download the mythical man- month and more Study notes Software Engineering in PDF only on Docsity!
the mythical man-
month
Essays on Software Engineering
Frederick P. Brooks, Jr.
By Yuriy Arbitman
About the Author Frederick Phillips Brooks, Jr.
- Born in 1931
- Ph.D. in CS from Harvard, 1956
- Between 1956 and 1965 worked in IBM, was project manager of IBM’s System/360 computers and OS/360 development.
- In 1964 founded CS Department at the University of North Carolina, chaired it for 20 years.
- In 1999 received the Turing Award “for landmark contributions to computer architecture, operating systems, and software engineering”.
The Book (2)
- The Whole and the Parts
- Hatching a Catastrophe
- The Other Face
- No Silver Bullet – Essence and Accident in Software
Engineering
- “No Silver Bullet” Refired
- Propositions of The Mythical Man-Month: True or
False?
- The Mythical Man-Month after 20 years
- Fifty Years of Wonder, Excitement and Joy (Epilogue)
The Tar Pit (1)
- Large-system programming is a tar pit in the last decade.
- The programming systems product:
A Program
A Programming
Product
A Programming
System
A Programming
System Product
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
The Tar Pit (3)
- The joys of the craft:
- Making things
- Making things that are useful to others
- The fascination of fashioning complex puzzle-like objects
- Always learning
- Such a tractable medium
- The woes of the craft:
- Adjusting to the requirement of perfection
- Other people tell you what to do
- Worse: must use others’ programs! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
The Tar Pit (4)
- The woes of the craft (cont.):
- Bugs!!!
- Bugs get harder as testing progresses
- The product gets obsolete upon or even before completion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
The Mythical Man-Month (2)
- Optimism:
- All programmers are optimists, believing in happy endings and fairy god-mothers.
- Because programming tasks are usually chained end-to-end, the probability that each will go well is very small.
- Man-month:
- Cost vary as a product: men · months.
- Progress does not: communication overhead!
- Overhead: intercommunication and training. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
The Mythical Man-Month (3)
- Different projects types: Men Months Perfectly partitionable task Men Months Unpartitionable task Men Months
Partitionable task requiring communication Task with complex interrelationships
Men Months 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Men/Months interchangable The bearing of a child takes nine months, no matter how many women are assigned!
Men/Months interchangable In tasks that can be partitioned but which require communication among the subtasks, the effort of communication must be added to the amount of work to be done
Communication
Overhead
10 Members
45 Interactions
5 Members
10 Interactions
Men/Months interchangable The plan (^) First task, twice as long Adding 2, at Milestone A
The Surgical Team (1)
- The problem: productivity varies hugely between good programmers and poor ones.
- Mill’s proposal: divide large job into segments, each tackled by a surgical team: - The surgeon. The chief programmer. Defines spec, designs, codes, tests, documents. The boss. - The copilot. Less experienced, no responsibility for code. - The administrator. Handles money, people, space, machines. May be part-time (serve two teams). - The editor. Improves and perfects the 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
The Surgical Team (2) documentation produced by the surgeon.
- Two secretaries. One for the administrator and one for the editor.
- The program clerk. Responsible for maintaining all the technical records of the team in a programming- product indexed library.
- The toolsmith. The system manager of the team.
- The tester. Responsible for producing or gathering the test-cases. “The adversary”.
- The language lawyer. Master of the used programming language. Can serve two or three teams [surgeons]. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20