CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

Slides:



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

Robert Lockyer.
Propositions of The Mythical Man-Month: True or False? Are The Topics Proposed in 1975 Still Valid?
Prescriptive Process models
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS487 Software Engineering Omar Aldawud
Software Process Models
THE TAR PIT BY FRANKLYN OMORUAN. What Is Tar Pit ? It describes software development as similar to a prehistoric tar pit, where great and powerful beasts.
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.
Informatics 43 – April 21, Things to know Midterm on Thursday – Closed book, closed notes, bring pen/pencil – Questions available on web site (updated)
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.
The Mythical Man-Month by Fred Brooks (I) Published 1975, Republished 1995 Experience managing the development of OS/360 in Central Argument –Large.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Chapter : Software Process
CPTE 209 Software Engineering Summary and Review.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
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.
6-January-2003cse Introduction © 2003 University of Washington1 Introduction CSE 403, Winter 2003 Software Engineering
Aristocracy, Democracy, and System Design Otherwise known as.. Another presentation from Caladain.
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
The Mythical Man-Month the MYTH behind the REAL
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.
AGENDA Introduction to Virtual Mechanic Demo Architectural diagram and summary QA steps and user acceptance testing Bugs in the software Feedback from.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Engineering Management Lecture 1 The Software Process.
CSE 308 Software Engineering Software Engineering Strategies.
1 Software Process and Project Metrics. 2 Normalization for Metrics.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
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.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
©Ian Sommerville 2000 Slide 1 Project management l Organising, planning and scheduling software projects l Objectives To introduce software project management.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
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.
CSC 354 – System Development Life Cycles & Processes, Spring 2015 March 2015 Dr. Dale Parson.
Software Engineering REQUIREMENT ENGINEERING. Software Engineering Phases.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
Chapter Eighteen Proposition of the Mythical Man Month: True or False?
The Tar Pit The Mythical Man-Month Frederick P. Brooks, JR. Chapter 1.
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.
1 FPB 11/24/13 Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill
CompSci Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Project Management A Practical Approach Sridhar Pandurangiah Director - Engineering Sridhar Pandurangiah Director - Engineering.
Methodologies and Algorithms
Why is software engineering worth studying?
Lecture 3 Prescriptive Process Models
Software Process Models
Software life cycle models
CSC 354 – System Development Life Cycles & Processes, Fall 2013
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Agile Development – a new way of software development?
Presentation transcript:

CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System Design, The Second-System Effect

1. The Tar Pit The Programming Systems Product (p. 5) Program -> Programming System >= 3x cost Interfaces, system integration Interfaces for plug-ins on extensible systems Extension language integration for interpreted systems Program -> Programming Product 3x cost Generalization, testing, documentation, maintenance -> Programming Systems Product >= 9x cost

The Joys of the Craft As the child delights in the mud pie, so the adult enjoys building things, especially things of her / his own design. There is the pleasure of making things that are useful to other people. Fashioning complex puzzle-like objects of interlocking moving parts and watching them work. The joy of always learning. The delight of working in such a tractable (malleable) medium.

The Woes of the Craft One must perform perfectly. Other people set the objectives and furnish the information. Quality may be constrained by the need to use other people’s code libraries. Finding nitty little bugs is grunt work. The fix & re-test cycle can drag on and on. Many systems start to become obsolete upon (or before) completion.

2. The Mythical Man-Month Techniques of estimating poorly developed. Estimating confuses effort with progress. Poor managers promise the customers unrealistic delivery dates / feature sets (mine). Gutless estimating Schedule progress is poorly monitored. Natural response is to add staff. Like dowsing a fire with gasoline.

The Mythical Man-Month (ctd.) Optimism Creativity: Idea, Implementation, Interaction The Man-Month Cost varies with staff count X time. Progress does not. Communication costs: Training & Intercommunication Systems Test Sequential constraints on component debugging & system test Brooks: 1/3 planning, 1/6 coding, ¼ component & early system test, ¼ system test of all components in hand

Regenerative Schedule Disaster What to do when project slippage begins? Assume that the task must be done on time. Only the first part was underestimated. Add some staff. (no) Assume that the task must be done on time. The entire project was underestimated. Add even more staff. (no) Reschedule “Take no small slips.” Trim the task Delivering some useful capabilities on time may be useful.

Brook’s Law Adding manpower to a late software project makes it later.

3. The Surgical Team It’s all about Conceptual Integrity. Integrated architecture from one or a few minds. 10:1 programmer skill differential 5:1 program speed / size efficiency differential Small, sharp teams are too slow (serial) for big systems Use Mill’s Proposal with hierarchical teams. Teams: spring2013questions.pdf spring2013questions.pdf

4. Aristocracy, Democracy & System Design Conceptual integrity is the most important consideration in system design. 1. How is it achieved? 2. Does it imply an elite and a horde of implementers? 3. How to keep the architects from drifting into the costly / impossible blue? 4. How do the details get communicated?

How is it achieved? The architect must have an underlying conceptual model for the system – That is the architecture! The architect must bring the architecture into the world. Formal or existing domain models help. The architect must have expertise in realization of architecture, i.e., implementation.

Does it imply an elite & a horde of implementers? Creative design is hierarchical. – Creative activities: architecture, implementation, realization Architect must listen to useful feedback. – Architect & team leaders must not “nickel & dime” team members to death. It creates friction. Implementers must honor the architecture. – Architects must be benevolent dictators.

How to keep an architect from drifting into the blue. Architects are seasoned designers & implementers. – They should continue keeping their hands dirty. Culture must reward technical expertise. – Use a dual career ladder to avoid diverting all expertise into management. Architect’s pay is tied to realistic architecture. Architect’s pay is tied to successful architecture.

How do details get communicated? Hierarchy – Hierarchical teams with well-aligned leaders Simple, direct writing & documentation – Illustrate well Cordial interpersonal relations – Again, don’t “nickel & dime.” Productive meetings – Don’t schedule meetings for meetings’ sake. – Many long meetings decrease signal : noise ratio.

5. The Second System Effect There is a tendency to try to jam everything that didn’t make it into the first system into the second system. Use self-discipline. Use approaches that worked in the first. Newer methodologies are incremental & even continual. Build something that runs and that you can test every day.

Our course teams? Dr. Parson is the System Architect. Individual team leaders are responsible for translating architectural intent to team actions. – I will join any team that starts spinning its wheels. We are modeling a startup in the sense that our customers are planned, not current. – I have experience with musical games-in-planetarium. We will employ aspects of newer methodologies as the semester progresses. – We will also use tools to help communication, documentation.