Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Selecting a Development Process: Choosing Among...

Mike Cohn
June 19, 2012

Selecting a Development Process: Choosing Among the Leading Alternatives

With so many processes available it can be hard to tell what is right for you. Leading processes vary from the heavy weight to the extremely light weight. But, what do the processes entail once you get past the jargon? What are the benefits and drawbacks of each and which would be best for your project and corporate environment?

In the various sessions below, agile and Scrum trainer Mike Cohn provides valuable information on the Team Software Process, Scrum, Extreme Programming and the Open Unified Process. Particular attention will be paid to pointing out unique aspects of each process that will help you decide if it’s the one for you.

This session is equally suited for managers, programmers, testers and analysts who are interested in or contemplating the use of a well-known process. You will leave with solid knowledge of these processes and with practical advice on which ones may fit your organization.

Mike Cohn

June 19, 2012
Tweet

More Decks by Mike Cohn

Other Decks in Business

Transcript

  1. Founding member and director of Agile Alliance, Scrum Alliance, and

    Agile Project Leadership Network Founder of Mountain Goat Software Consultant, author, and speaker Mike Cohn - background © Mountain Goat Software, LLC 2
  2. © Mountain Goat Software, LLC Considerations Team Software Process Scrum

    Extreme Programming OpenUP/Basic Feature-Driven Development Today’s agenda 3
  3. © Mountain Goat Software, LLC Ceremony P The amount of

    formalism in a process P Documentation, method weight, reviews Few documents Few steps Many documents Formal steps 4
  4. © Mountain Goat Software, LLC Cycles P Number and length

    of iterations Few documents Few steps Many documents Formal steps Sequential Many short iterations (5 days) 5
  5. © Mountain Goat Software, LLC ,4G<BA4?/A<X87*EB68FF Placing the processes Few

    documents Few steps Many documents Formal steps Sequential Many short iterations (5 days) Extreme Programming Scrum Team Software Process OpenUP 6
  6. © Mountain Goat Software, LLC Considerations Team Software Process Scrum

    Extreme Programming OpenUP/Basic Feature-Driven Development Today’s agenda 7
  7. © Mountain Goat Software, LLC Team Software Process (TSP) P

    Created by Watts Humphrey P Of Software Engineering Institute and Capability Maturity Model (CMM) P Builds on his Personal Software Process P "<:;7<F6<C?<A8;<:;?L78XA87 P A “cyclic development strategy” P Another way of saying “iterative and incremental” 8
  8. © Mountain Goat Software, LLC Goals of the TSP 1.

    Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and performance 4. Provide precise measures 5. Use role and team evaluations 6. Require process discipline 7. Provide guidance on teamwork problems 9
  9. © Mountain Goat Software, LLC Team Software Process (TSP) Strategy

    1 Plan 1 Requirements 1 Design 1 Implementation 1 Test 1 Postmortem 1 Cycle 1 Launch Strategy 2 Plan 2 Requirements 2 Design 2 Implementation 2 Test 2 Postmortem 2 Cycle 2 Launch Strategy 3 Plan 3 Requirements 3 Design 3 Implementation 3 Test 3 Postmortem 3 Cycle 3 Launch 10
  10. © Mountain Goat Software, LLC Cyclic development P A testable

    version is produced at the end of each cycle P *HECBF8B9G8FG<A:<FGB4FF8FFG;8CEB7H6GABGXK it P Defects should be removed during the cycle 11
  11. © Mountain Goat Software, LLC Designed to solve team problems

    Tom DeMarco “The success or failure of a project is seldom due to G86;A<64?<FFH8F 3BH4?@BFGA8I8EXA7LBHEF8?94F><A: ‘has the state of the art advanced far enough so that this program can be written?’ Of course it has. If the project goes down the tubes, it will be non-technical, human interaction problems that do it in. The team will fail to bond, or the developers will fail to gain E4CCBEGJ<G;G;8HF8EFBEC8BC?8J<??X:;G interminably over meaningless methodological issues.” 12
  12. © Mountain Goat Software, LLC Teams, members, roles and goals

    P A team has one or more members P 46;@8@58EX??FBA8BE@BE8EB?8F P Goals are assigned throughout this hierarchy P Team, member, role Team leader Quality/process manager Development manager Planning manager Support manager 13
  13. © Mountain Goat Software, LLC Goals and goals and... Team

    goals PProduce a quality product PRun a productive and well-managed project PFinish on time Team member goals PBe a cooperative and effective team member PDo consistently disciplined personal work PPlan and track all your personal work PProduce quality products 14
  14. © Mountain Goat Software, LLC ...more goals Dev manager goals

    PProduce a superior product PFully use the team members’ skills and abilities Some of these goals point out some underlying beliefs of TSP, such as: P You can’t control what you can’t measure P Managers “use the team members’ skills” 15
  15. © Mountain Goat Software, LLC Scripts and forms P .-*HF8FF6E<CGFGB78XA8G;8FG8CFB95H<?7<A:

    a software system P 21 activity scripts P 10 role scripts P Often quite detailed P Scripts prescribe completing 21 supporting forms 16
  16. © Mountain Goat Software, LLC The inspection script Purpose To

    help engineers produce quality products Entry criteria a A completed and reviewed product with available materials Step Activities Description 1 Plan the inspection The developer PArranges with the quality/process manager or FB@8BG;8EDH4?<X87G84@@8@58EGB58G;8 moderator PHandles the mechanics of setting up and running… 2 Hold the inspection The moderator describes the inspection process The producer familiar the inspection team with the product. ... ... ... Exit c criteria #(-4A7&)!9BE@F6B@C?8G874A7X?87<AG;8R 17
  17. © Mountain Goat Software, LLC Choose TSP if... P …you

    have the discipline to follow all of its FC86<X6FG8CF P …are already using the complementary Personal Software Process (PSP) P …team members need this level of guidance P …you do not have emergent requirements 18
  18. © Mountain Goat Software, LLC Considerations Team Software Process Scrum

    Extreme Programming OpenUP/Basic Feature-Driven Development Today’s agenda 19
  19. © Mountain Goat Software, LLC Scrum characteristics P 30-day iterations

    called “sprints” P Self-organizing teams P (BFC86<X68A:<A88E<A:CE46G<68FCE8F6E<587 P But many Scrum teams are adopting much of XP P Uses generative rules to create an agile environment for delivering projects 20
  20. © Mountain Goat Software, LLC Scrum roles ! Not quite

    the project manager ! Removes impediments ! Enforces Scrum values ScrumMaster Scrum team ! 7–9 full-time individuals ! Self-organizing ! Ideally full-time on project Product owner ! Customer or user of the project ! Makes prioritization decisions 21
  21. © Mountain Goat Software, LLC Scrum Cancel Gift wrap Return

    Sprint 2-4 weeks Return Sprint goal Sprint backlog Potentially shippable product increment Product backlog Coupons Gift wrap Coupons Cancel 24 hours 22
  22. © Mountain Goat Software, LLC Scrum roles and responsibilities P

    8XA8FG;8984GHE8FB9G;8CEB7H6G786<78FBAE8?84F874G84A76BAG8AG P #FE8FCBAF<5?89BEG;8CEBXG45<?<GLB9G;8CEB7H6G,)# P Prioritizes features according to market value P Can change features and priority every sprint P Accepts or rejects work results Product Owner P Ensures that the team is fully functional and productive P Enables close cooperation across all roles and functions and removes barriers P Shields the team from external interferences P Ensures that the process is followed. Scrum Master P Cross-functional, seven plus/minus two members P Selects the sprint backlog P Has the right to do everything within the boundaries of the project guidelines to reach the sprint goal P Organizes itself and its work P Demos work results to the Product Owner Team 23
  23. © Mountain Goat Software, LLC Scrum meetings Sprint planning !

    Team selects product backlog items to complete during sprint ! .4F>F4E8<78AG<X874A78FG<@4G87 Daily scrum ! What did you do yesterday? ! What will you do today? ! What’s in your way? ! Team demonstrates working software built in the sprint Sprint review Sprint retrospective ! .84@E8Y86GFBAFCE<AG4A7?BB>F9BE ways to improve 24
  24. © Mountain Goat Software, LLC A sprint burndown chart 0

    200 400 600 800 1,000 4/29/02 5/6/02 5/13/02 5/20/02 5/24/02 26
  25. © Mountain Goat Software, LLC Choose Scrum if... P …requirements

    are changing or emergent P …you’re willing to let the team self-organize P …you need a management framework more than a set of engineering practices P …you want to better manage risk P …you need a proven, scalable agile process 27
  26. © Mountain Goat Software, LLC Considerations Team Software Process Scrum

    Extreme Programming OpenUP/Basic Feature-Driven Development Today’s agenda 28
  27. © Mountain Goat Software, LLC Extreme Programming P 77FFC86<X68A:<A88E<A:CE46G<68FGB-6EH@WF project

    management approach P A tough target to hit but highly productive if you do 29
  28. © Mountain Goat Software, LLC XP’s quality practices Metaphor Testing

    Simple design Refactoring Pair programming 31
  29. © Mountain Goat Software, LLC XP’s quality practices The Planning

    Game Sustainable pace Collective ownership Coding standards Continuous integration 32
  30. © Mountain Goat Software, LLC Choose Extreme Programming if... P

    RLBH;4I8?BBF8?L78XA87BEIB?4G<?8 requirements P …you have or can develop strong engineering skills and practices P …customers can be involved on a daily (hourly) basis P …it’s important you hit the bull’s eye right off and you think you can 33
  31. © Mountain Goat Software, LLC Considerations Team Software Process Scrum

    Extreme Programming OpenUP/Basic Feature-Driven Development Today’s agenda 34
  32. © Mountain Goat Software, LLC OpenUP/Basic P FH5F8GB9G;8)C8A/A<X87*EB68FF P Delivered

    through the Eclipse Process Framework P 8E<I879EB@G;84F<6/A<X87*EB68FF P #9G;8LWE8HA<X87J;L4E8G;8E8FB@4ALB9G;8@ P Targeted at teams of 3-6 people P Targeted at projects 3-6 months long 35
  33. © Mountain Goat Software, LLC Comparison with RUP OpenUP/Basic RUP

    Pages 190 ~2000 Roles 6 ~45 Tasks 23 ~150 Artifacts 17 ~80 Source: What is the Eclipse Process Framework, Per Kroll and Scott Ambler, IBM Rational Software Development Conference 2006. 36
  34. © Mountain Goat Software, LLC OpenUP roles P Analyst P

    Architect P Developer P Tester P Project manager 37
  35. © Mountain Goat Software, LLC Roles, tasks, and artifacts Plan

    the project Assess results Prioritize work Monitor and control project Initiate Iteration Plan Iteration Project manager Performs Project plan Status assessment Iteration plan Work items list Responsible for 38
  36. © Mountain Goat Software, LLC Open UP phases P Establish

    scope and produce business case P Mitigate business risks P Get buy-in and decision to undertake project Inception P Reduce major risks to enable cost and schedule estimates P Mitigate major technical risks P Implement a baseline architecture P Implement key capabilities Elaboration 39
  37. © Mountain Goat Software, LLC P Majority of implementation P

    Ends with deployment of a beta version Construction P Ensure software meets users’ needs P Prepare for release P Solicit user feedback and make minor adjustments Transition 40
  38. © Mountain Goat Software, LLC Iterate within each phase Inception

    Preliminary iteration(s) Elaboration Iteration #1 Iteration #2 Iteration #n Iteration #n+1 Construction Iteration #n+2 Transition Iteration #m Iteration #m 41
  39. © Mountain Goat Software, LLC Choose OpenUP/Basic if... P You

    like RUP but want something lighter P You want an open source version of RUP P You have a small project (3-6 people; 3-6 months) P You want a semi-agile process based on role, task and artifact guidance 42
  40. © Mountain Goat Software, LLC Considerations Team Software Process Scrum

    Extreme Programming OpenUP/Basic Feature-Driven Development Today’s agenda 43
  41. © Mountain Goat Software, LLC Feature-Driven Development P Originates in

    Java Modeling in Color with UML by Coad, Lefebvre and De Luca in 1999 P Jeff DeLuca is main advocate P A Practical Guide to Feature-Driven Development by Palmer and Felsing in 2002 44
  42. © Mountain Goat Software, LLC Features and feature sets P

    Features P Serve as primary unit of work P Similar to XP stories or Scrum backlog items P Small enough to do in two weeks P Feature Set P Collection of features P Assigned to a Chief Programmer and her team P Major Feature Set P A domain area, one or more Feature Sets 45
  43. © Mountain Goat Software, LLC Example features P A short

    description of an action of value to users of the system P Format <action> the <result> <by|for|of|to> a(n) <object> P Estimate the closing price of a stock P Calculate the total cost of an order P Change the password for a user P Retrieve the room number of a guest Examples 46
  44. © Mountain Goat Software, LLC Five processes Develop an overall

    model Build a features list Plan by feature Design by feature Build by feature Sequential Iterative 47
  45. © Mountain Goat Software, LLC Sample development plan Major feature

    set Feature set Feature Chief programmer Date Interfacing Reservations Make a reservation for a guest Chris December Interfacing Reservations Cancel a reservation for a guest Chris December Interfacing Reservations Update a reservation for a guest Chris January Reporting Future reservations View future reservations of competitors James December Reporting Rates View internet rates for a hotel Kristy February 48
  46. © Mountain Goat Software, LLC Eight best practices Feature teams

    Domain object modeling Regular progress Regular builds Individual class ownership BAX:  management Inspections Developing by feature P Need all eight to be doing FDD 49
  47. © Mountain Goat Software, LLC Tracking progress Reservations (3) 65%

    December Chris Chief programmer Feature set name Number of features in set Percentage complete Target completion month Work in progress Completed Attention Not started 50
  48. © Mountain Goat Software, LLC Choose FDD if... P …you

    are willing to trade some agility for a J8??78XA87J4LB9F64?<A: P …your organization has solid UML skills P …most requirements are knowable in advance or somewhat stable P …you do not view self-organizing teams as a critical success factor 51
  49. © Mountain Goat Software, LLC Where to go next Team

    Software Process Scrum Extreme Programming ! Introduction to the Team Software Process by Watts S. Humphrey ! www.mountaingoatsoftware.com/scrum ! Agile Software Development with Scrum by Ken Schwaber and Mike Beedle ! Agile Project Management with Scrum by Ken Schwaber ! www.xprogramming.com ! c2.com/cgi/wiki? ExtremeProgrammingRoadmap ! [email protected] 52
  50. © Mountain Goat Software, LLC Where to go next OpenUP

    FDD Agile in General ! www.agilealliance.org ! www.mountaingoatsoftware.com ! www.featuredrivendevelopment.com ! www.eclipse.org/epf ! Agility and Discipline Made Easy by Per Kroll and Bruce MacIsaac 53
  51. © Mountain Goat Software, LLC Upcoming public classes Date What

    Where Oct 18-19 8EG<X87-6EH@*EB7H6G)JA8E Denver Oct 23-24 Oct 25 8EG<X87-6EH@'4FG8E Agile Estimating and Planning San Diego Jan 15-16 Jan 17 8EG<X87-6EH@'4FG8E Agile Estimating and Planning Atlanta Feb 26-27 Feb 28 8EG<X87-6EH@'4FG8E Agile Estimating and Planning Santa Clara Other classes s in London and Oslo if you’re up for a longer trip. More info at www.mountaingoatsoftware.com 54
  52. © Mountain Goat Software, LLC [email protected] www.mountaingoatsoftware.com   

    B9X68 (303) 810-2190 (mobile) Mike Cohn contact info 55