Propositions of The Mythical Man-Month: True or False? Are The Topics Proposed in 1975 Still Valid?

Slides:



Advertisements
Similar presentations
Inference without the Engine!. What is EZ-Xpert 3.0? EZ-Xpert is a Rapid Application Development (RAD) environment for creating fast and accurate rule-based.
Advertisements

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Code Tuning Strategies and Techniques
S-Curves & the Zero Bug Bounce:
EEL5881 software engineering I Mythical man-month lecture
Effort metrics: Man-month. Mythical Man Month – the book Brooks lead development of OS/360 and reflected on the problems experienced in the project. The.
Robert Lockyer.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Calling the Shot Presented by Peter Lane. How long will a system programming job take? How effort is needed? How would you estimate? 1. Coding is only.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Informatics 43 – May 12, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases 
Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering.
Chapter 1: Key Points Program = Useful to the programmer in the garage Programming Product = Useful to anyone Programming System Component = Part of a.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
The Mythical Man-Month Due Today: Code & Coding Standards Due Next Class: Quiz #3; see webpage Mythical Man-Month I Bio Break Mythical Man-Month II Questions.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
Planning. SDLC Planning Analysis Design Implementation.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Slide TMMM.1/28 The Mythical Man-Months. Slide TMMM.2/28 Overview Fred Brooks and OS/360 The Mythical Man-Month What has and has not changed? No Silver.
Program Development Life Cycle (PDLC)
Prof. Aiken CS 169 Lecture 61 Project Planning CS169 Lecture 6.
Software Engineering Lecture 7: Scheduling & Tracking.
Software Requirements Engineering: What, Why, Who, When, and How
1 Software Process and Project Metrics. 2 Normalization for Metrics.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
By Justin hendrix. Chapter 1: The Tar Pit Chapter one is about making a good project that won’t get stuck in the “tar pit.” That is it must be flexible.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
T Iteration demo T Iteration Demo Team Balboa I1 - Iteration
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Advanced S/w Eng - s/w productivity issues 1 Software Productivity Issues Why do software projects fail? Advanced Software Engineering COM360 University.
Project Management. Introduction  Project management process goes alongside the system development process Process management process made up of three.
Chapter Three The Surgical Team. The Problem Large Group – 10:1 productivity and 5:1 program speed and space management. – Negative aspect Sheer number.
Chapter Eighteen Proposition of the Mythical Man Month: True or False?
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
Memory Management OS Fazal Rehman Shamil. swapping Swapping concept comes in terms of process scheduling. Swapping is basically implemented by Medium.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Chapter 5: Software effort estimation
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
11 Making Decisions in a Program Session 2.3. Session Overview  Introduce the idea of an algorithm  Show how a program can make logical decisions based.
Software Development.
Why is software engineering worth studying?
Types for Programs and Proofs
Sample Wiki Comments?.
The Systems Engineering Context
CSCI1600: Embedded and Real Time Software
© Ian Davis 2017 Spring (c) Ian Davis.
Software life cycle models
Software Testing and Maintenance Maintenance and Evolution Overview
Chapter 5: Software effort estimation
Software testing and configuration : Embedded software testing
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
CSCI1600: Embedded and Real Time Software
Presentation transcript:

Propositions of The Mythical Man-Month: True or False? Are The Topics Proposed in 1975 Still Valid?

Look back on the Topics from 1975 in 1995 to see if they hold True Fredrick Brooks takes a look back on all the topics he discussed back in 1975 to determine if they are still valid Fredrick Brooks takes a look back on all the topics he discussed back in 1975 to determine if they are still valid

The Tar Pit Programming a commercial program takes 9 times longer than a privately used programs. Programming a commercial program takes 9 times longer than a privately used programs. Programmers still have the same joys and woes as before. Programmers still have the same joys and woes as before.

The Mythical Man Month Good programs take time. Good programs take time. Putting proper time requirements on program development is difficult. Putting proper time requirements on program development is difficult. Brooks Law: Adding manpower to a late software project makes it later! Brooks Law: Adding manpower to a late software project makes it later!

The Surgical Team Good programmers are 10 times more productive than poor ones even with same experience. Good programmers are 10 times more productive than poor ones even with same experience. Fewest minds on a project is best Fewest minds on a project is best A surgical team can keep the few mind structure but still get the productivity of many workers. A surgical team can keep the few mind structure but still get the productivity of many workers.

