550 likes | 977 Vues
Agile in a Nutshell. Damon Poole. Chief Agilist, Eliassen Group’s Agile Practice Coaching: Transformation and Tune-ups Training 20 years of process change: small co-located teams to multi-hundred team global enterprises Founder and past CTO and CEO of AccuRev
E N D
Damon Poole • Chief Agilist, Eliassen Group’s Agile Practice • Coaching: Transformation and Tune-ups • Training • 20 years of process change: small co-located teams to multi-hundred team global enterprises • Founder and past CTO and CEO of AccuRev • Creator of multiple Jolt-award winning products • Past President of Agile New England • Author of “DIY Agile Kickstart” • Consulted with Ford IT, Orbitz, Fidelity, Capital One, ING Direct, and many others • Taught Agile techniques to thousands of people
What’s in a Feature? Show loan status.
Each Feature is Comprised of Many Aspects ✔ #define a b /* * This is great code. */ booldoStuff ( ) { index++; }
Traditional Development – Internal View Releng Project Mgmt Product Mgmt Architects Testers Dev Teams $ Customers / Market
Traditional Development – Customer View Releng Project Mgmt Product Mgmt Architects Done Testers Dev Teams $ Customers / Market
What Who? • Todo • this • that • more • other #define a b /* * This is great code. */ booldoStuff ( ) { index++; } Why? $
Additional Value Added • Todo • this • that • more • other #define a b /* * This is great code. */ booldoStuff ( ) { index++; } $ $ Customers / Market
Additional Value Added • Todo • this • that • more • other $ Customers / Market
Additional Value Added • Todo • this • that • more • other #define a b /* * This is great code. */ booldoStuff ( ) { index++; } $ $ $ Customers / Market
Additional Value Added • Todo • this • that • more • other $ What Who Why Customers / Market
Additional Value Added • Todo • this • that • more • other $ Customers / Market
Software Development Nirvana $ Customers / Market
The Agile Methodology A Step by Step Guide
Agile Manifesto – Values and Principles Done! “Working software is the primary measure of progress.” Kanban? Scrum? ? XP?
“Simplicity -- the art of maximizing the amount of work not done – is essential.” 10 Lanes: $110M $11M per lane 10 Lanes: $50M $5Mper lane Money for another investment: $60M
Agile Techniques Come From the Agile Community Agile Manifesto Agile Community Agile Toolkit Scrum Kanban XP Continuous Integration TDD Etc.
User Story Who Traveller wants tobook a trip so thatthey can go to their destination What Why
Backlog 5 5 2 2 1 3 2 2 2 Traveller wants to delete a booking Admin wants a report of site-wide activity Traveller wants to copy a booking Traveller wants to enter a booking Traveller wants to move a booking Traveller wants to edit a booking Traveller wants to link to on-line check-in Traveller wants to link to cancel a booking Traveller wants to see their upcoming trips Most Value Tom Tom Bob Bob Bob Bob Sue Product Least Value
Negotiation Tool 5 5 2 2 3 2 2 1 2 Traveller wants to link to cancel a booking Traveller wants to copy a booking Traveller wants to see their upcoming trips Traveller wants to edit a booking Admin wants a report of site-wide activity Traveller wants to move a booking Traveller wants to enter a booking Traveller wants to link to on-line check-in Traveller wants to delete a booking Tom Tom Bob Bob Bob Bob Sue Iteration 1 “Welcome changing requirements, even latein development. Agile processes harness change for the customer's competitive advantage.” Release Iteration 2 2 Traveller wants to e-mail an airline booking
Agile Development – Quick Overview Initial Backlog Paypass E-mail Texting Facebook Spending cushions Paypass Initial backlog for project to provide limited debit card to teens Facebook ANIMATED Switch to presentation mode for proper viewing Texting e-mail Spend Cushions 4 week iteration Person to person Person2person Done Higher ROI Faster Paypass Texting Facebook TEAM Higher Quality Options Visibility
Eliassen Group Agile Model USER STORIES ESCALATION TEAMS CONTINUOUS INTEGRATION AGILE OFFICE MANAGEMENT RELEASE TEAM LOB CUSTOMERS LOB LEADERS I1 I2 I3 EPICS ARCHITECTURE
Traditional Agile
Traditional Agile
Traditional Agile
Traditional Agile
Misaligned, Functional Goals FunctionalGoals ✔ ✔ ✔ ✔ ✔ ✔ Late, missing scope Not as relevant as hoped Project A Project B
One Solution: Organize around Business Value Delivery Line of Business A Line of Business B ✔ ✔
Cycle Time Integration and testing Preparation Development 1 2 3 4 5 6 7 8 9 10 11 12 13 14 months
Cycle Time Integration and testing Integration and testing Preparation Development Preparation Development 1 2 3 4 5 6 7 8 9 10 11 12 13 14 months
Cycle Time Integration and testing Preparation Development 6 1 3 5 7 2 4 months
Cycle Time Prep Prep Prep Prep Prep Prep Do Do Do Do Do Do Ship Ship Ship Ship Ship Ship 6 1 3 5 7 2 4 1 month iterations
Cycle Time Cycle Time “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.” Prep Do Ship 6 1 3 5 7 2 4 1 month iterations
A Typical Iteration 5 2 3 1 2 3 Admin wants a report of site-wide activity Traveller wants to see their upcoming trips Traveller wants to edit a booking Traveller wants to enter a booking Traveller wants to delete a booking Traveller wants to register with the system Tom Tom Bob Bob Sue Sue #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; }
“One Piece Flow” Done! Done! Done! #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } #define a b /* * This is great code. */ booldoStuff ( ) { index++; } Done!
Agile in Action at the Team Level Product Mgmt $ Customers / Market
Enterprise Agile USER STORIES ESCALATION TEAMS CONTINUOUS INTEGRATION AGILE OFFICE MANAGEMENT RELEASE TEAM LOB CUSTOMERS LOB LEADERS I1 I2 I3 EPICS ARCHITECTURE
Q&A damonpoole.blogspot.com