The Mythical Man-Month
after 20 Years
Nagaraja Sowmya Prabha
Complied By :
Reason for the 20th Anniversary Edition and its relevance to the software practiced today:
The software development discipline has not advanced properly or normally. This can be clearly explained by contrasting the software development productivity to that of hardware, which has multiplied 1000, folds over 2 decades.
Mythical Man-Month is only incidentally about software but primarily about how the PEOPLE in a team make things.
Conceptual Integrity: Conceptual Integrity of a product is explained in terms of how a user uses it. It is the central of a product quality.
Architect: In Industries the result should be conceptually coherent to a single mind though many minds are involved. This can be organized by
· Commissioning an architect who is responsible for the conceptual integrity of all perspectives.
· Separating architecture with the implementation and realization.
· Recursion of Architects in which a system is divided into groups and each sub-system is assigned a separate architect.
Designing a large user set:
There is a lot of demand for Off-the-shelf packages which is a
general-purpose tool .It is more difficult a general-purpose tool
than a special-purpose tool.
Main features of a user set comes from public and the “market demand”
Defining a user set:
Larger the user set more explicitly it has to be defined.
An architect will arrive to the frequencies
· By carefully guessing the frequencies
· Maintaining a document of frequencies for the debate.
· By enumerating the frequencies explicitly.
P: Pointing Interface
· Ability to size and shape windows
· Dragging and Dropping
· Selecting Icons by pointing with a cursor
· Concepts of Cut and Paste
· Balance user power versus ease of use
· Design for
Simple Operation for the novice
The design is done keeping in mind it works for every one.
· Short Cuts shown on the menus
· No matter who the user is it makes smooth transactions
The WIMP interface is Being in the process of passing out of use, Gradually disappearing
· Speech is the right way to express the verbs.
· Voice Navigator for the Mac and Dragon for the PC already provide this capability.
Basic Fallacy of waterfall model:
Assumes that mistakes will be in realization, and thus the repair can be done smoothly
interspersed with component and system testing.
Assumes that the a whole system is build once, by combing the pieces for an end to end
system test after the implementation design, coding, and much of the testing has been done.
Thoughtful practitioners had recognized its inadequacy and abandoned it.
· A running system is present at very stage
· Debugging can be done at every stage
· Rewriting of the code can be it is primitive.
This process is used by Microsoft : “Microsoft Build Every Night”
Programmers must have access to all the information regarding the progress of the
product. This helps in controlling the quality of the product, sustain to pressures,
Far from Linear.
Optimum time in months goes as the cube root of the expected effort in man-months,
· Quality is the largest factor in success of a project.
· Most academic research on software engineering has concentrated on tools.
· Major contribution during recent years has been DeMarco and Lister’s 1987 book,
‘Peopleware: Productive Projects and Teams’
· The major problem of work is not so much technological in nature as sociological in nature.
· Managers work is to make people work
· DeMarco & Lister’s provide real data from their ‘Coding War Games’ that show correlation between performances of programmers from the same organization and between workplace characteristics and both productivity and defect levels.
Fusion is an intangible but vital property. Breaking of fusion of old team aborts the embryonic
product & brings about restart. One can move missions, but incase of projects its again a start
· Creativity comes from individuals and not from structures or processes.
Note: In a book of essays Tom DeMarco states that instead of asking “Why does a software cost so much?” we should begin asking “What have we done to make it possible for today’s s/w to cost so little?”
· Methods and Equipments which are cheap enough so that they are accessible to virtually everyone.
· Suitable for small scale application & compatible with man’s need for creativity.
· Excel templates or Minicard functions are sometimes called metaprogramming.
· Reusable metaprograms has grown up remarkably.
Radically better s/w robustness & productivity are moving up a level & making program by composition of modules or objects.
Robustness: Software must produce correct output for every set of input values. It means that the program should catch incorrect input values and issues appropriate messages.
Example: - Student information system is based on shrink-wrapped packages.
· They are designed, as a stand-alone metaprogrammers cannot change.
1. As-is users, who operate the application in straightforward manner, content with functions and interface the designers provide.
2. Metaprogrammers, who builds templates or functions on top of single application using the interface provided, principally to save work for end user.
3. External function writer, who hand-codes added functions into an application.
4. Metaprogrammers who use one, or especially several, applications as components in a larger system. This is the user whose needs are poorly met today. This is also the use, which promises substantial effectiveness gains in building new applications.
· How to design and build a set of programs into System?
· Plus how to make it robust, tested, documented, supported product?
· How to maintain intellectual control over complexity in