Agile i ett större sammanhang Thomas Nilsson CTO, Agile Developer, Coach & Mentor
Continuous Integration XP Simple Design Pair Programming Refactoring Agile i ett större sammanhang DSDM Test Driven Development Iteration Planning Om Agile Product Owner Scrum Sprint
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions Working software Customer collaboration Responding to change over processes and tools comprehensive documentation contract negotiation following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
Daily Scrum Sprint Planning Team Product Owner (Scrum Master) Sprint Demo & Review
Drivers for Development Cost Wrong Functionality Including bugs, misfeatures and misunderstandings Large part of developed software is never used! Length of Feedback Loops How long does it take before we know if we are on the wrong track or did the wrong thing? Fail early! Batches & Queues Are everywhere in a prescriptive, document driven organisation Example: Requirements Specs Repetitive Manual Labor Activities that can be automated should be automated Requiring them to be performed more often drives automation Example: Tests Technical Debt Hard to understand, change, improve, maintain Neglecting to care for your product(s)
Continuously increasing the amount and frequency of successfully delivered business value.
"Continuously increasing the amount and frequency of successfully delivered business value." Continuously increasing... Continuous Improvement Processes and WoW need to change all the time Quality and Measurements cannot be based on processes... the amount and frequency... Increasing flow and finding more valuable things Cycle Times are important, think shortest possible lead time... successfully delivered... Only actually delivered matters!... business value. Not software, not applications, but Solutions to some stakeholders actual Need!
Agile i ett större sammanhang Krav & Analys
Agile Implementation & Analysis Analysis Implementation Testing
Agile Implementation & Analysis Continuous cooperation with all stakeholders Product Owners Just-Enough & Just-in-Time Analysis per Requirements in form Testing
The Product Owner Responsibility Customer Business Analysts SPM CEO Test Coordinator Project Management Systems TSPOC OPM Sub-PM Architect IP-writer IP-writer 1 2 3... 11 12 13... 21 22 23...
Agile i ett större sammanhang Planering
Järntriangeln - valet mellan tid, funktion och kostnad Less More Scope (Functionality, Features) Resources (People, Cost, Budget) More Less Q Shorter Schedule (Time) Longer
Järntriangeln - valet mellan tid, funktion och kostnad Less More Scope (Functionality, Features) Resources (People, Cost, Budget) More Less Q När är det klart? Vad är klart när? Shorter Schedule (Time) Longer
Keeping Your Commitments Time is the most important commitment The others are functionality and cost Tools to keep them are Transparency Communication Prioritization Empirical Data Given any backlog you can prioritize & estimate and Done Done, you can guarantee delivery on time Of the most prioritized stories With the existing team(s) Using empirical data to support your commitment Early feedback
Preliminary time plan for the SHM features according to Scenario 1 Team plan: Å O11 Sep-09 Oct-09 Nov-09 Dec-09 Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 SMX MSC 14.1 extended IS 2.0 support O11 features Job Handling BSS licensing O11 features Minor features(crs, Q-rank etc.) MSC 14.1 extended IS 2.0 support O11 Minor features(crs, Q-rank etc.) Ericsson Internal 20 2009-09-18
Prioritera funktionalitet - inte aktiviteter eller projekt! Hög prioritet Väldefinierade } Varje iteration implementerar de högst prioriterade Kan tas bort när som helst Nya kan prioriteras in när som helst Omprioritering kan ske när som helst Luddigare Låg prioritet
Burndown 1.. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 285 of 300 value points delivered on time!! 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 16. 17. 18. 19. 20. 21. 22. 23. 24. Minimal Marketable Feature Set 17. 18. 19. 20. 21. 22. 23. 24. 18. 19. 20. 21. 22. 23. 24. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 20. 21. 21. 22. 22. 23. 23. 24. 24. 1 2 3 4 5 6 7 8
Agile i ett större sammanhang Testning
Agile Implementation, Analys & Testning Testing
Agile Implementation, Analys & Testning Agile Agila Testers testare -tester Automation Tidig och kontinuerlig integration och test av hela produkten
En agil(are) test strategi - New, Risk, Round Robin Håll ordning på alla dina testfall Inklusive legacy och regression Kör alla automatiska! För varje story/iteration, dela in de manuella i: 1. Ny funktionalitet 2. Möjligen påverkad funktionalitet 3. Resten Gör alla i 1) & 2) Välj X% av 3) Rotera varje gång
Agile i ett större sammanhang Mätningar
Efficiency: Measure Flow and Lead Time of Value Value Points Product Management Delivery, Deployment, FOA r t
Teamet har kontroll på sin egen förbättring TDD Non-TDD
Agile i ett större sammanhang Att förändra
Förändring = Lärande Ri Ha Shu
Förändringsstrukturen Practices som mål för beslut, planering av aktiviteter, uppföljning Men vi kan bara förändra personer, lite i taget, med kunskaper och insikter, på plats Coaching Scrum Mastrar / XP Coaches, i teamet Agile Champions, intresserat nätverk Agile Coach, erfarenheter, prioritering, planering, värderingar, resonemang Extern hjälp Coach Erfarna utvecklare
Agile i ett större sammanhang Du kan alltid bli lite agilare! Thomas Nilsson thomas.nilsson@responsive.se http://www.responsive.se/thomas