SlideShare a Scribd company logo
1 of 25
Download to read offline
-1-UTA CSE
The Mythical Man-Month: Essays on
Software Engineering
by
Frederick P. Brooks, Jr.
• Brooks => Manager for Architecture & Operating System (OS360)
development for IBM360 & was also involved in design and
implementation of the IBM Stretch.
• OS360 is an important product since it introduced several innovative
ideas such as:
• Device independent I/O
• External Library Management
• This book is for professional managers of software development
projects.
• Brooks believes large program development management suffers
from problems related to division of labor.
• Brooks says critical problem is preservation of conceptual integrity
of the product itself => he will propose methods for preserving this
unity in Chpt's 2-7.
-2-UTA CSE
• Chpt 1: The Tar Pit
• Large system programming is like a tar pit:
• The more you struggle, the more you sink in it.
• No one thing seems to be the difficulty, but as a whole, the
programmers get trapped in it and the project dies (e.g., we can take
one paw or hand out of the tar pit, but not our whole body).
• A programming system product must be:
– 1) General (for input, as well as algorithms).
– 2) Thoroughly tested so it can be depended upon. This increases costs
be as much as 3 times over untested products.
– 3) Documented so it can be used, fixed, and extended.
– 4) Finally, a programming product becomes a component of a software
system (it works with other programs and can be called or interrupted) =>
I/O interfaces become very important => a programming product must be
tested in all possible combinations with other system components. This
is very difficult => A programming system product as a system
component costs at least 3 times as much as the same program as a
programming product.
– 5) Programming product must be within allotted budget.
• A programming system product is 9 times higher in cost than a
stand-alone product (3 for program testing x 3 for system testing).
-3-UTA CSE
• Chpt 2: The Mythical Man-Month
• What one factor has caused the demise of software projects?
• Poor scheduling and timing estimations!
• Problems with scheduling and timing estimations in a software
project:
– 1) Estimation of the completion time for the software projects is typically
very difficult to do.
– 2) In estimating the completion time of software projects we often assume
that the effort and progress are the same, but that's not true. Especially
we tend to interchange MAN and MONTH.
– 3) Scheduled progress is poorly monitored.
– 4) When software projects get behind the scheduled time, the typical
solution is to add more MAN-MONTH or manpower to the software project.
• In software projects we always assume that everything will go well!
• In a non-software engineering project we often run into unforeseen
problems that are intractable, and therefore the managers tend to
over-estimate in timing requirements to compensate for them.
• In software engineering, however, we always think of programming
as something which is tractable and which is documented. However,
this assumption is not correct because we always have bugs in
software; and although bugs are tractable, they are very difficult to
detect. That will make the problem almost intractable.
-4-UTA CSE
• The second problem with estimating completion time of software
projects is with the unit of time used to estimate the completion of
the project (i.e., MAN-MONTH).
• There is a fallacy involved with this unit: It is true that the cost of the
project will increase proportional to the MAN-MONTH used for that
project. However, the progress is not going to be achieved
proportional to the number of MAN-MONTHS used for a project.
• Therefore, it is a false assumption that by adding more MAN-
MONTHS you can complete the project earlier.
• MAN and MONTH are in fact interchangeable, only if the project
consists of several independent efforts (INDEPENDENT
PARTITIONED TASKS) and a case where team members do not have
to communicate with each other.
• e.g.: Men for Months Man-Month
• 5 4 20
• X2 /2
• 10 2 20
• In fact, one of the problems with software engineering projects is
that as we add more MAN-MONTHS, the amount of communication
among the men is going to increase rapidly.
-5-UTA CSE
• Therefore, by adding more MAN-MONTHS, we are, in fact, increasing
the completion time of the software project because the
communication is going to affect the completion time of the project.
• Thus, the assumption that MAN and MONTH are interchangeable is
not correct.
• Another very important factor that affects our estimation of
completion time of software projects is the system testing and
debugging process.
• Brooks' rule of thumb for estimating the completion time of software
projects:
– 1/3 time for planning;
– 1/6 time for coding;
– 1/4 time for component tests;
– 1/4 time for system test with all components in hand.
• Note that the testing and debugging takes about 50% of the time,
while coding, which people often worry about, only takes about 1/6
of the time.
• Actually, coding is the easiest phase to accurately estimate!
• Underestimating the time it takes for system testing can become
very dangerous because it comes at the end of the project:
– project is already fully funded and has the most manpower allocated to it,
-6-UTA CSE
– the customer is ready to receive the product,
– any delays at that point is going to increase the cost of the system
dramatically,
– and it is going to reduce the confidence of the customer.
• One other problem with the scheduling of software projects is that
software managers often estimate the completion time of the
projects according to the desired date of the customers.
• Instead of making the schedules realistic they try to match what the
customer wants and therefore get into trouble later.
• Brooks' Law:
– Adding manpower to a late software project makes
it later.
• The number of months of a project depends upon its sequential
constraints. The maximum number of men depends upon the
number of independent subtasks. From these two quantities one
can derive schedules using different number of men and months.
-7-UTA CSE
-8-UTA CSE
• Let MMc be the average effort expended by a pair of persons,
working on the project, in communicating with each other -
determined to be based on the project not N. Then:
– Assumes no original level isolations. But complete
communication among team members.
• MMn = Effort required without communication
• MM = Total effort including communication:
• Note : This is appropriate for task force , committee
and democratic organizations. Not so for others.
MMc
N N
MMc Pairs MMc=
−
× = ×∑
2
2
MM MMn N
N
MMc N T
T
MMn
N
N
MMc
MMn
N
MMc
N if N let H
MMc
T
MMn
N
H N
= +
−
= ×
= +
−
≈ + × >> =
≈ + ×
( )
( ),
1
2
1
2
2
1
2
-9-UTA CSE
• FINDING THE OPTIMUM TASK STAFFING
– (Time to completion minimized):
T
MMn
N
MMc
N
dT
dN
MMn N
MMc
set to for minimumT
MMn N
MMc
N
MMn MMn
MMc
opt
opt MMc
= +
= − × +
− × + =
= =
−
−
2
2
0
2
0
141
2
2
2
( )
.
-10-UTA CSE
• Example : A 100 Man month task requires an
average of 1 Man Month Communications
effort per pair of project personnel. Nopt = ?
• With the 100 MM task effort est., wouldn't it
be a shocker if no consideration of
communication was made !
N
MMn
MMc
Persons
T Months
MM T N Man Month
opt
opt
opt opt
= = =
= + × =
= × =∑
141 141
100
1
141
100
141
1
2
141 1414
200
. . .
.
. .
-11-UTA CSE
• Chpt 3: The Surgical Team
• A lot of the program managers believe that they are better off having
a very small number of sharp Programmers on their team than
having a large number of mediocre programmers.
• However, the problem with an organization like this is that with such
a small number of people in a group you cannot do large system
applications and system programs.
• For example, the OS360 took about 5,000 MAN-YEARS to complete
so if we have a small team of 200 programmers it would have taken
them 25 years to complete the project!
• However, it took about 3 years to complete the project and, at times,
there were more than 1,000 men working on the project.
• Now assume that instead of hiring the 200 programmers we hire 10
very smart and productive programmers, therefore, let's say they can
achieve an improvement factor of 7 in terms of productivity for
programming and documentation, and we can also achieve an
improvement factor of 7 in terms of reduced communication among
the programmers.
• In that case, for our 5,000 MAN-YEARS job, we need 10 years to
complete the project. (5,000/(10X7X7)).
• Solution:
-12-UTA CSE
• Large programming jobs must be broken into smaller subtasks and
each programmer will work on a subtask.
• But as a whole, the team must act like a surgical team, in other
words, there would be a team leader or chief programmer (surgeon),
who is in charge of the whole thing and other team members try to
help him complete the project (surgery).
• Chief Programmer (and Co-Pilot)
– Administrator (handles money, people, space, machines, etc.)
» Secretary
– Editor (Supports Chief Programmers Documentation preparation)
» Secretary
– Program Clerk (Maintains code and all technical records)
– Toolsmith (Serves the chief programmer's needs for utilities, proc's,
macros, etc.)
– Tester (Devises system component tests from the functional spec's,
Assists in day to day debugging, etc.)
• Difference between a surgical team and a team of collaborating
colleagues:
– In the surgical team, the whole project is the brainchild of the surgeon and
he/she is in charge of the project. The surgeon (or chief programmer) is
in charge of keeping the conceptual integrity of the project.
– In a collaborative team, on the other hand, everyone is equal and
everyone can have input into how the project should change and how the
integrity should be preserved, and that sometimes causes chaos.
-13-UTA CSE
• Scaling up: How does one apply the surgical team organization to a
project which involves hundreds or thousands of team members?
– The obvious choice is to use a hierarchical organization in which the large
system is broken into many subsystems and there are surgical teams
assigned to each subsystem.
– Of course, there has to be coordination between the subsystems and that
will be as coordination between the subsystem team leaders (a few chief
programmers).
• Chpt 4: Conceptual Integrity
• Conceptual integrity is probably the most important aspect of large
system programming.
• It is better to have one good idea and carry it through the project
than having several uncoordinated good ideas.
• It is important that all the aspects of the system follow the same
philosophy and the same conceptual integrity throughout the
system. Thus, by doing so, the user or the customer only needs to
be aware of or know one concept.
• The conceptual integrity of the whole system is preserved by having
one system architect who designs the system from top-to-bottom.
• It should be noted that the system architect should stick with the
design of the system and should not get involved with the
implementation.
-14-UTA CSE
• This is because implementation and design are two separate phases
of the project.
• When we talk about the architect and architecture of a system we are
referring to the complete and detailed specifications of all the user
interfaces for the software system.
• The implementation of the system, on the other hand, is what goes
on behind the scenes, and what is actually carried out in coding and
in programming.
– An example is a programming language such as FORTRAN. The
architecture of FORTRAN specifies the characteristics of
FORTRAN, its syntax and its semantics. However, we can have
many implementations of FORTRAN on many different
machines.
• A system architecture is based on user requirements.
• An architect defines the design spec's while a builder defines the
implementation spec's.
• How is the architecture enforced during the implementation?
– Manual is the chief product of the architect and it carries the
design spec's.
– Meetings to resolve problems and discuss proposed changes.
– Product testing.
-15-UTA CSE
• Chpt 7: Why Did the Tower of Babel Fail
• Originally, the people of Babel spoke the same language and they
were all united.
• Therefore, they were successful in initiating and implementing the
Tower of Babel to reach God.
• However, later, God made them speak different languages and the
project failed!
• The Tower of Babel failed not because of technological limitations or
lack of resources. It failed because of communication problems and
disorganization that followed because of lack of communication.
• The same problem can be applied to large software engineering
projects. Many large system programs fail because of
communication problems among the programmers and among the
implementers.
• How does one cope with the communication problem?
• Besides telephone calls, meetings, E-mail and other forms of
communication, keeping a workbook for the project is extremely
important.
• The workbook essentially contains all the documentation relevant to
the project (Objectives, External Spec's, Internal Spec's, etc.).
• It especially contains documentation about the changes made to the
project as the project progresses.
-16-UTA CSE
• This will be a tool where the team members can go to find out what
the newest changes are and what other people are doing.
• It should be noted that, as the projects become larger and larger, and
the number of people involved become more and more, the size of
the project workbook increases and we have to impose some kind of
a structure for the workbook. For example, we may use a tree
structure organization, or we may have to use indexing and
numbering systems in order to find what we are looking for.
• One of the problems to deal with is how to keep track of changes of
the project in the workbook. There are two things that need to be
done:
– 1) All the changes should be clearly highlighted in the documents and
this can be done, for example, by a vertical bar in the margin for any line
which has been changed.
– 2) There should be a brief summary of changes attached, which
highlights or explains briefly the significance of the changes done to the
project.
• Organization:
– Organization is a means to control communication in a project.
– We have already talked about tree organization, as well as matrix
organization, and also we have talked about the communication involved
in each structure.
– For example, in the tree organization we see a clear division of
responsibilities and the communication becomes limited among
subordinates and the supervisors.
-17-UTA CSE
• Chpt 11: Plan to Throw One Away
• Building a pilot model or a pilot system is an intermediate step
between the initial system implementation (or prototyping) and the
final large-scale system.
• Building a pilot model is necessary in order to overcome the
difficulties unforeseen when going from a small-scale project to a
large-scale project.
• The pilot system should be thrown away and should not be given to
the customer as a final model. This is because the pilot model often
has bugs in it and would reduce the customer's confidence in the
producer.
• Software Maintenance:
– The major difference between software maintenance and hardware
maintenance is that in hardware maintenance we simply repair or replace
components and the architecture and the interface to the user doesn't
change.
– However, in software maintenance we make design changes to the
software and typically add new functions and because of this, the
interface to the user changes.
– Also, in software maintenance, fixing the problems and new functions
also introduce new bugs which requires further testing.
– What typically happens is that as we add more functions, we are adding
more bugs which in turn requires more fixes and modifications.
Therefore, software maintenance is a very difficult job.
-18-UTA CSE
• Chpt 14: Hatching a Catastrophe
• Milestones must be clearly defined, very sharp and easily
identifiable.
• PERT charts are very important in keeping track of the critical tasks
in the whole project.
• By identifying the critical path in a PERT chart we know which tasks
cannot afford even one day of delay in their completion.
• Chpt 15: The Other Face
• Read chapter 15 for details on how to document a large program.
-19-UTA CSE
-20-UTA CSE
-21-UTA CSE
DESIGN METHODOLOGIES
• Design Notations :
– Software :
» Data Flow Diagrams
» Structure charts
» Procedure Templates
» Pseudocodes
» Structured Flowcharts
» Structured English
» Decision Tables
– Hardware
» Block Diagrams
» Schematic and wiring diagrams
» Layout diagrams
» Detailed drawings (FAB, detail, PCB masks)
-22-UTA CSE
• Design Strategies (software and hardware)
– No generally applicable recipes.
– Conceptual gap : System requirements ----> Primitive
bldg blocks
– Many design alternatives
– (S/W): Space - Time trade offs. (H/W): thermal , Structural
& Maintenance access analysis.
– Iteration
– Divide and Conquer : Partition the problem into smaller
manageable pieces.
• Design Techniques (S/W) :
– Stepwise refinement
– Levels of Abstraction
– Structured Design
– Integrated Top Down Development
– Bottom Up development
– Jackson Structured Programming
-23-UTA CSE
DESIGN TECHNIQUES
• TOP DOWN APPROACH
– Strong system requirements
– The successive decomposition of a large problem into
smaller sub problems until suitable primitive building
blocks are reached.
-24-UTA CSE
• BOTTOM UP APPROACH
– Restricted resources and weak system requirements.
– The basic primitives are used to build useful and more
powerful problem oriented building blocks.
DESIGN TECHNIQUES
-25-UTA CSE

