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.
4. What is Agile?
Measured System
Reference + error input System output
Controller System
-
Measured output
Sensor
+
VALUES
RALLY Twitter: @LMaccherone
S O F T W A R E
5. TRADITIONAL/DM
AGILE
AIC
FORMAL, AND CAN
PROCESS 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 COLLABORATION
RALLY Twitter: @LMaccherone
S O F T W A R E
6. Every great cause begins
as a movement, becomes
a business, and turns into a
racket.
~Christopher McDougall
RALLY Twitter: @LMaccherone
S O F T W A R E
7. AGILE
RALLY Twitter: @LMaccherone
S O F T W A R E
8. REDUCTION IN
COORDINATION
COSTS
(XP)
How is agile
different?
REDUCTION
CHANGE IN
IN
FEEDBACK
EVOLUTION
EMPHASIS
COSTS
(SCRUM)
(KANBAN)
RALLY Twitter: @LMaccherone
S O F T W A R E
9. XP
FOCUS:
ENGINEERING
PRACTICES Build the
thing
right!
BEST AT:
REDUCTION IN
COORDINATION
COSTS
Twitter: @LMaccherone
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 ownership
RALLY Twitter: @LMaccherone
S O F T W A R E
13. Simple design
1. All tests must pass 1. Passes tests (given TDD)
2. No code is 2. Minimizes duplication
duplicated
3. Maximizes clarity (great
3. Code is self- identifiers)
explanatory
4. Has fewer elements
4. No superfluous parts
exist
RALLY Twitter: @LMaccherone
S O F T W A R E
14. SCRUM
FOCUS:
PROJECT
MANAGEMENT Build the
right
thing!
BEST AT:
CHANGE IN
FEEDBACK
EMPHASIS
Twitter: @LMaccherone
15. PROJECT
AGILE
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. SCRUM
MECHANICS Daily
Meeting
Iteration
2-4
Weeks
Product Iteration
Product
Backlog Backlog
Increment
RALLY Twitter: @LMaccherone
S O F T W A R E
17. DAILY
STAND-UP
What did you
work on yesterday?
What are you
committing to today?
Do you have any
impediments?
Twitter: @LMaccherone
18. POTENTIALLY
SHIPPABLE PRODUCT
Demo and get feedback EVERY SPRINT!!!
RALLY Twitter: @LMaccherone
S O F T W A R E
21. Scrum framework
Vision
Daily Scrum Meeting
Burndown
Chart
Daily
Release 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. KANBAN
FOCUS:
INCREMENTAL
IMPROVEMENT Go faster!
Get
better!
BEST AT:
REDUCTION IN
EVOLUTION
COSTS
Twitter: @LMaccherone
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. Anderson
RALLY Twitter: @LMaccherone
S O F T W A R E
33. The Team Software Process
(TSP)
Where does it fit?
RALLY Twitter: @LMaccherone
S O F T W A R E
34. XP Build the
thing
right
Aspects of
Coordination agile
Product costs Build the
evolution 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. 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: @LMaccherone
S O F T W A R E
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.
RALLY
S O F T W A R E
Editor's Notes
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