Aristocracy, Democracy, and System Design Conceptual integrity is the most important consideration in system design. Conceptual integrity is the most important consideration in system design. The ratio of function to concept complexity is the best test, which comes from a small group of minds that separates architectural effort from implementation with one person in control of concepts. The ratio of function to concept complexity is the best test, which comes from a small group of minds that separates architectural effort from implementation with one person in control of concepts. A concept integrated system is fast to build and much of software development can be done in parallel. A concept integrated system is fast to build and much of software development can be done in parallel.

The Second System Effect Good communication by the architect can give good estimates for the project and also influence implementation of the project. Good communication by the architect can give good estimates for the project and also influence implementation of the project. The second project is the most dangerous a person will design due to over design. The second project is the most dangerous a person will design due to over design. OS/360 is a good example of this. OS/360 is a good example of this.

Passing the Word The results and implmenation need to be consistent, very detailed, formal, and follow a standard. The results and implmenation need to be consistent, very detailed, formal, and follow a standard. Any questions that an implementer has for the architect should be answered, then well documented and published. Any questions that an implementer has for the architect should be answered, then well documented and published.

Why Did the Tower of Babel Fail? There was a lack of communication which in programming leads to scheduling problems, functionality problems, and bugs. There was a lack of communication which in programming leads to scheduling problems, functionality problems, and bugs. A formal workbook can help with communication. A formal workbook can help with communication. The workbook is all the documents of the project and should be made carefully and early. The workbook is all the documents of the project and should be made carefully and early. It needs to be properly structured, visible and updated quickly. It needs to be properly structured, visible and updated quickly. It is important to note changes. It is important to note changes.

Why Did the Tower of Babel Fail? cont. Organization reduces the amount of communication necessary. Organization reduces the amount of communication necessary. The communication structure is a network not a tree, so special organization needs to be created. The communication structure is a network not a tree, so special organization needs to be created. Each subproject needs two leaders, the producer and the director. Each subproject needs two leaders, the producer and the director. They can be the same or one can be over the other They can be the same or one can be over the other

Calling the Shot Estimating the total project time cant be done by estimating coding time and adding other factors. Estimating the total project time cant be done by estimating coding time and adding other factors. Programming increasing as a power of the program size which is estimated to be about 1.5. Programming increasing as a power of the program size which is estimated to be about 1.5. Portmans ICL data shows programmers apply 50% of their time to programming and debugging vs. other types of tasks. Portmans ICL data shows programmers apply 50% of their time to programming and debugging vs. other types of tasks. Arons IBM data shows productivity ranges from 1.5K lines of code (KLOC) per man-year (MY) to 10KLOC/MY Arons IBM data shows productivity ranges from 1.5K lines of code (KLOC) per man-year (MY) to 10KLOC/MY Harrs Bell labs and Brooks OS/360 data show the KLOC/MY to be 0.6 for operating system works and 2-3 KLOC/MY for complier work. Harrs Bell labs and Brooks OS/360 data show the KLOC/MY to be 0.6 for operating system works and 2-3 KLOC/MY for complier work. Productivity can increase as much as 5 fold when using higher level programming languages. Productivity can increase as much as 5 fold when using higher level programming languages.

Ten Pounds in a Five Pound Sack Principle Costs in a program are memory, and unnecessary size is wasteful. Principle Costs in a program are memory, and unnecessary size is wasteful. Size budgets must be set and followed by disk accesses and function assignments Size budgets must be set and followed by disk accesses and function assignments System architects need to be careful that sub-teams dont optimize their section of code so that it hurts the rest of the program. System architects need to be careful that sub-teams dont optimize their section of code so that it hurts the rest of the program. Programmers need to be trained in techniques of specific languages too help space-time tradeoffs and use program libraries. Programmers need to be trained in techniques of specific languages too help space-time tradeoffs and use program libraries. Most improvement break-throughs are done with new algorithms by redoing data representation. Most improvement break-throughs are done with new algorithms by redoing data representation.

