The BEST agile process

1,825 views

Published on

How do you pick the best agile process for your team/organization? Is it XP? Scrum? Kanban? or something more traditional like TSP? This presentation will tell you which is the best process.

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

  • Be the first to like this

No Downloads
Views
Total views
1,825
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Imagine your order being taken by a snooty waiter at a five star restaurant and then he turns around and yells the order back to the kitchen like he was working at a diner.Both are good practices in their context but wrong outside of it. All too often we mis-apply
  • In it’s simplest form agile is:1) Do something; 2) Inspect; and 3) Adapt.It’s essentially about feedback loops. But isn’t all process about feedback loops? Continuous improvement (ISO-9000, TQM), Spiral/RUP, DMAIC/6Sigma, etc.AGILE IS A CHANGE IN EMPHASIS IN THOSE FEEDBACK LOOPS. Generally away from the process and toward the product.Mark Kennaley does a great job of explaining this in his book, “SDLC 3.0: Beyond a Tacit Understanding of Agile”
  • If you think of ALM work as having 3 key feedback loops: Process, Product, and Plan, traditional methods emphasize the process and some emphasize the plan. Agile clearly emphasizes feedback on the design of the product.
  • Sounds simple when put this way but that’s not very actionable so folks have packaged it into more palatable forms. That’s where we get the various flavors of agile.
  • I AM NOT A RELIGIOUS ZEALOT!I don’t believe that agile is a life-changing development. I believe that the learning under the agile umbrella is evolutionary from previous improvements. In a lot of ways they build on the same principles as before and they came to popularity largely in reaction to the over zealotry of previous methods like RUP, CMMI and yes, TSP.
  • So, I’m hear to give you a general framework for helping make process decisions. These three “agile” processes (Scrum, XP, and Kanban) are quintessential examples for the three (four) primary dimensions of this framework.We already talked about how agile shifts the emphasis of the 3 primary feedback loops (process, product, and plan, with product being now dominant over the prior king, process). But there are two other dimensions in this process consideration framework. (1) Coordination costs, and (2) Evolution costs(1) Coordination costs. What did Brooks say would happen, if a project is late and you add more people to it?(2) Cost of evolution of both the code/product AND the process, that’s why this is really 4 dimensions. I don’t have time to talk much about product, other than to say that design patterns are key here, so we’ll focus on the other three for today.
  • Read “A Cook’s Tour” today. It’s a short article.Read “Implementation Patterns” on your next plane ride. Another time, read Spinellis’ “Code Reading” (longer but covers more ground).Walk though as many of the exercises in Test-Driven Development by Example as you can in an hour. You’ll get the gist of it. Think “wax-on, wax-off” while you are doing it.Read the wikipedia page for XP and skim/skip/ignore the project management parts if you are going to do Scrum anyway.
  • 9 of the 13 practices target coordinationSystem metaphor is a naming concept for the system. Naming is covered in Simple Design. And you need refactoring to do simple design so I’m going to focus on Simple Design for the short time we have here.
  • What do you think makes up simple design?
  • 3 Roles4 Ceremonies3 Artifacts
  • The Kanban board is the main visual representation of work. We may convert the Value Stream Map directly to a board, step by step, or we may choose to simplify by combining the representation of steps. Our objective is to come up with a balance of completeness and simplicity. For teams just starting out, it’s helpful to start with a view that favors simplicity.It’s here that the team will track its work. It’s also a powerful communication tool for stakeholders and other who benefit from understanding the work context.[1] Boards usually start with a “ready queue”. Work flows into the ready queue, and this is the commitment point. We want high confidence that, once something is in Ready, our PO or stakeholders won’t change their mind.[2] Work then flows across the board[3] and ends up in “Done”
  • These are the key characteristics of an operating Kanban System. We’ll step through each one and in the process provide an end-to-end view of how Kanban works in practice. Even though there are many advance topics in Kanban that can continue to provide benefits, if you’re have these core components, you can be said to be “doing” Kanban.
  • Begin by understanding how work flows now:What things happenWhat kinds of things are worked onDifferent sizes of work itemsDemand patterns
  • The Kanban board is the main visual representation of work. We may convert the Value Stream Map directly to a board, step by step, or we may choose to simplify by combining the representation of steps. Our objective is to come up with a balance of completeness and simplicity. For teams just starting out, it’s helpful to start with a view that favors simplicity.It’s here that the team will track its work. It’s also a powerful communication tool for stakeholders and other who benefit from understanding the work context.[1] Boards usually start with a “ready queue”. Work flows into the ready queue, and this is the commitment point. We want high confidence that, once something is in Ready, our PO or stakeholders won’t change their mind.[2] Work then flows across the board[3] and ends up in “Done”
  • There are many ways to createKanban boards, both on paper or using a tool.Simple or complex state definitions“Swim Lanes” to delineate flow for different types of work items, such as MMFs or expedited I workColor coding and flaggingInterstitial queuesWait states
  • STOP STARTING AND START FINISHING.WIP limits are how we stay in control of our work. They are also the tool for improvementWe may limit in a variety of ways, by states and “swim lanes”This is core because we don’t want to overload resources. Work is not started unless there is available capacityWe adjust and improve WIP limits as we learn to understand our flow better
  • Policies (or “Agreements”) are what make the structures, visualization and WIP limits work. They’re determined by collaborative efforts between the team, leadership and the business. WIP limits themselves are a fundamental example of PoliciesSome of the things we think about when creating policies are:Agreement with upstream and downstream stakeholders about endpoints and expectationsInternal agreement on how things are selected, represented on the visualization, and completed. Visual signals then help team members know how to select and prioritize work.It’s common to enhance the visualization with indicators that communicate things to the team, such as blocks, classification of work items, ownership, etc.
  • The other principle metric is a Cumulative Flow Diagram, which shows us how much work is in progress over time. It’s broken out by the work states that item progress through. On a CFD, any vertical line tells us how much WIP there was on that dayIt shows how smoothly work is flowing, where the bottlenecks are, This is valuable input for helping decide where to focus our improvement efforts.
  • Cycle time is the core metric, which measures the amount to time it takes for an item to flow across the board, from when it enters the ready queue until it is fully done.
  • Emphasis on qualityDesign, design review/inspectionCode review/inspectionMetrics system (borrow partially: Quality index, etc.)Launch process – Psychology, Sociology, DilbertologyExplicit management of risk… and of course CMMi
  • While all three processes touch on all six content bubbles, XP is known for…It’s worth mentioning that XP is also very good and helping reduce the cost of evolution of the product (as opposed to the process)AND Scrum is strong at both coordination and improvement
  • The BEST agile process

    1. 1. The BEST agile process A discussion of XP, Scrum, Kanban… and TSPRALLY Twitter: @LMaccheroneS O F T W A R E
    2. 2. THERE ARE NO BEST PRACTICES… ONLY GOODPRACTICES……IN CONTEXT Twitter: @LMaccherone
    3. 3. LARRYMACCHERONETwitter: @LMaccherone
    4. 4. What is Agile? Measured SystemReference + error input System output Controller System - Measured output Sensor + VALUESRALLY Twitter: @LMaccheroneS O F T W A R E
    5. 5. TRADITIONAL/DM AGILE AIC FORMAL, AND CANPROCESS FEEDBACK LIGHT BUT OFTEN BE HEAVY WEIGHT EARLY, OFTEN, PRODUCT AND ? AND CLOSE TO DESIGN FEEDBACK THE CUSTOMER FREQUENT BUT PLAN FEEDBACK ? QUICK DOMINANT VALUE PLANNING/CONTROL COLLABORATIONRALLY Twitter: @LMaccheroneS O F T W A R E
    6. 6. Every great cause begins as a movement, becomes a business, and turns into a racket. ~Christopher McDougallRALLY Twitter: @LMaccheroneS O F T W A R E
    7. 7. AGILERALLY Twitter: @LMaccheroneS O F T W A R E
    8. 8. REDUCTION IN COORDINATION COSTS (XP) How is agile different? REDUCTION CHANGE IN IN FEEDBACK EVOLUTION EMPHASIS COSTS (SCRUM) (KANBAN)RALLY Twitter: @LMaccheroneS O F T W A R E
    9. 9. XP FOCUS:ENGINEERING PRACTICES Build the thing right! BEST AT:REDUCTION INCOORDINATION COSTS Twitter: @LMaccherone
    10. 10. RALLY Twitter: @LMaccheroneS O F T W A R E
    11. 11. RALLY Twitter: @LMaccheroneS O F T W A R E
    12. 12. XP: Reduces coordination costs• Continuous integration• Test driven development • Test-first design • Comprehensive test • Also: suites • Coding standard• Simple design • Whole team• Refactoring • Pair programming• System metaphor • Collective code ownershipRALLY Twitter: @LMaccheroneS O F T W A R E
    13. 13. Simple design1. All tests must pass 1. Passes tests (given TDD)2. No code is 2. Minimizes duplication duplicated 3. Maximizes clarity (great3. Code is self- identifiers) explanatory 4. Has fewer elements4. No superfluous parts exist RALLY Twitter: @LMaccherone S O F T W A R E
    14. 14. SCRUM FOCUS: PROJECTMANAGEMENT Build the right thing! BEST AT: CHANGE IN FEEDBACK EMPHASIS Twitter: @LMaccherone
    15. 15. PROJECTAGILE LIFECYCLE release 1 release n Target Project System Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration n Inception Discovery Set up Assessment Project Infrastructure Incremental delivery in time-boxed iterations RALLY Twitter: @LMaccherone S O F T W A R E
    16. 16. SCRUM MECHANICS Daily Meeting Iteration 2-4 WeeksProduct Iteration ProductBacklog Backlog IncrementRALLY Twitter: @LMaccheroneS O F T W A R E
    17. 17. DAILYSTAND-UPWhat did youwork on yesterday?What are youcommitting to today?Do you have anyimpediments? Twitter: @LMaccherone
    18. 18. POTENTIALLY SHIPPABLE PRODUCT Demo and get feedback EVERY SPRINT!!!RALLY Twitter: @LMaccheroneS O F T W A R E
    19. 19. Burndown chartRALLY Twitter: @LMaccheroneS O F T W A R E
    20. 20. SCRUM ROLESLarry@Maccherone.com
    21. 21. Scrum framework Vision Daily Scrum Meeting Burndown Chart DailyRelease Planning Planning Meeting • Revisit Release Plan Sprint Retrospective • Review Product Backlog 2-4 weeks • Create Sprint Backlog Sprint Review (Demo) • Commit to 2-4 weeks of work Product Backlog Product Increment Prioritized Features Sprint Backlog desired by Customer • Product Backlog Items assigned to Sprint • Emergent list of estimated tasks RALLY Twitter: @LMaccherone S O F T W A R E
    22. 22. KANBAN FOCUS:INCREMENTALIMPROVEMENT Go faster! Get better! BEST AT:REDUCTION IN EVOLUTION COSTS Twitter: @LMaccherone
    23. 23. A kanbanRALLY Twitter: @LMaccheroneS O F T W A R E
    24. 24. Characteristics of the Kanban Method 0. Start where you are 1. Visualize workflow 2. Limit WIP 3. Make management policies explicit 4. Manage flow 5. Improve collaboratively Adapted from Kanban by David J. AndersonRALLY Twitter: @LMaccheroneS O F T W A R E
    25. 25. 0. Start where you are
    26. 26. 1. Visualize workflowRALLY Twitter: @LMaccheroneS O F T W A R E
    27. 27. 1. Visualize workflowRALLYS O F T W A R E
    28. 28. 2. Limit work in process (WIP)RALLY Twitter: @LMaccheroneS O F T W A R E
    29. 29. 3. Make policies explicitRALLY Twitter: @LMaccheroneS O F T W A R E
    30. 30. 4. Manage flow: watch WIPRALLY Twitter: @LMaccheroneS O F T W A R E
    31. 31. 5. Improve collaboratively:measure outcomesRALLY Twitter: @LMaccheroneS O F T W A R E
    32. 32. 5. Improve collaboratively: use data for decision makingRALLY Twitter: @LMaccheroneS O F T W A R E
    33. 33. The Team Software Process (TSP) Where does it fit?RALLY Twitter: @LMaccheroneS O F T W A R E
    34. 34. XP Build the thing right Aspects of Coordination agile Product costs Build theevolution also Improve right(TSP, design, thing design patterns) How is agile different? Feedback Evolution Kanban emphasis costs Scrum RALLY Twitter: @LMaccherone S O F T W A R E
    35. 35. I recommend 1. Adopt XP engineering practices. • Add peer review. • Add design patterns and possibly more design/design review. 2. If you are doing product design and new to agile, adopt Scrum. 3. If you are doing IT work, or have a mature agile culture, or can’t accept all of Scrum’s changes, adopt Kanban. 4. If you need CMMi, adopt TSP. 5. If safety is critical, consider Crystal. 6. Buy Rally Software. RALLY Twitter: @LMaccheroneS O F T W A R E
    36. 36. LARRYMACCHERONETwitter: @LMaccherone
    37. 37. Credits • Kanban content. Rick Simmons.(rsimmons@rallydev.com) • Scrum content. Various at Rally Software. • XP content. Mostly from Kent Beck. • Simple design. Alistair McKinnell, Declan Whelan.RALLYS O F T W A R E

    ×