the mythical man month

20
MUSTAJAR AHMAD SHAH XIDIAN UNIVERSITY [email protected] The Mythical Man Month

Upload: mr-cracker

Post on 15-Aug-2015

39 views

Category:

Software


2 download

TRANSCRIPT

Page 1: The Mythical Man Month

MUSTAJAR AHMAD SHAH

XIDIAN UNIVERSITY

[email protected]

The Mythical Man Month

Page 2: 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.)

Page 3: The Mythical Man Month

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.

Page 4: The Mythical Man Month

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.

Page 5: The Mythical Man Month

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.

Page 6: The Mythical Man Month

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.

Page 7: The Mythical Man Month

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

Page 8: The Mythical Man Month

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.

Page 9: The Mythical Man Month

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!

Page 10: The Mythical Man Month

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:

Page 11: The Mythical Man Month

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

Page 12: The Mythical Man Month

How to make sure everyone hears architectural decisions?

Solution

• Written specifications

• Formal definitions

• Direct incorporation

• Conferences

• Multiple implementations

• Telephone log

• Product test

Communication Skills

Page 13: The Mythical Man Month

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.

Page 14: The Mythical Man Month

How To Plan

One should plan his project in such a way that it is easy to modify the system at any stage.

Page 15: The Mythical Man Month

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)

Page 16: The Mythical Man Month

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.

Page 17: The Mythical Man Month

Documentation

Reasons for having formal documents

• Recording decisions

• Communicating those decisions

• Data base / checklist (programmer directives)

Page 18: The Mythical Man Month

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

Page 19: The Mythical Man Month

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.

Page 20: The Mythical Man Month

Quotations

All programmers are optimists

The bearing of a child takes nine months, no matter how many women are assigned.