the mythical man-month due today: code & coding standards due next class: quiz #3; see webpage

Click here to load reader

Download The Mythical Man-Month Due Today: Code & Coding Standards Due  Next Class: Quiz #3; see webpage

Post on 12-Feb-2016

29 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

  • The Mythical Man-MonthDue Today: Code & Coding StandardsDue Next Class: Quiz #3; see webpage

    Mythical Man-Month IBio BreakMythical Man-Month IIQuestions / Review for Quiz #3

  • Chapter 1: Key PointsProgram = Useful to the programmer in the garageProgramming Product = Useful to anyoneProgramming System Component = Part of a collection of programs that work together doing a bigger jobProgramming Systems Product = The collection of components; what you are after, 9X as expensive as creating a program

    ProgramProgramming Systems ProductProgramming ProductProgramming System3x3x

  • Chapter 2: Key PointsAll programmers are optimistsMen 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: Brooks rule of thumb.

    Bottom line: Non-linear trade-off between persons and person-months

  • Perfectly Partitionable

    Chart3

    100

    50

    33.3333333333

    25

    20

    16.6666666667

    14.2857142857

    12.5

    11.1111111111

    10

    Months

    people

    months

    Perfectly Partitionable Task

    Sheet1

    PeopleMonthsMonths

    1100100

    250100

    333.3333333333100

    425100

    520100

    616.6666666667100

    714.2857142857100

    812.5100

    911.1111111111100

    1010100

    Sheet1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    Months

    people

    months

    Perfectly Partitionable Task

    Sheet2

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    Months

    people

    months

    Unpartitionable Task

    Sheet3

  • Not Partitionable

    Chart2

    100

    100

    100

    100

    100

    100

    100

    100

    100

    100

    Months

    people

    months

    Unpartitionable Task

    Sheet1

    PeopleMonthsMonths

    1100100

    250100

    333.3333333333100

    425100

    520100

    616.6666666667100

    714.2857142857100

    812.5100

    911.1111111111100

    1010100

    Sheet1

    Months

    people

    months

    Perfectly Partitionable Task

    Sheet2

    Months

    people

    months

    Unpartitionable Task

    Sheet3

  • Add Communication Costs

    Chart4

    100

    60

    44

    35

    30

    26

    24

    22

    21

    20

    people

    Months

    Partitionable w/ communication

    Sheet1

    PeopleMonthsMonths

    1100100100

    25010060

    333.333333333310044

    42510035

    52010030

    616.666666666710026

    714.285714285710024

    812.510022

    911.111111111110021

    101010020

    Sheet1

    Months

    people

    months

    Perfectly Partitionable Task

    Sheet2

    Months

    people

    months

    Unpartitionable Task

    Sheet3

    people

    Months

    Partitionable w/ communication

  • Complex Inter-relationships

    Chart5

    100

    60

    63.3333333333

    85

    120

    166.6666666667

    224.2857142857

    292.5

    371.1111111111

    people

    months

    Complex Inter-relationships

    Sheet1

    PeopleMonthsMonths

    1100100100100

    25010060600

    333.33333333331004463.333333333310

    425100358530

    5201003012060

    616.666666666710026166.6666666667100

    714.285714285710024224.2857142857150

    812.510022292.5210

    911.111111111110021371.1111111111280

    101010020360

    Sheet1

    Months

    people

    months

    Perfectly Partitionable Task

    Sheet2

    Months

    people

    months

    Unpartitionable Task

    Sheet3

    people

    Months

    Partitionable w/ communication

    people

    months

    Complex Inter-relationships

  • Chapter 3: Key PointsSackman, Erikson & Grant Study ratio between best and worst productivity performance of programmers: 10:1Surgical team approach vs. hog butcheringTeam Members:Chief ProgrammerCo-pilotAdministratorEditorSecretariesProgram ClerkToolsmithTesterLanguage lawyer

  • Chapter 4: Key PointsFew architects, many implementersWhat problems can this cause?

  • Chapter 5: Key PointsRole of architect vs. implementerWhat issues can arise?The second system effect (similar to goldplating)How to avoid the second system effect?

  • Chapter 6: Key PointsHow to communicate with teams of hundreds?

    Weekly day conference of architects + key implementersSame group each weekSmart people, all hands-onProblem-solving focusWritten proposals for decisionsClear decision-making authorityLog of all questions & answers (website)Early test involvement

    Problems with this?What about information hiding?

  • Chapter 7: Key PointsLesson of the tower of BabelCommunication means:InformalMeetingsWorkbook / NotebookWebsite today how would you do it?Elements of success:MissionProducerTechnical director/ architectScheduleDivision of laborInterface definitions among the parts

  • Chapter 8: Key PointsTry to get real data on projects comparable in size and complexity to yours for purposes of estimating.

  • Chapter 9: Key PointsUnderstand your constraints. In the early days this was memory space memory rented for $12/K/monthRepresentational v. computational equivalence (Herb Simon)What are the constraints today?

  • Chapter 10: Key PointsDocumentation for a computer productObjectivesSpecificationsScheduleBudgetOrganization chartSpace allocationsMarket forecasts Do you agree or disagree with this list? What would you add? Take away?

  • Chapter 11: Key PointsPlan 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 (Campbells data)

    The fixing the fixes problem, or program maintenance is an entropy-increasing process

  • Chapter 12: Key PointsVehicle (aka development) machines and target machinesHow would you plan machine usage?Importance of high-level languages examples today?What other tools are important?

  • Chapter 13: Key PointsPrevent bugs in designTest the specification how?Stepwise refinementUse debugged components why?Change controlAdd one component at a time why?

  • Chapter 14: Key PointsHow 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 sharpnessStudies show:Estimates before work begins do not changeDuring work, over-estimates steadily come downDuring 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 actionStatus pictures for educationHelps to label meetings, status or action meetings

  • Chapter 15: Key PointsDocumentation for the user what would you change/add on this list?PurposeEnvironmentDomain & RangeFunctionsI/O formatsOperating instructionsOptionsRunning timeAccuracy and checkingDocumentation for the maintainerSelf-documenting code

  • Chapter 16: Key PointsNo silver bullet. Advice:Buy rather than buildUse rapid prototyping to help establish requirementsGrow software organically (aka incremental development)Find the good conceptual designersSome tough issues:ComplexityConformityChangeabilityInvisibility

  • Chapter 17: Key PointsOO might be the brass bullet.But lots of up-front costsRe-use more common at large companies than small why?

  • Chapter 18This is Freds summary of the book. You should read this one chapter if nothing else!

  • Quiz #3 ReviewTopicsALL of the Material on Quiz #1ALL of the Material on Quiz #2Why Configuration Mgmt is neededKey Configuration Mgmt conceptsKey OO conceptsAdvantages / disadvantages of OOCleanroom v. Waterfall processKey cleanroom conceptsAdvantages / disadvantages of cleanroomHow to do a DemoTesting PrinciplesWhite Box v Black Box testingElements of a Test PlanRegression testing: what? why? how?Stress testing: what? why? how?SQA techniques review homework topics!Mythical-Man Month for sure!Extra credit? 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.

View more