More Related Content

What's hot

What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?Gail Murphy
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projectsbriley1
 
Glenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringGlenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringatr2006
 
Room to Breathe: The BA's role in project estimation
Room to Breathe: The BA's role in project estimationRoom to Breathe: The BA's role in project estimation
Room to Breathe: The BA's role in project estimationufunctional
 
Lecture 1 introduction to applied software project management
Lecture 1   introduction to applied software project managementLecture 1   introduction to applied software project management
Lecture 1 introduction to applied software project managementanasz3z3
 
Software development project management
Software development project managementSoftware development project management
Software development project managementRoni Banerjee
 
Lect-2: Overview and Traditional SPM, Classic mistakes
Lect-2: Overview and Traditional SPM, Classic mistakesLect-2: Overview and Traditional SPM, Classic mistakes
Lect-2: Overview and Traditional SPM, Classic mistakesMubashir Ali
 
A Pattern-Language-for-software-Development
A Pattern-Language-for-software-DevelopmentA Pattern-Language-for-software-Development
A Pattern-Language-for-software-DevelopmentShiraz316
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software EngineeringLeyla Bonilla
 
Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project EstimationFrank Vogelezang
 
Agile Development For Rte Systems
Agile Development For Rte SystemsAgile Development For Rte Systems
Agile Development For Rte SystemsBruce Douglass
 
