The Mythical Man-Month: Frederick P Brooks JR
The Mythical Man-Month: Frederick P Brooks JR
The Mythical Man-Month: Frederick P Brooks JR
MAN-MONTH
Frederick P Brooks Jr.
Presented By,
Merin Scaria
CONTENTS
The Tar Pit
The Mythical Man-Month
The Surgical Team
Aristocracy, Democracy, and System Design
The Second-System Effect
Passing the Word
Why Did the Tower of Babel Fail?
Calling the Shot
Ten Pounds in a Five-Pound Sack
The Documentary Hypothesis
Plan to Throw One Away
The Whole & the Parts
Hatching a catastrophe.
The Other Face
No Silver Bullets
1
2
THE TAR-PIT
3
A Programming System:
4
•collection of interacting
5 programs
A Program
6 •precisely defined
x3 interfaces between
7
individual programs
8 •comply with resource
9 limitations
•all combinations tested
10 x3
11
12
13
14 A Programming
A Programming Product:
System Product:
15 •can be run, tested,
16 repaired and extended by both Programming
anybody System and
17
•general enough Programming
18 •well documented Product
19
20
1
2
CONTINUED…
3
4 • The joys of the craft:
5 – Making things that are useful to others
6 – The fascination of fashioning complex puzzle-like objects
7
– Always learning
8
– Such a tractable medium
9
10
• The woes of the craft:
11 – Adjusting to the requirement of perfection
12 – Other people tell you what to do
13 – Worse: must use others’ programs!
14 – Bugs!!!
15
– Bugs get harder as testing progresses
16
– The product gets obsolete upon or even before completion
17
18
19
20
1
2
THE MYTHICAL MAN-MONTH
3 Most software projects are late. Why?
4 – Estimation techniques are poor-all goes well assumption.
5 – Confuse effort with progress
6 – Poor monitoring of project progress
7
– Natural response to schedule slippage is adding manpower, which
8
makes matters worse.
9
• Optimism:
10
– Book-author’s mind-pen and paper-faulty ideas & physical media
11
limitations.
12
13
– In programming-media is good-optimistic-idea from mind-faulty
14
ideas-error.
15 • Man-month:
16 – Cost vary as a product: of men & months.
17 – Progress does not: communication overhead!
18 – Overhead: intercommunication and training.
19
20
1
2
CONTINUED…
3
• Different projects types:
4
Perfectly partitionable task Unpartitionable task
5
6
Months
Months
7
8
9
10
11
Men Men
12
13 Partitionable task requiring communication Task with complex interrelationships
14
15
Months
16
Months
17
18
19
20 Men Men
1
2
CONTINUED…
3
4 • Suppose a task is estimated at 12 man-months and assigned to 3 men
5 for 4 months. Suppose the first milepost is not reached until 2 months
6 have elapsed.
7
8
9
10
11
12
13
14 • Suppose that at 2 months, we achieve milestone A. We must deliver
15 on time.
16 • What can we do?
17
18
19
20
1
2
CONTINUED…
3
• Let’s say we add 2 people at month 2.
4 – Must train them – assume this takes 1 month and requires 1 of the
other 3 people.
5
6
– During month 3:
7
• 3 person-months of training work
8 • 2 person-months of actual work.
9 – Still have 9-2=7 person-months of work, but only 1 month left!
10 – So what do we do? Add more people…and have a later delivery.
11 • Brooks’s law: Adding people to a late software project makes it
12 later.
13
14
15
16
17
18
19
20
1
2
THE SURGICAL TEAM
3 • The problem: productivity varies hugely between good programmers
4 and poor ones.
5 • Mill’s proposal: divide large job into segments, each tackled by a
6 surgical team:
7 – The surgeon. The chief programmer. Defines spec, designs, codes,
8 tests, documents. The boss.
9 – The copilot. Less experienced, no responsibility for code, insurance.
10 – The administrator. Handles money, people, space, machines. May be
11 part-time (serve two teams).
12
– The editor. Improves and perfects the documentation.
13
– Two secretaries. One for the administrator and one for the editor.
14
– The program clerk. maintains all the technical records of the team.
15
16 – The toolsmith- The system manager of the team.
17 – The tester. Responsible for producing or gathering the test-cases.
18 – The language lawyer. Master of the used programming language.
19
20
1
2
THE SURGICAL TEAM
3
4
Surgeon
5
6
7
Administrator Co-pilot
8
9
10 Secretary Programming
11 clerk
12
13 Toolsmith
14
Editor
15 Tester
16
Secretary
17
Language
18
lawyer
19
20
ARISTOCRACY, DEMOCRACY AND
1
2
3
4
SYSTEM DESIGN
5 • Conceptual integrity is the most important consideration in system
design.
6
– Why?
7
– Ease of use.
8
– To achieve it, a design must proceed from one mind (or small group
9 of agreeing minds).
10 • Schedule pressure dictate system building need many hands.
11 • 2 techniques to resolve it:
12 - careful division of labor between architecture & implementation
13 - use efficient programming implementation teams.
14 • Aristocracy vs. Democracy [Architecture vs. Implementation]:
15 – Blaauw: “Where architecture tells what happens, implementation
16
tells how it is made to happen”.
– This separation is very important.
17
– E.g. clock
18
19
20
1
2
The Second-System Effect (1)
3 • An architect's first work is apt to be spare and
4
5 clean. He knows he doesn't know what he's
6 doing, so he does it carefully and with great
7
8 restraint.
9
10
• As he designs the first work, frill after frill and
11 embellishment after embellishment occur to him.
12
13
These get stored away to be used “next time”.
14 Sooner or later the first system is finished, and
15
16 the architect, with firm, confidence and a
17 demonstrated mastery of that class of systems, is
18
19 ready to build a second system.
20
1
2
The Second-System Effect (2)
3 • This second is the most dangerous system a man
4
5 ever designs. When he does his third and later
6 ones, his prior experiences will confirm each
7
8 other as to the general characteristics of such
9
systems, and their differences will identify those
10
11 parts of his experience that are particular and
12
13
not generalizable.
14 • The general tendency is to over-design the
15
16 second system, using all the ideas and frills that
17 were cautiously sidetracked on the first one.
18
19
20
1
2
The Second-System Effect (3)
3 • Solutions:
4
5 – Obviously, an architect cannot skip his second
6 system
7
8
– He must be conscious of the dangers, avoiding
9 functional ornamenation and extrapolation of
10 functionality.
11
12 – Brooks advises to assign each little function a
13 value, like: capability x is worth not more than m
14
bytes of memory and n microseconds per
15
16
invocation.
17 – Project manager can avoid the danger by insisting
18
on a senior architect who designed at least two
19
20 systems.
1
2
The Second-System Effect (4)
3 – An architect can successfully influence
4
implementation:
5
6
• creative responsibility is builder’s, the architect only
7 suggests
8 • don’t look for credit while suggesting improvements
9
• listen to builder’s suggestions
10
11 • Windows NT as a 1990’s example
12
13
14
15
16
17
18
19
20
1
2
Passing the Word (1)
3 • The problem: How do we [the manager]
4
5 ensure that everyone understand and
6 implement the architects’ decisions?
7
8 How a group of 10 architects achieve
9
conceptual integrity in a system being built
10
11 by 1000 men?
12
13
• Solutions:
14
– Written specification – the manual: necessary tool;
15
16
includes dated versions.
17 – Simulator or previous version may serve as a
18
19
formal definition. [Advantages, disadvantages]
20
1
2
Passing the Word (2)
3 – Meetings - two levels:
4
• Weekly half-day conference: architects, official
5
6
representative(s) of implementers, market planners,
7 chief architect presides. The emphasis is on
8 creativity, rather than merely decision.
9 • Annual / half-year session of two weeks (held just
10
before major freeze dates for the manual). Include
11
12
also managers of programming. System project
13 manager presides.
14 All decisions are distibuted immediately after
15
16
the meetings.
17 – Telephone log of questions from implementers to the
18
19
architects, distributed each week to everybody.
20 – Tests!!!
1
2
Passing the Word (3)
3 – Even in large teams writing must be done by no
4
more than two people
5
6 – Formal vs. prose definition: standard and
7
derivative.
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
Why Did the Tower of Babel Fail? (1)
3
4
• The moral: clear mission, enough
5 manpower, good materials, enough time
6
7
and adequate technology DO NOT suffice
8 for a project to succeed. In this case: lack of
9
10
communication and its consequent,
11 organization.
12
13 • Bad communication in software projects are
14
15
the root of all evil.
16
• How shall teams communicate with each
17
18 other? In as many ways as possible:
19
20
– Informally,
1
2
Why Did the Tower of Babel Fail? (2)
3 – Meetings,
4
5
– and by maintaining a formal project workbook.
6 • The project workbook:
7
8
– Not a separate document, but rather a structure of such.
9 – Includes objectives, external specs, interfaces specs,
10 technical standards, internal specs and administrative
11 memoranda.
12
13
– Brooks describes a detailed fashion of managing and
14 defining the workbook.
15 – Today it is much easier to develop a satisfiable
16 mechanism for managing such workbook.
17
18
– Totally public / structured publicity (argument with
19 Parnas)
20
1
2
Why Did the Tower of Babel Fail? (3)
3
4
• The essentials of tree-like programming
5 organization:
6
7
– a mission
8 – a producer
9
10 – a technical director (architect)
11
12
– a schedule
13 – a division of labor
14
15
– interface definitions among the parts
16
17
• Brooks stresses the distinction between the
18 producer and the technical director:
19
20
1
2
Why Did the Tower of Babel Fail? (4)
3
4
• The producer:
5 – assembles the team
6
7
– divides the work
8 – establishes the schedule
9
10
– takes care of the necessary resources
11 – establishes the pattern of communication and
12 reporting within the team
13
14 – ensures the schedule is met
15
16
• The technical director:
17 – Resposible for the design
18
19
– Provides conceptual integrity
20 – Invent solutions for problems that arise
1
2
Why Did the Tower of Babel Fail? (5)
3
4
• Possible relations between the two:
5 1. The producer and the technical director may
6
7
be the same man:
8 – Works with very small teams, 3-6 programmers.
9 – In larger projects will not work: a man with the
10
needed talents is rarely found, each role is a full-
11
12
time job.
13 2. The producer is the boss, the director his right-
14
hand man:
15
16 – Difficulty: establishing the director’s authority
17 – This solution is rarely tried
18
19
20
1
2
Why Did the Tower of Babel Fail? (6)
3
3. The director is the boss, the producer his right-
4
5
hand man:
6 – Best for small teams (as discussed in “The Surgical
7 Team” chapter)
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
Calling the Shot
3
• How to estimate the expected time and
4
5 effort it will take to build a system?
6 – To estimate only the coding portion and apply the
7 ratios may lead to ridiculous results.
8
9
– Nanus and Farr’s study:
10 effort = constant X (number of instructions)1.5
11 – Portman’s data: only 50% of working week was
12 realized as actual programming and debugging
13
time (meetings, unrelated jobs, paperwork, etc.).
14
15
– There are big differences in productivity related to
16 the compexity of the task:
17 • Operating systems, compilers, normal batch
18 application programs – factor of 3 between each,
19 respectively.
20
1
2
Ten Pounds in a Five-Pound Sack
3
4
• Program space as cost – much less relevant
5 today
6
7
– Resident size
8 – Disk accesses
9
10 • More function means more space, speed
11
12
being held constant.
13
14
• Time-space trade-off
15
16
17
18
19
20
1
2
The Documentary Hypothesis (1)
3
4
• The hypothesis: Amid a wash of paper, a small
5 number of documents become the critical pivots
6
7
around which every project's management
8 revolves. These are the manager's chief personal
9
10
tools.
11
12
• Brooks suggests the critical documents are:
13 – Objectives
14
15
– Specifications (the last finished document!)
16 – Schedule
17
18 – Budget
19
20
– Organization chart
1
2
The Documentary Hypothesis (2)
3
– Space allocations
4
5 – Estimate, forecast, prices:
6
7 Forecast Estimate
8
9 Prices
10
11 • The similarity to university department: as
12
13
to any management task.
14 • Conway’s Law: “Organizations which design
15
16 systems are constrained to produce systems
17
which are copies of the communication
18
19 structures of these organizations”.
20
1
2
The Documentary Hypothesis (3)
3
4
• Why have formal documents?
5 – writing down decisions is essential (focuses
6
7
thought and crystallizes discussion)
8 – the documents will communicate the decisions
9
to others
10
11 – database and checklist for the manager
12
13
– only a small part of a technical project
14 manager's time (20%) is spent on tasks where he
15 needs information from outside his head
16
17
18
19
20
1
2
Plan to Throw One Away (1)
3
4
• In most projects, the first system built is
5 barely usable. It may be:
6
7
– too slow
8 – too big
9
10 – awkward to use
11
12
– or all three
13 • The management question is not whether to
14
15 build a pilot system and throw it away, but
16
whether to deliver the throwaway to
17
18 customers.
19
20
1
2
Plan to Throw One Away (2)
3
4
• Delivering that throwaway buys time,
5 but…:
6
7
– agony for the user
8 – distraction for the builders while they do the
9
10
redesign
11 – bad reputation for the product that the best
12
13
redesign will find hard to live down
14
• So: be prepared for a change as a way of life.
15
16 • Plan the system for change:
17
18 – careful modularization
19
– extensive subroutining
20
1
2
Plan to Throw One Away (3)
3
– precise and complete definition of intermodule
4
5
interfaces
6 – complete documentation of these
7
8 – quantization of change: numbered versions and
9 clear policy regarding versions’ releases.
10
11 • Plan the organization for change:
12
13
– Keep managers and technical people as
14 interchangeable as their talents allow: job titles,
15
dual ladder of advancement, corresponding
16
17
salary scales, corresponding prestige,
18 “reassignment” vs. “promotion”
19
20
1
2
Plan to Throw One Away (4)
3 • Maintenance:
4
– Total cost is 40% or more of the development,
5
6 but strongly affected by the number of users.
7 Bug occurance as a function of release age