The Documentary Hypothesis Documentation is very important, even smaller projects, which includes manuals, internal documents schedules, etc. Documentation is very important, even smaller projects, which includes manuals, internal documents schedules, etc. Each document is a checklist to provide a warning if something goes wrong. Each document is a checklist to provide a warning if something goes wrong. The project managers job is to keep the team going in the right direction through communication, the documents do the instructing. The project managers job is to keep the team going in the right direction through communication, the documents do the instructing.

Plan to Throw One Away Alpha and beta versions of projects are important. Alpha and beta versions of projects are important. The alpha version will most likely be totally discarded and redesigned but is still given to the customer to buy time. The alpha version will most likely be totally discarded and redesigned but is still given to the customer to buy time. It is important to document changes made and keep number versions. It is important to document changes made and keep number versions.

Plan to Throw One Away cont.: Plan the Organization For Change Designing a changing organization is harder than designing a system for change. Designing a changing organization is harder than designing a system for change. The boss must keep the mangers and technical people interchangeable as abilities allow, and the barriers are only sociological. The boss must keep the mangers and technical people interchangeable as abilities allow, and the barriers are only sociological. This can be difficult to set up but with a surgical team it will make it a lot easier. This can be difficult to set up but with a surgical team it will make it a lot easier.

Plan to Throw One Away cont.: Two Steps Forward One Step Back The cost of maintenance is about 40% the cost of development, and the more users the more bugs are found. The cost of maintenance is about 40% the cost of development, and the more users the more bugs are found. There is a decent chance that a bug fix will introduce another bug, so all the test cases must be run again. There is a decent chance that a bug fix will introduce another bug, so all the test cases must be run again. Designing the program to have little side effects greatly pay off in maintenance costs. Designing the program to have little side effects greatly pay off in maintenance costs. The more fixes introduced into the program the more the design fails and makes the entire program require to be redone. The more fixes introduced into the program the more the design fails and makes the entire program require to be redone.

Sharp Tools Debugging machines need maximum memory instead of maximum speed and it needs to automatically measure all the program parameters. Debugging machines need maximum memory instead of maximum speed and it needs to automatically measure all the program parameters. Setting computer usage time in blocks helps raise productivity. Setting computer usage time in blocks helps raise productivity. Building a simulator early is very helpful especially when it is listened to. Building a simulator early is very helpful especially when it is listened to. High level languages improve productivity and debugging. High level languages improve productivity and debugging.

The Whole and The Parts Designing the system before building is very important and needs to be reviewed by an outside source. Designing the system before building is very important and needs to be reviewed by an outside source. Golds experiment shows that the second debugging session will only reveal 1/3 of what the first session did. Golds experiment shows that the second debugging session will only reveal 1/3 of what the first session did. Debugging will be harder and take longer than planned. Debugging will be harder and take longer than planned. System debugging should only begin when component debugging is complete and components should only be added one at a time. System debugging should only begin when component debugging is complete and components should only be added one at a time. Code used only to test the system may take up almost 50% of the used code. Code used only to test the system may take up almost 50% of the used code.

Hatching a Catastrophe Schedule slippage is hard to stop. Schedule slippage is hard to stop. It is important to have a schedule with specific goals. It is important to have a schedule with specific goals. Repeated schedule slipping is bad for moral, but hustling is great for teams. Repeated schedule slipping is bad for moral, but hustling is great for teams. The critical path chart tells which slip matters how much. The critical path chart tells which slip matters how much. The actual status might be hard to get since a boss doesnt want to reveal it. The actual status might be hard to get since a boss doesnt want to reveal it. A milestone schedule and completion document help get around this. A milestone schedule and completion document help get around this.

The Other Face The face the user sees is the documentation is just important as the face to the machine. The face the user sees is the documentation is just important as the face to the machine. The importance for documentation has not be instilled into programmers. The importance for documentation has not be instilled into programmers. Most documentation does not overview enough. Most documentation does not overview enough. It is important to keep the documentation in the source code. It is important to keep the documentation in the source code. It is important to document why things are rather than just how they are. It is important to document why things are rather than just how they are.

Image Sources putermag.gif putermag.gif ns13.jpg ns13.jpg content/uploads/2006/02/kircherbabel.jpg content/uploads/2006/02/kircherbabel.jpg ools.jpg ools.jpg hiroshima-atomic-bomb.jpg hiroshima-atomic-bomb.jpg

Questions?