Selecting a Development Process

1,203 views
1,048 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,203
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Selecting a Development Process

  1. 1. Mike CohnMountain Goat Softwaremike@mountaingoatsoftware.comSelecting a DevelopmentProcess:Choosing Among theLeading Alternatives1
  2. 2. Founding member anddirector of Agile Alliance,Scrum Alliance, and AgileProject LeadershipNetworkFounder of MountainGoat SoftwareConsultant, author,and speakerMike Cohn - background© Mountain Goat Software, LLC2
  3. 3. © Mountain Goat Software, LLCConsiderationsTeam Software ProcessScrumExtreme ProgrammingOpenUP/BasicFeature-Driven DevelopmentToday’s agenda3
  4. 4. © Mountain Goat Software, LLCCeremonyThe amount of formalism in a processDocumentation, method weight, reviewsFew documentsFew stepsMany documentsFormal steps4
  5. 5. © Mountain Goat Software, LLCCyclesNumber andlength ofiterationsFew documentsFew stepsMany documentsFormal stepsSequentialMany short iterations(5 days)5
  6. 6. © Mountain Goat Software, LLCPlacing the processesFew documentsFew stepsMany documentsFormal stepsSequentialMany short iterations(5 days)ExtremeProgrammingScrumTeam SoftwareProcessOpenUP6
  7. 7. © Mountain Goat Software, LLCConsiderationsTeam Software ProcessScrumExtreme ProgrammingOpenUP/BasicFeature-Driven DevelopmentToday’s agenda7
  8. 8. © Mountain Goat Software, LLCTeam Software Process (TSP)Created by Watts HumphreyOf Software Engineering Institute and CapabilityMaturity Model (CMM)Builds on his Personal Software ProcessA “cyclic development strategy”Another way of saying “iterative and incremental”8
  9. 9. © Mountain Goat Software, LLCGoals of the TSP1. Build on the Personal Software Process2. Develop products in cycles3. Establish standard measures for quality andperformance4. Provide precise measures5. Use role and team evaluations6. Require process discipline7. Provide guidance on teamwork problems9
  10. 10. © Mountain Goat Software, LLCTeam Software Process (TSP)Strategy 1Plan 1Requirements 1Design 1Implementation 1Test 1Postmortem 1Cycle 1 LaunchStrategy 2Plan 2Requirements 2Design 2Implementation 2Test 2Postmortem 2Cycle 2 LaunchStrategy 3Plan 3Requirements 3Design 3Implementation 3Test 3Postmortem 3Cycle 3 Launch10
  11. 11. © Mountain Goat Software, LLCCyclic developmentA testable version is produced at the end ofeach cycleitDefects should be removed during the cycle11
  12. 12. © Mountain Goat Software, LLCDesigned to solve team problemsTom DeMarco“The success or failure of a project is seldom due to‘has the state of the art advanced far enough so thatthis program can be written?’ Of course it has. If theproject goes down the tubes, it will be non-technical,human interaction problems that do it in.The teamwill fail to bond, or the developers will fail to gaininterminably over meaningless methodologicalissues.”12
  13. 13. © Mountain Goat Software, LLCTeams, members, roles and goalsA team has one or more membersGoals are assigned throughout this hierarchyTeam, member, roleTeam leader Quality/process managerDevelopment managerPlanning managerSupport manager13
  14. 14. © Mountain Goat Software, LLCGoals and goals and...Team goalsProduce a quality productRun a productive and well-managed projectFinish on timeTeam member goalsBe a cooperative and effective team memberDo consistently disciplined personal workPlan and track all your personal workProduce quality products14
  15. 15. © Mountain Goat Software, LLC...more goalsDev manager goalsProduce a superior productFully use the team members’ skills and abilitiesSome of these goals point out some underlyingbeliefs of TSP, such as:You can’t control what you can’t measureManagers “use the team members’ skills”15
  16. 16. © Mountain Goat Software, LLCScripts and formsa software system21 activity scripts10 role scriptsOften quite detailedScripts prescribe completing 21 supportingforms16
  17. 17. © Mountain Goat Software, LLCThe inspection scriptPurpose To help engineers produce quality productsEntry criteriaaA completed and reviewed product with availablematerialsStep Activities Description1Plan theinspectionThe developerArranges with the quality/process manager ormoderatorHandles the mechanics of setting up and running…2Hold theinspectionThe moderator describes the inspection processThe producer familiar the inspection team with theproduct.... ... ...Exit ccriteria17
  18. 18. © Mountain Goat Software, LLCChoose TSP if...…you have the discipline to follow all of its…are already using the complementaryPersonal Software Process (PSP)…team members need this level of guidance…you do not have emergent requirements18
  19. 19. © Mountain Goat Software, LLCConsiderationsTeam Software ProcessScrumExtreme ProgrammingOpenUP/BasicFeature-Driven DevelopmentToday’s agenda19
  20. 20. © Mountain Goat Software, LLCScrum characteristics30-day iterations called “sprints”Self-organizing teamsBut many Scrum teams are adopting much of XPUses generative rules to create an agileenvironment for delivering projects20
  21. 21. © Mountain Goat Software, LLCScrum rolesNot quite the project managerRemoves impedimentsEnforces Scrum valuesScrumMasterScrum team7–9 full-time individualsSelf-organizingIdeally full-time on projectProduct ownerCustomer or user of the projectMakes prioritization decisions21
  22. 22. © Mountain Goat Software, LLCScrumCancelGift wrapReturnSprint2-4 weeksReturnSprint goalSprintbacklogPotentially shippableproduct incrementProductbacklogCouponsGift wrapCouponsCancel24 hours22
  23. 23. © Mountain Goat Software, LLCScrum roles and responsibilitiesPrioritizes features according to market valueCan change features and priority every sprintAccepts or rejects work resultsProductOwnerEnsures that the team is fully functional and productiveEnables close cooperation across all roles and functions and removesbarriersShields the team from external interferencesEnsures that the process is followed.ScrumMasterCross-functional, seven plus/minus two membersSelects the sprint backlogHas the right to do everything within the boundaries of the projectguidelines to reach the sprint goalOrganizes itself and its workDemos work results to the Product OwnerTeam23
  24. 24. © Mountain Goat Software, LLCScrum meetingsSprintplanningTeam selects product backlog items tocomplete during sprintDaily scrumWhat did you do yesterday?What will you do today?What’s in your way?Team demonstrates working softwarebuilt in the sprintSprint reviewSprintretrospective ways to improve24
  25. 25. © Mountain Goat Software, LLCScrum of scrums of scrums25
  26. 26. © Mountain Goat Software, LLCA sprint burndown chart02004006008001,0004/29/025/6/025/13/025/20/025/24/0226
  27. 27. © Mountain Goat Software, LLCChoose Scrum if...…requirements are changing or emergent…you’re willing to let the team self-organize…you need a management framework morethan a set of engineering practices…you want to better manage risk…you need a proven, scalable agile process27
  28. 28. © Mountain Goat Software, LLCConsiderationsTeam Software ProcessScrumExtreme ProgrammingOpenUP/BasicFeature-Driven DevelopmentToday’s agenda28
  29. 29. © Mountain Goat Software, LLCExtreme Programmingproject management approachA tough target to hit but highly productive ifyou do29
  30. 30. © Mountain Goat Software, LLCXP’s customer practicesOn-site customerSmall releases30
  31. 31. © Mountain Goat Software, LLCXP’s quality practicesMetaphorTestingSimple designRefactoringPair programming31
  32. 32. © Mountain Goat Software, LLCXP’s quality practicesThe Planning GameSustainable paceCollective ownershipCoding standardsContinuous integration32
  33. 33. © Mountain Goat Software, LLCChoose Extreme Programming if...requirements…you have or can develop strong engineeringskills and practices…customers can be involved on a daily(hourly) basis…it’s important you hit the bull’s eye right offand you think you can33
  34. 34. © Mountain Goat Software, LLCConsiderationsTeam Software ProcessScrumExtreme ProgrammingOpenUP/BasicFeature-Driven DevelopmentToday’s agenda34
  35. 35. © Mountain Goat Software, LLCOpenUP/BasicDelivered through the Eclipse ProcessFrameworkTargeted at teams of 3-6 peopleTargeted at projects 3-6 months long35
  36. 36. © Mountain Goat Software, LLCComparison with RUPOpenUP/Basic RUPPages 190 ~2000Roles 6 ~45Tasks 23 ~150Artifacts 17 ~80Source: What is the Eclipse Process Framework,Per Kroll and Scott Ambler,IBM Rational Software Development Conference 2006.36
  37. 37. © Mountain Goat Software, LLCOpenUP rolesAnalystArchitectDeveloperTesterProject manager37
  38. 38. © Mountain Goat Software, LLCRoles, tasks, and artifactsPlan theprojectAssessresultsPrioritizeworkMonitorandcontrolprojectInitiateIterationPlanIterationProjectmanagerPerformsProjectplanStatusassessmentIterationplanWorkitems listResponsible for38
  39. 39. © Mountain Goat Software, LLCOpen UP phasesEstablish scope and produce business caseMitigate business risksGet buy-in and decision to undertake projectInceptionReduce major risks to enable cost and scheduleestimatesMitigate major technical risksImplement a baseline architectureImplement key capabilitiesElaboration39
  40. 40. © Mountain Goat Software, LLCMajority of implementationEnds with deployment of a beta versionConstructionEnsure software meets users’ needsPrepare for releaseSolicit user feedback and make minor adjustmentsTransition40
  41. 41. © Mountain Goat Software, LLCIterate within each phaseInceptionPreliminaryiteration(s)ElaborationIteration#1Iteration#2Iteration#nIteration#n+1ConstructionIteration#n+2TransitionIteration#mIteration#m41
  42. 42. © Mountain Goat Software, LLCChoose OpenUP/Basic if...You like RUP but want something lighterYou want an open source version of RUPYou have a small project (3-6 people; 3-6months)You want a semi-agile process based on role,task and artifact guidance42
  43. 43. © Mountain Goat Software, LLCConsiderationsTeam Software ProcessScrumExtreme ProgrammingOpenUP/BasicFeature-Driven DevelopmentToday’s agenda43
  44. 44. © Mountain Goat Software, LLCFeature-Driven DevelopmentOriginates in Java Modeling in Color with UMLby Coad, Lefebvre and De Luca in 1999Jeff DeLuca is main advocateA Practical Guide to Feature-Driven Developmentby Palmer and Felsing in 200244
  45. 45. © Mountain Goat Software, LLCFeatures and feature setsFeaturesServe as primary unit of workSimilar to XP stories or Scrum backlog itemsSmall enough to do in two weeksFeature SetCollection of featuresAssigned to a Chief Programmer and her teamMajor Feature SetA domain area, one or more Feature Sets45
  46. 46. © Mountain Goat Software, LLCExample featuresA short description of an action of value tousers of the systemFormat<action> the <result> <by|for|of|to> a(n)<object>Estimate the closing price of a stockCalculate the total cost of an orderChange the password for a userRetrieve the room number of a guestExamples46
  47. 47. © Mountain Goat Software, LLCFive processesDevelopan overallmodelBuild afeatureslistPlan byfeatureDesign byfeatureBuild byfeatureSequential Iterative47
  48. 48. © Mountain Goat Software, LLCSample development planMajor featureset Feature set Feature Chiefprogrammer DateInterfacing ReservationsMake areservation for aguestChris DecemberInterfacing ReservationsCancel areservation fora guestChris DecemberInterfacing ReservationsUpdate areservation fora guestChris JanuaryReporting FuturereservationsView futurereservations ofcompetitorsJames DecemberReporting Rates View internetrates for a hotel Kristy February48
  49. 49. © Mountain Goat Software, LLCEight best practicesFeatureteamsDomainobjectmodelingRegularprogressRegularbuildsIndividualclassownershipmanagementInspectionsDevelopingby featureNeed all eight to be doing FDD49
  50. 50. © Mountain Goat Software, LLCTracking progressReservations(3)65%DecemberChrisChiefprogrammerFeature set nameNumber offeatures in setPercentage completeTarget completionmonthWork in progressCompletedAttentionNot started50
  51. 51. © Mountain Goat Software, LLCChoose FDD if...…you are willing to trade some agility for a…your organization has solid UML skills…most requirements are knowable in advanceor somewhat stable…you do not view self-organizing teams as acritical success factor51
  52. 52. © Mountain Goat Software, LLCWhere to go nextTeam SoftwareProcessScrumExtremeProgrammingIntroduction to theTeam Software Processby Watts S. Humphreywww.mountaingoatsoftware.com/scrumAgile Software Development with Scrum byKen Schwaber and Mike BeedleAgile Project Management with Scrum byKen Schwaberwww.xprogramming.comc2.com/cgi/wiki?ExtremeProgrammingRoadmapextremeprogramming@yahoogroups.com52
  53. 53. © Mountain Goat Software, LLCWhere to go nextOpenUPFDDAgile in Generalwww.agilealliance.orgwww.mountaingoatsoftware.comwww.featuredrivendevelopment.comwww.eclipse.org/epfAgility and Discipline Made Easy byPer Kroll and Bruce MacIsaac53
  54. 54. © Mountain Goat Software, LLCUpcoming public classesDate What WhereOct 18-19 DenverOct 23-24Oct 25 Agile Estimating and PlanningSan DiegoJan 15-16Jan 17 Agile Estimating and PlanningAtlantaFeb 26-27Feb 28 Agile Estimating and PlanningSantaClaraOther classess in London and Oslo if you’re up for a longer trip.More info atwww.mountaingoatsoftware.com54
  55. 55. © Mountain Goat Software, LLCmike@mountaingoatsoftware.comwww.mountaingoatsoftware.com(303) 810-2190 (mobile)Mike Cohn contact info55

×