The Mythical Man Month

Post on 15-Aug-2015

90 views 4 download

Tags:

Transcript of The Mythical Man Month

MUSTAJAR AHMAD SHAH

XIDIAN UNIVERSITY

MSPK1337@GMAIL.COM

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.