Robert Lockyer.

Slides:



Advertisements
Similar presentations
EEL5881 software engineering I Mythical man-month lecture
Advertisements

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.
Propositions of The Mythical Man-Month: True or False? Are The Topics Proposed in 1975 Still Valid?
Acceptance Testing.
CSC271 Database Systems Lecture # 18. Summary: Previous Lecture  Transactions  Authorization  Authorization identifier, ownership, privileges  GRANT/REVOKE.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Alternate Software Development Methodologies
The Mythical Man-Month By: Zac Lippard CS 470. What is the “Man-Month”? This is the idea that men and months are interchangeable between each other. This.
Software Engineering Teams Group 3 presents: Teamwork is the ability to work together toward a common vision. The ability to direct individual accomplishments.
PASSING THE WORD BY FRANKLYN OMORUAN. Written specifications Manual is the external specification of the product Manual is the external specification.
OPEN DEVELOPMENT, AGILE, XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
The Surgical Team A different kind of team build By Chris Bradney A different kind of team build By Chris Bradney.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
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 
Chapter 1: Key Points Program = Useful to the programmer in the garage Programming Product = Useful to anyone Programming System Component = Part of a.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
CS 501: Software Engineering
Software Engineering General Project Management Software Requirements
ESD.83Cory R. A. Hallam1 An Introduction to Systems Engineering The Art of Managing Complexity Presented By Cory R. A. Hallam B.Eng., M.Eng., ISU SSP,
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.
Mythical Man Month Fred Brooks, Why are software projects late? Estimating techniques are poorly developedEstimating techniques are poorly developed.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Design, Implementation and Maintenance
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
CPTE 209 Software Engineering Summary and Review.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
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.
Software Development Process and Management (or how to be officious and unpopular)
1 Software Process and Project Metrics. 2 Normalization for Metrics.
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.
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
Slide 1 Project Management Chapter 4. Slide 2 Objectives ■ Become familiar with estimation. ■ Be able to create a project workplan. ■ Become familiar.
Managing Resources Program Evaluation and Review Technique (PERT) Production Process.
The Long Tail Why the future of business is selling less of more ▫ISBN = ▫Chris Anderson Low Distribution and Inventory costs allow companies.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Mythical Man Month By Ryan Ruzich.  More software projects have gone awry for lack calendar time than all other reasons combined.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
Advanced S/w Eng - s/w productivity issues 1 Software Productivity Issues Why do software projects fail? Advanced Software Engineering COM360 University.
Chapter Three The Surgical Team. The Problem Large Group – 10:1 productivity and 5:1 program speed and space management. – Negative aspect Sheer number.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Chapter Eighteen Proposition of the Mythical Man Month: True or False?
The Tar Pit The Mythical Man-Month Frederick P. Brooks, JR. Chapter 1.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CSE-332 Software Design Methods The Mythical Man-Month 박성우 POSTECH October 20, 2015.
Aristocracy, Democracy and System Design. Conceptual Integrity Sacrificing some ideas to lead to a common goal Software design tends to lead to conceptual.
1 FPB 11/24/13 Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill
The Surgical Team Jacob Harper. The Problem Good Programmer vs Poor Programmer  10 times more productive 200 man project  25 manager, 175 programmers.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
 System Requirement Specification and System Planning.
Why is software engineering worth studying?
Software Engineering--Introduction
Informatics 43 – May 10, 2016.
The Effects on Development
© Ian Davis 2017 Spring (c) Ian Davis.
Informatics 43 Discussion 13 May, 2016
Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill ONR_Updated.
Chapter 3 – Agile Software Development
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
CSE 403 Scheduling These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They.
MOWLES Team Update Omar AbuRealh (SE), Systems Engineering, Reporting and Presenting Robert Collier (OR), Customer Liaison and Team Lead Joseph Pack (SE),
Presentation transcript:

Robert Lockyer

Summary The Tar Pit The Mythical Man Month The Surgical Team Aristocracy, Democracy and System Design Passing the word The Whole and the parts The Tar Pit - Why Systems programming is so difficult, why it’s so fun The Mythical Man Month -Why men and months are not interchangeable units The Surgical Team - Suggestions on how to organize software teams Aristocracy, Democracy and System Design - How to maintain coherence of a system Passing the word – Team communication The Whole and the Parts – Debugging philosophies