Metrics for Mofel-Based Systems Development
Metrics for Mofel-Based Systems DevelopmentMetrics for Mofel-Based Systems Development
Metrics for Mofel-Based Systems DevelopmentBruce Douglass
 
Automated testing san francisco oct 2013
Automated testing san francisco oct 2013Automated testing san francisco oct 2013
Automated testing san francisco oct 2013Solano Labs
 
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentKristine Hejna
 
Risk adjusted engineering management
Risk adjusted engineering managementRisk adjusted engineering management
Risk adjusted engineering managementGlen Alleman
 
Patterns for the People
Patterns for the PeoplePatterns for the People
Patterns for the PeopleKevlin Henney
 

What's hot (20)

What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
 
Myths
MythsMyths
Myths
 
Glenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringGlenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineering
 
Room to Breathe: The BA's role in project estimation
Room to Breathe: The BA's role in project estimationRoom to Breathe: The BA's role in project estimation
Room to Breathe: The BA's role in project estimation
 
Structured Design
Structured DesignStructured Design
Structured Design
 
Lecture 1 introduction to applied software project management
Lecture 1   introduction to applied software project managementLecture 1   introduction to applied software project management
Lecture 1 introduction to applied software project management
 
Software development project management
Software development project managementSoftware development project management
Software development project management
 
