19

The Mythical Man-Month

 after 20 Years

 

Contributors :

Logan Christopher

Sharma Chetan

Nagaraja Sowmya Prabha

Kakumanu Santosh

Karimisetty Sujatha

 

Complied By :

Karimisetty Sujatha

Summary

 

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.

 

Central Argument: Conceptual Integrity and Architect :

 

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.

 

Second-System Effect: Featuritis and Frequency- Guessing:

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.

 

Featuritis:

                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.

Frequencies: 

                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.

“It is far better to be explicit and wrong than to be vague”

Triumph of WIMP Interface:

W:   Windows

   I:    Icons

M:    Menus

 P:     Pointing Interface

WIMP is a superb example of  user interface

·         Ability to size and shape windows

·         Dragging and Dropping

·         Selecting Icons by pointing with a cursor

·         Concepts of Cut and Paste

The hardest issues facing software architects:

·         Balance user power versus ease of use

·         Design for

                      Simple Operation for the novice

                      Occasional User

                      Professional  User

        Answer:-

             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 Fate of WIMP: Obsolescence(It is Outmoded in design, style, or construction)

The WIMP interface is Being in the process of passing out of use, Gradually disappearing

Reason:-

·         Speech is the right way to express the verbs.

·         Voice Navigator for the Mac and Dragon for the PC already provide this capability.

 

Don’t Build One to throw Away-the Waterfall Model Is wrong                         

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.

Second Fallacy:-

                         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.

 

Incremental -Build Model Is Better-

·         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”

 

Hiding Information:

                                       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,

                                       spot bugs.

Trade -off between men- months-

                                             Far from Linear.

Optimum time in months goes as the cube root of the expected effort in man-months,

T= 2.5(MM)1/3


 

 

 

 

People are everything:

·         Quality is the largest factor in success of a project.

·         Most academic research on software engineering has concentrated on tools.

Peopleware:

·      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.

Moving projects:

                 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 

                    over.

Power of giving up power:

·                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?”

 

Requirements from scientists and technology:

·        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.

Metaprogramming:

·      Excel templates or Minicard functions are sometimes called metaprogramming.

·                Reusable metaprograms has grown up remarkably.

 

Buy and Build – Shrink-Wrapped Packages:

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.

 

Difficulties faced with Shrink-Wrapped Packages:

·      They are designed, as a stand-alone metaprogrammers cannot change.

 


 

 

Necessities  for Shrink-Wrapped Packages:

          4 levels of users of Shrink-Wrapped Packages:

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.

 

Concerns of Software Engineering:

·         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