The Tar Pit Large systems programming is a tar pit Most emerge with running systems Few meet goals, schedules and budgets Small groups seem much more efficient They only build Programs, not Programming Systems Products

A A Programming Program System 3X 3X A A Programming Programming Product A Programming Systems Product Programming System Interfaces, System Integration Programming Product Generalization, Testing, Documentation, Maintenance Programming systems project takes nine times as long as a program

The Mythical Man-Month Cost varies as a function of the number of men and months, progress does not. Men and months are not interchangeable in software development. Men and months are interchangeable only when a task can be partitioned among many workers with no communication among them. This is true of reaping wheat or picking cotton; it’s not even approximately true of systems programming. The bearing of a child takes nine months no matter how many women are assigned.

perfectly partitionable task Months Men

unpartitionable task Months Men

partitionable task requiring communication Months Men

task with complex interrelationships Months Men Brooks’s Law: Adding manpower to a late software project makes it later

Schedule Rule of thumb As a discipline we lack estimating data 1/3 for design 1/6 for coding 1/4 for component testing 1/4 for system testing As a discipline we lack estimating data

The Surgical Team There are major productivity variations between good programmers and poor ones (on the order of 10x) We want to build a system using as few minds as possible, to avoid unnecessary communication and maintain structural coherence. The problem is that large projects require many hands. The solution may lie in how we organize people Key is to reduce needed communication

Mills’s Proposal The Surgeon The Copilot The Administrator Chief programmer The Copilot Alter ego of surgeon, can do any job but less experienced Surgeon gets final say on all decisions The Administrator Surgeon is boss, but shouldn’t be involved in the bureaucratic details

Mills’s Proposal The Program Clerk (automate?) The Editor Keeper of program input/output data The Editor Surgeon writes docs, editor criticizes, reworks, etc Two Secretaries Admin and Editor need one each

Mills’s Proposal The Tool Smith The Tester The Language Lawyer Builds custom tools and processes for the surgeon The Tester Surgeons adversary, builds tests based on specs and helps devise test data for debugging The Language Lawyer Delights in the obscurities of a programming language One can serve two or three surgeons

Aristocracy, Democracy, and System Design Problem: How do we maintain conceptual integrity of a project? Small architecture team alone should alone write all external specifications Architecture means: Complete and detailed specification of the user interface

Aristocracy, Democracy, and System Design The implementers raise three objections: The specs will be too rich in function, will not be practical The architects will get all the creative fun and shut out the inventiveness of the implementers The many implementers will have to sit idly by while specifications are written Conceptual Integrity Small architecture team should alone write all external specifications The implementers raise three objections: The specs will be too rich in function, will not be practical This requires a feedback loop between architects and implementers. Architect gets estimates from the implementers as he designs the system, adjusts accordingly. The architects will get all the creative fun and shut out the inventiveness of the implementers. Discipline is good for art, The external provision of architecture enhances, not cramps, the creative style of the implementing group. The many implementers will have to sit idly by while specifications are written Not true, can generally proceed in parallel, architects will need to consult implementers for estimates

Passing the word Architecture specs must not only describe what the user can see, must refrain from describing what the user does not see. Must define what is not prescribed as carefully as what is. “Never go to sea with two chronometers, take one or three” Always have one definition as standard. All others are subservient.

Passing the word Changes to the manual should be made clear to developers implementing that functionality. Highlight in logbook/wiki whatever system in use Implementers must be able to easily contact architect for clarification. These conversations must be made available to anyone concerned.

The Whole and the Parts Build plenty of scaffolding It’s not unreasonable for there to be half as much code in scaffolding as there is in product Add one component at a time Laziness temps us to violate it, requires extensive scaffolding, maybe there are no bugs… There ARE bugs, so it’s worth building the scaffolding.

Review The Tar Pit The Mythical Man Month The Surgical Team Aristocracy, Democracy and System Design Passing the word The Whole and the Parts

References The Mythical Man-Month: Essays on Software Engineering, Frederick P. Brooks, Jr. (University of North Carolina at Chapel Hill) 1986 Wikipedia: IBM System/360 http://en.wikipedia.org/wiki/IBM_System/360

Questions?