Lect-2: Overview and Traditional SPM, Classic mistakes
Lect-2: Overview and Traditional SPM, Classic mistakesLect-2: Overview and Traditional SPM, Classic mistakes
Lect-2: Overview and Traditional SPM, Classic mistakes
 
A Pattern-Language-for-software-Development
A Pattern-Language-for-software-DevelopmentA Pattern-Language-for-software-Development
A Pattern-Language-for-software-Development
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
software lecture
software lecturesoftware lecture
software lecture
 
Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project Estimation
 
Agile Development For Rte Systems
Agile Development For Rte SystemsAgile Development For Rte Systems
Agile Development For Rte Systems
 
Metrics for Mofel-Based Systems Development
Metrics for Mofel-Based Systems DevelopmentMetrics for Mofel-Based Systems Development
Metrics for Mofel-Based Systems Development
 
Automated testing san francisco oct 2013
Automated testing san francisco oct 2013Automated testing san francisco oct 2013
Automated testing san francisco oct 2013
 
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability Assessment
 
Risk adjusted engineering management
Risk adjusted engineering managementRisk adjusted engineering management
Risk adjusted engineering management
 
Dev ops
Dev opsDev ops
Dev ops
 
Patterns for the People
Patterns for the PeoplePatterns for the People
Patterns for the People
 

Similar to Mythical Man Month Essays on Software Engineering

Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALAlex Tarra
 
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxestefana2345678
 
3. Lect 29_ 30_ 32 Project Planning.pptx
3. Lect 29_ 30_ 32 Project Planning.pptx3. Lect 29_ 30_ 32 Project Planning.pptx
3. Lect 29_ 30_ 32 Project Planning.pptxAbhishekKumar66407
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 
7. (lecture 5) Project scheduling..ppt
7. (lecture 5) Project scheduling..ppt7. (lecture 5) Project scheduling..ppt
7. (lecture 5) Project scheduling..pptPedadaSaikumar
 
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation modelsSe 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation modelsbabak danyal
 
Qimonda Pm Foils
Qimonda Pm FoilsQimonda Pm Foils
Qimonda Pm Foilstrahanr
 
224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case StudyESEM 2014
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdfaustdali
 
Case Study Automotive Electronic: Integration Microsoft Project with SAP
Case Study Automotive Electronic: Integration Microsoft Project with SAPCase Study Automotive Electronic: Integration Microsoft Project with SAP
Case Study Automotive Electronic: Integration Microsoft Project with SAPTPG The Project Group
 
