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 / Review for Quiz #3 Chapter 1: Key Points • Program = Useful to the programmer in the garage • Programming Product = Useful to anyone • Programming System Component = Part of a collection of programs that work together doing a bigger job • Programming Systems Product = The collection of components; what you are after, 9X as expensive as creating a “program” Program 3x Programming System 3x Programming Product Programming Systems Product Chapter 2: Key Points • “All programmers are optimists” • • • • • “Men and months are interchangeable commodities only when a task can be partitioned among many workers with no communication between them.” “The bearing of a child takes nine months, no matter how many women are assigned.” Costs: training. Intercommunication. “Take no small slips” (in schedule) Brooks Law: “Adding manpower to a late software project makes it later.” – Abdel-Hamid & Madnick 1991: “Adding more people to a late project always makes it more costly, but does not always cause it to be completed later.” Perhaps: Brook’s “rule of thumb.” • Bottom line: Non-linear trade-off between persons and person-months Perfectly Partitionable Perfectly Partitionable Task 120 100 months 80 60 40 20 0 1 2 3 4 5 6 people 7 8 9 10 Not Partitionable Unpartitionable Task 120 100 months 80 60 40 20 0 1 2 3 4 5 6 people 7 8 9 10 Add Communication Costs Partitionable w/ communication 120 100 Months 80 60 40 20 0 1 2 3 4 5 6 people 7 8 9 10 Complex Inter-relationships Complex Inter-relationships 400 350 300 months 250 200 150 100 50 0 1 2 3 4 5 people 6 7 8 9 Chapter 3: Key Points • Sackman, Erikson & Grant Study ratio between best and worst productivity performance of programmers: 10:1 • Surgical team approach vs. hog butchering • Team Members: – – – – – – – – – Chief Programmer Co-pilot Administrator Editor Secretaries Program Clerk Toolsmith Tester Language lawyer Chapter 4: Key Points • Few architects, many implementers • What problems can this cause? Chapter 5: Key Points • • • • Role of architect vs. implementer What issues can arise? The second system effect (similar to goldplating) How to avoid the second system effect? Chapter 6: Key Points • How to communicate with teams of hundreds? • Weekly ½ day conference of architects + key implementers – – – – – Same group each week Smart people, all hands-on Problem-solving focus Written proposals for decisions Clear decision-making authority • • Log of all questions & answers (website) Early test involvement • Problems with this? – What about information hiding? Chapter 7: Key Points • Lesson of the tower of Babel • Communication means: – – – – Informal Meetings Workbook / Notebook Website today… how would you do it? • Elements of success: – – – – – – Mission Producer Technical director/ architect Schedule Division of labor Interface definitions among the parts Chapter 8: Key Points • Try to get real data on projects comparable in size and complexity to yours for purposes of estimating. Chapter 9: Key Points • Understand your constraints. In the early days this was memory space… memory rented for $12/K/month • Representational v. computational equivalence (Herb Simon) • What are the constraints today? Chapter 10: Key Points • Documentation for a “computer product” – – – – – – – Objectives Specifications Schedule Budget Organization chart Space allocations Market forecasts • Do you agree or disagree with this list? What would you add? Take away? Chapter 11: Key Points • “Plan to throw one away; you will, anyhow.” – Do you agree? What about incremental model? • On requirement changes: “a threshold has to be established, and it must get higher and higher as development proceeds.” • What prevents a design from getting documented? • The semi-U shaped bug curve (Campbell’s data) • The fixing the fixes problem, or “program maintenance is an entropyincreasing process” Chapter 12: Key Points • • • • Vehicle (aka development) machines and target machines How would you plan machine usage? Importance of high-level languages… examples today? What other tools are important? Chapter 13: Key Points • • • • • • Prevent bugs in design Test the specification … how? Stepwise refinement Use debugged components … why? Change control Add one component at a time… why? Chapter 14: Key Points • “How does a project get to be a year late? …. One day at a time.” • What makes a good milestone? – Concrete, specific, measurable, “defined with knife-edged sharpness” • Studies show: – Estimates before work begins do not change – During work, over-estimates steadily come down – During work, under-estimates do not change until 3 weeks before completion. • How do you tell which slips matter most? (Pert charts, critical path) • What Bosses need: – Exceptions to plan that require action – Status pictures for education – Helps to label meetings, “status” or “action” meetings Chapter 15: Key Points • Documentation for the user – what would you change/add on this list? – – – – – – – – – Purpose Environment Domain & Range Functions I/O formats Operating instructions Options Running time Accuracy and checking • Documentation for the maintainer • Self-documenting code Chapter 16: Key Points • “No silver bullet.” Advice: – – – – Buy rather than build Use rapid prototyping to help establish requirements Grow software organically (aka incremental development) Find the good conceptual designers • Some tough issues: – – – – Complexity Conformity Changeability Invisibility Chapter 17: Key Points • OO might be the “brass bullet.” – But lots of up-front costs – Re-use more common at large companies than small … why? Chapter 18 • This is Fred’s summary of the book. You should read this one chapter if nothing else! Quiz #3 Review • Covers all the lectures and all the reading to date. • Approximate weighting: • 50% old stuff • 50% new since quiz #2 • Format: • Multiple Choice • Short Answer • Essay • If your average on the 1st 3 quizzes is greater than 80%, the final is optional. The final is equivalent to a 4th quiz in weight. Topics • • • • • • • • • • • • • • • • • • ALL of the Material on Quiz #1 ALL of the Material on Quiz #2 Why Configuration Mgmt is needed Key Configuration Mgmt concepts Key OO concepts Advantages / disadvantages of OO Cleanroom v. Waterfall process Key cleanroom concepts Advantages / disadvantages of cleanroom How to do a Demo Testing Principles White Box v Black Box testing Elements of a Test Plan Regression testing: what? why? how? Stress testing: what? why? how? SQA techniques … review homework topics! Mythical-Man Month… for sure! Extra credit?