The Mythical Man Month
-
Upload
mr-cracker -
Category
Software
-
view
90 -
download
4
Transcript of The Mythical Man Month
About Book
Author Frederick Brooks
Subject Software project management
Publisher Addison-Wesley
Publication date
January 1, 1975-1995
ISBN 0-201-00650-2 (1975 ed.)
About Author
Name Frederick Phillips Brooks, Jr
Date Of Birth
1931
Education Ph.D. in CS from Harvard, 1956
Working experience1956-1965 worked in IBM
1964founded CS Department at the University of North Carolina, chaired it for 20 years.
What is Programming
Software like a tar pit: The more you fight it, the deeper you sink.There is Big Difference between Program and a Product
What is Product:
• can be run, tested, repaired by anyone
• usable in many environments on many sets of data.
• must be tested
• Documentation
Why is programming fun? Brooks offers five reasons:
Making things…
that others find useful.
Making complex objects out of parts.
Continuous learning because the task is always different.
Using tools and “materials” that do not degrade.
What is Programming
What causes problems? Computers demand perfection. A person does not control the “circumstances” of their work (goals, resources, information).
Working out the bugs takes an order of magnitude longer than one expects.
The resulting software seems to be obsolete before it is released.
Project Failures failure to meet schedule is the reason for most software project failures.
Reasons:
Assumption that all will go well led the schedule plan.
We confuse effort with progress. pressure to reduce time estimates. Poor monitoring of project progress Natural response to schedule slippage is adding
manpower, which makes matters worse.
The bearing of a child takes 9 months, no matter how many women
are assigned
Software Products are sequential in nature They generally consist of several steps that must be completed
one after another
These steps cannot be worked on at the same time
Adding manpower to a late software project
makes it later.
According to Author
• Training Required for new people
• Intercommunication and basic understanding of problem and the proposed solution.
Communication Path
2 people, 1 channel
3 people, 3 channels
4 people, 6 channels 5 people, 10 channels
N=n(n-1) 2
20 PEOPLE, 190 CHANNELS!
The Surgical Team
productivity varies hugely between good programmers and poor ones.
More people working on a project = more miscommunication between those people
Solution
Mill’s proposal: divide large job into segments, each tackled by a surgical team:
Chief Programmer
Administrator
Secretary
Editor
Secretary
“Co-pilot”
Programming clerk
Tool smith
Tester
Language lawyer
The Pilot
The know it all guy
Documentation
Supervisor
Mill’s Proposal
How to make sure everyone hears architectural decisions?
Solution
• Written specifications
• Formal definitions
• Direct incorporation
• Conferences
• Multiple implementations
• Telephone log
• Product test
Communication Skills
Why Did the Tower of Babel Fail?
A clear mission
Enough resources (people and materials)
Enough time
Proper technology
Bad communication in software projects are the root of all evil.
• How shall teams communicate with each other? In as many ways as possible:• Informally,
Meetings,
project workbook.
How To Plan
One should plan his project in such a way that it is easy to modify the system at any stage.
Update your Self
A good craftsman is known by his tools.The tools of a programmer are:
Target machines
The final testing environment
Vehicle machines
The programmer’s work environment
Data services
Compiler, assembler, libraries, debugging tools
HLL & interactive programming
Language and programming tool of choice (e.g.: Java and Visual Studio)
Schedule's
Schedules are important to keep
• Clearly define what needs to be done
Milestones should be well defined and must be reached on time.
• Pay attention to schedule slipping
Stick to schedules.
Documentation
Reasons for having formal documents
• Recording decisions
• Communicating those decisions
• Data base / checklist (programmer directives)
Documentation
Documentation is important to the user, as well
What kinds of documentation do they need?
• How to use the product
• How the product works
• How to adapt the product to their needs
Quotations
Good cooking takes time. If you are made to wait, it is to serve you better, and to please you.
Adding manpower to a late software project makes it later.
How does a project get to be a year late?... One day at a time.
Good judgment comes from experience, and experience comes from bad judgment.
Quotations
All programmers are optimists
The bearing of a child takes nine months, no matter how many women are assigned.