itec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptitec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptinaamulh77
 
Critical Chain Basics
Critical Chain BasicsCritical Chain Basics
Critical Chain BasicsJakub Linhart
 
DescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxDescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxcarolinef5
 
DescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxDescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxdonaldp2
 

Similar to Mythical Man Month Essays on Software Engineering (20)

Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
 
3. Lect 29_ 30_ 32 Project Planning.pptx
3. Lect 29_ 30_ 32 Project Planning.pptx3. Lect 29_ 30_ 32 Project Planning.pptx
3. Lect 29_ 30_ 32 Project Planning.pptx
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Project Manufacturing
Project ManufacturingProject Manufacturing
Project Manufacturing
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
7. (lecture 5) Project scheduling..ppt
7. (lecture 5) Project scheduling..ppt7. (lecture 5) Project scheduling..ppt
7. (lecture 5) Project scheduling..ppt
 
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation modelsSe 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
Se 381 - lec 25 - 32 - 12 may29 - program size and cost estimation models
 
Qimonda Pm Foils
Qimonda Pm FoilsQimonda Pm Foils
Qimonda Pm Foils
 
224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study
 
Cost estimation
Cost estimationCost estimation
Cost estimation
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdf
 
Case Study Automotive Electronic: Integration Microsoft Project with SAP
Case Study Automotive Electronic: Integration Microsoft Project with SAPCase Study Automotive Electronic: Integration Microsoft Project with SAP
Case Study Automotive Electronic: Integration Microsoft Project with SAP
 
Project Scheduling
Project SchedulingProject Scheduling
Project Scheduling
 
itec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptitec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.ppt
 
Critical Chain Basics
Critical Chain BasicsCritical Chain Basics
Critical Chain Basics
 
DescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxDescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docx
 
DescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxDescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docx
 
Effort estimation
Effort estimationEffort estimation
Effort estimation
 
251 - Alogarithms Lects.pdf
251 - Alogarithms Lects.pdf251 - Alogarithms Lects.pdf
251 - Alogarithms Lects.pdf
 

More from mustafa sarac

Uluslararasilasma son
Uluslararasilasma sonUluslararasilasma son
Uluslararasilasma sonmustafa sarac
 
Real time machine learning proposers day v3
Real time machine learning proposers day v3Real time machine learning proposers day v3
Real time machine learning proposers day v3mustafa sarac
 
Latka december digital
Latka december digitalLatka december digital
Latka december digitalmustafa sarac
 
Axial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manualAxial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manualmustafa sarac
 
Array programming with Numpy
Array programming with NumpyArray programming with Numpy
Array programming with Numpymustafa sarac
 
Math for programmers
Math for programmersMath for programmers
Math for programmersmustafa sarac
 
TEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimizTEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimizmustafa sarac
 
How to make and manage a bee hotel?
How to make and manage a bee hotel?How to make and manage a bee hotel?
How to make and manage a bee hotel?mustafa sarac
 
Cahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir miCahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir mimustafa sarac
 
How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?mustafa sarac
 
Staff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital MarketsStaff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital Marketsmustafa sarac
 
Yetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimiYetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimimustafa sarac
 
Consumer centric api design v0.4.0
Consumer centric api design v0.4.0Consumer centric api design v0.4.0
Consumer centric api design v0.4.0mustafa sarac
 
State of microservices 2020 by tsh
State of microservices 2020 by tshState of microservices 2020 by tsh
State of microservices 2020 by tshmustafa sarac
 
Uber pitch deck 2008
Uber pitch deck 2008Uber pitch deck 2008
Uber pitch deck 2008mustafa sarac
 
Wireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guideWireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guidemustafa sarac
 
State of Serverless Report 2020
State of Serverless Report 2020State of Serverless Report 2020
State of Serverless Report 2020mustafa sarac
 
Dont just roll the dice
Dont just roll the diceDont just roll the dice
Dont just roll the dicemustafa sarac
 

More from mustafa sarac (20)

Uluslararasilasma son
Uluslararasilasma sonUluslararasilasma son
Uluslararasilasma son
 
Real time machine learning proposers day v3
Real time machine learning proposers day v3Real time machine learning proposers day v3
Real time machine learning proposers day v3
 
Latka december digital
Latka december digitalLatka december digital
Latka december digital
 
Axial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manualAxial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manual
 
Array programming with Numpy
Array programming with NumpyArray programming with Numpy
Array programming with Numpy
 
Math for programmers
Math for programmersMath for programmers
Math for programmers
 
The book of Why
The book of WhyThe book of Why
The book of Why
 
BM sgk meslek kodu
BM sgk meslek koduBM sgk meslek kodu
BM sgk meslek kodu
 
TEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimizTEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimiz
 
How to make and manage a bee hotel?
How to make and manage a bee hotel?How to make and manage a bee hotel?
How to make and manage a bee hotel?
 
Cahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir miCahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir mi
 
How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?
 
Staff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital MarketsStaff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital Markets
 
Yetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimiYetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimi
 
Consumer centric api design v0.4.0
Consumer centric api design v0.4.0Consumer centric api design v0.4.0
Consumer centric api design v0.4.0
 
State of microservices 2020 by tsh
State of microservices 2020 by tshState of microservices 2020 by tsh
State of microservices 2020 by tsh
 
Uber pitch deck 2008
Uber pitch deck 2008Uber pitch deck 2008
Uber pitch deck 2008
 
Wireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guideWireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guide
 
State of Serverless Report 2020
State of Serverless Report 2020State of Serverless Report 2020
State of Serverless Report 2020
 
Dont just roll the dice
Dont just roll the diceDont just roll the dice
Dont just roll the dice
 

Recently uploaded

WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 

Recently uploaded (20)

WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 

Mythical Man Month Essays on Software Engineering

  • 1. -1-UTA CSE The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks, Jr. • Brooks => Manager for Architecture & Operating System (OS360) development for IBM360 & was also involved in design and implementation of the IBM Stretch. • OS360 is an important product since it introduced several innovative ideas such as: • Device independent I/O • External Library Management • This book is for professional managers of software development projects. • Brooks believes large program development management suffers from problems related to division of labor. • Brooks says critical problem is preservation of conceptual integrity of the product itself => he will propose methods for preserving this unity in Chpt's 2-7.
  • 2. -2-UTA CSE • Chpt 1: The Tar Pit • Large system programming is like a tar pit: • The more you struggle, the more you sink in it. • No one thing seems to be the difficulty, but as a whole, the programmers get trapped in it and the project dies (e.g., we can take one paw or hand out of the tar pit, but not our whole body). • A programming system product must be: – 1) General (for input, as well as algorithms). – 2) Thoroughly tested so it can be depended upon. This increases costs be as much as 3 times over untested products. – 3) Documented so it can be used, fixed, and extended. – 4) Finally, a programming product becomes a component of a software system (it works with other programs and can be called or interrupted) => I/O interfaces become very important => a programming product must be tested in all possible combinations with other system components. This is very difficult => A programming system product as a system component costs at least 3 times as much as the same program as a programming product. – 5) Programming product must be within allotted budget. • A programming system product is 9 times higher in cost than a stand-alone product (3 for program testing x 3 for system testing).
  • 3. -3-UTA CSE • Chpt 2: The Mythical Man-Month • What one factor has caused the demise of software projects? • Poor scheduling and timing estimations! • Problems with scheduling and timing estimations in a software project: – 1) Estimation of the completion time for the software projects is typically very difficult to do. – 2) In estimating the completion time of software projects we often assume that the effort and progress are the same, but that's not true. Especially we tend to interchange MAN and MONTH. – 3) Scheduled progress is poorly monitored. – 4) When software projects get behind the scheduled time, the typical solution is to add more MAN-MONTH or manpower to the software project. • In software projects we always assume that everything will go well! • In a non-software engineering project we often run into unforeseen problems that are intractable, and therefore the managers tend to over-estimate in timing requirements to compensate for them. • In software engineering, however, we always think of programming as something which is tractable and which is documented. However, this assumption is not correct because we always have bugs in software; and although bugs are tractable, they are very difficult to detect. That will make the problem almost intractable.
  • 4. -4-UTA CSE • The second problem with estimating completion time of software projects is with the unit of time used to estimate the completion of the project (i.e., MAN-MONTH). • There is a fallacy involved with this unit: It is true that the cost of the project will increase proportional to the MAN-MONTH used for that project. However, the progress is not going to be achieved proportional to the number of MAN-MONTHS used for a project. • Therefore, it is a false assumption that by adding more MAN- MONTHS you can complete the project earlier. • MAN and MONTH are in fact interchangeable, only if the project consists of several independent efforts (INDEPENDENT PARTITIONED TASKS) and a case where team members do not have to communicate with each other. • e.g.: Men for Months Man-Month • 5 4 20 • X2 /2 • 10 2 20 • In fact, one of the problems with software engineering projects is that as we add more MAN-MONTHS, the amount of communication among the men is going to increase rapidly.
  • 5. -5-UTA CSE • Therefore, by adding more MAN-MONTHS, we are, in fact, increasing the completion time of the software project because the communication is going to affect the completion time of the project. • Thus, the assumption that MAN and MONTH are interchangeable is not correct. • Another very important factor that affects our estimation of completion time of software projects is the system testing and debugging process. • Brooks' rule of thumb for estimating the completion time of software projects: – 1/3 time for planning; – 1/6 time for coding; – 1/4 time for component tests; – 1/4 time for system test with all components in hand. • Note that the testing and debugging takes about 50% of the time, while coding, which people often worry about, only takes about 1/6 of the time. • Actually, coding is the easiest phase to accurately estimate! • Underestimating the time it takes for system testing can become very dangerous because it comes at the end of the project: – project is already fully funded and has the most manpower allocated to it,
  • 6. -6-UTA CSE – the customer is ready to receive the product, – any delays at that point is going to increase the cost of the system dramatically, – and it is going to reduce the confidence of the customer. • One other problem with the scheduling of software projects is that software managers often estimate the completion time of the projects according to the desired date of the customers. • Instead of making the schedules realistic they try to match what the customer wants and therefore get into trouble later. • Brooks' Law: – Adding manpower to a late software project makes it later. • The number of months of a project depends upon its sequential constraints. The maximum number of men depends upon the number of independent subtasks. From these two quantities one can derive schedules using different number of men and months.
  • 8. -8-UTA CSE • Let MMc be the average effort expended by a pair of persons, working on the project, in communicating with each other - determined to be based on the project not N. Then: – Assumes no original level isolations. But complete communication among team members. • MMn = Effort required without communication • MM = Total effort including communication: • Note : This is appropriate for task force , committee and democratic organizations. Not so for others. MMc N N MMc Pairs MMc= − × = ×∑ 2 2 MM MMn N N MMc N T T MMn N N MMc MMn N MMc N if N let H MMc T MMn N H N = + − = × = + − ≈ + × >> = ≈ + × ( ) ( ), 1 2 1 2 2 1 2
  • 9. -9-UTA CSE • FINDING THE OPTIMUM TASK STAFFING – (Time to completion minimized): T MMn N MMc N dT dN MMn N MMc set to for minimumT MMn N MMc N MMn MMn MMc opt opt MMc = + = − × + − × + = = = − − 2 2 0 2 0 141 2 2 2 ( ) .
  • 10. -10-UTA CSE • Example : A 100 Man month task requires an average of 1 Man Month Communications effort per pair of project personnel. Nopt = ? • With the 100 MM task effort est., wouldn't it be a shocker if no consideration of communication was made ! N MMn MMc Persons T Months MM T N Man Month opt opt opt opt = = = = + × = = × =∑ 141 141 100 1 141 100 141 1 2 141 1414 200 . . . . . .
  • 11. -11-UTA CSE • Chpt 3: The Surgical Team • A lot of the program managers believe that they are better off having a very small number of sharp Programmers on their team than having a large number of mediocre programmers. • However, the problem with an organization like this is that with such a small number of people in a group you cannot do large system applications and system programs. • For example, the OS360 took about 5,000 MAN-YEARS to complete so if we have a small team of 200 programmers it would have taken them 25 years to complete the project! • However, it took about 3 years to complete the project and, at times, there were more than 1,000 men working on the project. • Now assume that instead of hiring the 200 programmers we hire 10 very smart and productive programmers, therefore, let's say they can achieve an improvement factor of 7 in terms of productivity for programming and documentation, and we can also achieve an improvement factor of 7 in terms of reduced communication among the programmers. • In that case, for our 5,000 MAN-YEARS job, we need 10 years to complete the project. (5,000/(10X7X7)). • Solution:
  • 12. -12-UTA CSE • Large programming jobs must be broken into smaller subtasks and each programmer will work on a subtask. • But as a whole, the team must act like a surgical team, in other words, there would be a team leader or chief programmer (surgeon), who is in charge of the whole thing and other team members try to help him complete the project (surgery). • Chief Programmer (and Co-Pilot) – Administrator (handles money, people, space, machines, etc.) » Secretary – Editor (Supports Chief Programmers Documentation preparation) » Secretary – Program Clerk (Maintains code and all technical records) – Toolsmith (Serves the chief programmer's needs for utilities, proc's, macros, etc.) – Tester (Devises system component tests from the functional spec's, Assists in day to day debugging, etc.) • Difference between a surgical team and a team of collaborating colleagues: – In the surgical team, the whole project is the brainchild of the surgeon and he/she is in charge of the project. The surgeon (or chief programmer) is in charge of keeping the conceptual integrity of the project. – In a collaborative team, on the other hand, everyone is equal and everyone can have input into how the project should change and how the integrity should be preserved, and that sometimes causes chaos.
  • 13. -13-UTA CSE • Scaling up: How does one apply the surgical team organization to a project which involves hundreds or thousands of team members? – The obvious choice is to use a hierarchical organization in which the large system is broken into many subsystems and there are surgical teams assigned to each subsystem. – Of course, there has to be coordination between the subsystems and that will be as coordination between the subsystem team leaders (a few chief programmers). • Chpt 4: Conceptual Integrity • Conceptual integrity is probably the most important aspect of large system programming. • It is better to have one good idea and carry it through the project than having several uncoordinated good ideas. • It is important that all the aspects of the system follow the same philosophy and the same conceptual integrity throughout the system. Thus, by doing so, the user or the customer only needs to be aware of or know one concept. • The conceptual integrity of the whole system is preserved by having one system architect who designs the system from top-to-bottom. • It should be noted that the system architect should stick with the design of the system and should not get involved with the implementation.
  • 14. -14-UTA CSE • This is because implementation and design are two separate phases of the project. • When we talk about the architect and architecture of a system we are referring to the complete and detailed specifications of all the user interfaces for the software system. • The implementation of the system, on the other hand, is what goes on behind the scenes, and what is actually carried out in coding and in programming. – An example is a programming language such as FORTRAN. The architecture of FORTRAN specifies the characteristics of FORTRAN, its syntax and its semantics. However, we can have many implementations of FORTRAN on many different machines. • A system architecture is based on user requirements. • An architect defines the design spec's while a builder defines the implementation spec's. • How is the architecture enforced during the implementation? – Manual is the chief product of the architect and it carries the design spec's. – Meetings to resolve problems and discuss proposed changes. – Product testing.
  • 15. -15-UTA CSE • Chpt 7: Why Did the Tower of Babel Fail • Originally, the people of Babel spoke the same language and they were all united. • Therefore, they were successful in initiating and implementing the Tower of Babel to reach God. • However, later, God made them speak different languages and the project failed! • The Tower of Babel failed not because of technological limitations or lack of resources. It failed because of communication problems and disorganization that followed because of lack of communication. • The same problem can be applied to large software engineering projects. Many large system programs fail because of communication problems among the programmers and among the implementers. • How does one cope with the communication problem? • Besides telephone calls, meetings, E-mail and other forms of communication, keeping a workbook for the project is extremely important. • The workbook essentially contains all the documentation relevant to the project (Objectives, External Spec's, Internal Spec's, etc.). • It especially contains documentation about the changes made to the project as the project progresses.
  • 16. -16-UTA CSE • This will be a tool where the team members can go to find out what the newest changes are and what other people are doing. • It should be noted that, as the projects become larger and larger, and the number of people involved become more and more, the size of the project workbook increases and we have to impose some kind of a structure for the workbook. For example, we may use a tree structure organization, or we may have to use indexing and numbering systems in order to find what we are looking for. • One of the problems to deal with is how to keep track of changes of the project in the workbook. There are two things that need to be done: – 1) All the changes should be clearly highlighted in the documents and this can be done, for example, by a vertical bar in the margin for any line which has been changed. – 2) There should be a brief summary of changes attached, which highlights or explains briefly the significance of the changes done to the project. • Organization: – Organization is a means to control communication in a project. – We have already talked about tree organization, as well as matrix organization, and also we have talked about the communication involved in each structure. – For example, in the tree organization we see a clear division of responsibilities and the communication becomes limited among subordinates and the supervisors.
  • 17. -17-UTA CSE • Chpt 11: Plan to Throw One Away • Building a pilot model or a pilot system is an intermediate step between the initial system implementation (or prototyping) and the final large-scale system. • Building a pilot model is necessary in order to overcome the difficulties unforeseen when going from a small-scale project to a large-scale project. • The pilot system should be thrown away and should not be given to the customer as a final model. This is because the pilot model often has bugs in it and would reduce the customer's confidence in the producer. • Software Maintenance: – The major difference between software maintenance and hardware maintenance is that in hardware maintenance we simply repair or replace components and the architecture and the interface to the user doesn't change. – However, in software maintenance we make design changes to the software and typically add new functions and because of this, the interface to the user changes. – Also, in software maintenance, fixing the problems and new functions also introduce new bugs which requires further testing. – What typically happens is that as we add more functions, we are adding more bugs which in turn requires more fixes and modifications. Therefore, software maintenance is a very difficult job.
  • 18. -18-UTA CSE • Chpt 14: Hatching a Catastrophe • Milestones must be clearly defined, very sharp and easily identifiable. • PERT charts are very important in keeping track of the critical tasks in the whole project. • By identifying the critical path in a PERT chart we know which tasks cannot afford even one day of delay in their completion. • Chpt 15: The Other Face • Read chapter 15 for details on how to document a large program.
  • 21. -21-UTA CSE DESIGN METHODOLOGIES • Design Notations : – Software : » Data Flow Diagrams » Structure charts » Procedure Templates » Pseudocodes » Structured Flowcharts » Structured English » Decision Tables – Hardware » Block Diagrams » Schematic and wiring diagrams » Layout diagrams » Detailed drawings (FAB, detail, PCB masks)
  • 22. -22-UTA CSE • Design Strategies (software and hardware) – No generally applicable recipes. – Conceptual gap : System requirements ----> Primitive bldg blocks – Many design alternatives – (S/W): Space - Time trade offs. (H/W): thermal , Structural & Maintenance access analysis. – Iteration – Divide and Conquer : Partition the problem into smaller manageable pieces. • Design Techniques (S/W) : – Stepwise refinement – Levels of Abstraction – Structured Design – Integrated Top Down Development – Bottom Up development – Jackson Structured Programming
  • 23. -23-UTA CSE DESIGN TECHNIQUES • TOP DOWN APPROACH – Strong system requirements – The successive decomposition of a large problem into smaller sub problems until suitable primitive building blocks are reached.
  • 24. -24-UTA CSE • BOTTOM UP APPROACH – Restricted resources and weak system requirements. – The basic primitives are used to build useful and more powerful problem oriented building blocks. DESIGN TECHNIQUES