340 likes | 531 Views
Agile Development: How it Works Damon Poole. Damon Poole. Founder/CTO of AccuRev, the leader in Agile SCM. Focused on methodology for 17 years Designer/architect of award-winning software Creator of Hyper Agile methodology Most recent product, AccuWorkflow, developed using Hyper Agile
E N D
Damon Poole • Founder/CTO of AccuRev, the leader in Agile SCM. • Focused on methodology for 17 years • Designer/architect of award-winning software • Creator of Hyper Agile methodology • Most recent product, AccuWorkflow, developed using Hyper Agile • Author of various articles on Agile development
Problems with Traditional Development • Poor usability • Slow to respond to customer/market demand • Extremely difficult to accurately predict • Questionable quality • Lots of inefficiencies from rework and cancelled or shelved work • Hard to see the root cause of problems • “This time we’ll do it right!” • Burnout, job dissatisfaction
Problems with Agile Development • Exact benefits are often poorly articulated • The exact relationships between specific practices and specific benefits are poorly articulated • The perception that: • it scales poorly/it is only for small teams • you need to use 3x5 cards, collocation, and pair programming • it requires generalists • it requires a team of all senior engineers • Confusion about what exactly to do (“Agile isn’t a methodology, it is a set of principles”)
Requirements for Mainstream Agile • Clear benefits • Uses existing team members • Independent of application domain • Can be adopted piecemeal • Straightforward implementation • Scaleable • Appropriate for distributed development • How and why it works is obvious to everyone involved
Primary vs Secondary Benefits People Higher Quality Agile Faster ROI More Flexibility Secondary Benefits Other People Traditional Same as last release Other
Primary vs Secondary Benefits People Higher Quality Short Iterations TDD Faster ROI 3x5 Cards More Flexibility Refactoring Continuous Int Secondary Benefits Other People Long Iterations Same as last release Other
Primary vs Secondary Benefits People Higher Quality Short Iterations TDD Faster ROI 3x5 Cards More Flexibility Refactoring Continuous Int Secondary Benefits Other People Long Iterations Same as last release TDD Secondary Benefits Refactoring Continuous Int Other
Primary vs Secondary Benefits People Higher Quality Short Iterations TDD Faster ROI 3x5 Cards More Flexibility Refactoring Continuous Int Secondary Benefits Other People Higher Quality Short Iterations TDD Faster ROI More Flexibility Refactoring Continuous Int Secondary Benefits Other
More ROI… Faster Features by ROI Traditional $$ plan Agile $ $$ $$$
Rescheduling Effort Traditional Testing bottleneck Deliver to customer prepare code write tests test debug final qualification testing Agile (optional) (optional)
Complexity n=4 O(n2) ~16 potential entanglements Traditional Agile
One Piece Flow Potential work items Existing Incoming Business value and ROI calculator Requirements Design Write all tests Code Unit Test Demo Integrate System Test Deliverable
Better Framework Traditional Agile • problems (waste) are immediately apparent • the success/failure of corrective actions are immediately apparent • good behavior is encouraged and bad behavior is discouraged • existing management skills are much better leveraged
Recommended Enabling Practices • Chunking/Multiple Parallel Iterations • Development Hierarchy • Quality quotient • Test Driven Development • Continuous Integration • Refactoring • Component based development
Other Common Agile Practices • Stand up meetings • Pair programming • Co-location • Self-managing teams • Customer on-site • Shared code ownership • Stacking teams with senior developers • 3x5 cards (!?)
Coding Bucket Sizes: Before coding 1 day 2 days 1 week 2 weeks 1 month > 1 month
Coding Bucket Sizes: After 1 day 2 days 1 week 2 weeks 1 month > 1 month
Parallel Iterations Exceptions Majority of work 1 2 3 4 Months
Development Hierarchy Stability/Maturity Devs Teams • Other potential elements • Major features • Smoke test passed • Needs tests • Continuous Integration passed • Code review • Demo • Ready for QA Integration QA Always shippable
One Piece Flow Devs Teams Integration QA Always shippable
Resources • http://damonpoole.blogspot.com • http://agilealliance.com • Agile Software Development with Scrum, Ken Schwaber & Mike Beedle • Extreme Programming Explained - 2nd Edition, Kent Beck • Lean Software Development, Mary Poppendieck and Tom Poppendieck • “How Agile Works”, Free 1-hour on-site seminar, Damon Poole
Agile POC Program • Try Agile in your organization for 6 months • You supply the people and the project • AccuRev supplies: • Complete Agile tool stack with installation and training • Agile coach
Contact info Damon Poole AccuRev damon@accurev.com http://damonpoole.blogspot.com
AccuRev’s Support for Agile • Development hierarchy • Private branches • Parallel iterations • Drag and drop issues anywhere in hierarchy • Drag and drop process changes • Leading edge refactoring support • Performance via WAN removes integration delays • Integration with Cruise Control, Anthill, etc. • Integrated with the 8 leading issue tracking systems and also built-in issue tracking
AccuRev: Best-of-Breed Agile Dev Tool • Fastest growing SCM company in the world • Only SCM product to win 2 Jolt Product Excellence awards • Committed to Agile Development “As a result of merger and acquisition activity, a move toward more Agile processes and offshore development, AccuRev was the optimal solution to manage this increasingly parallel development model efficiently.” Rick Hoff, CTO, Tyler Technologies