Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile: from Principles to Practice

Agile: from Principles to Practice

An overview of the 12 Agile Principles and a variety of practices that map to those principles.

Nayan Hajratwala

November 06, 2013
Tweet

More Decks by Nayan Hajratwala

Other Decks in Technology

Transcript

  1. “I believe in this concept, but the implementation described above

    is risky and invites failure.” STEP 5: INVOLVE THE CUSTOMER! For some reason what a software design is going to do is subject to wide interpretation even after previous agreement.
  2. Agile Manifesto 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 over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan That is, while there is value in the items on
 the right, we value the items on the left more.
  3. Kanban Method Principles • Start with what you do now

    • Agree to pursue incremental, evolutionary change • Respect the current process, roles, responsibilities and titles • Leadership at all levels
  4. Kanban Core Practices • Visualize • Limit WIP • Manage

    flow • Make policies explicit • Implement feedback loops • Improve collaboratively, evolve experimentally
  5. Agile Manifesto 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 over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan That is, while there is value in the items on
 the right, we value the items on the left more.
  6. Our highest priority is to satisfy the customer
 through early

    and continuous delivery
 of valuable software. 1
  7. Our highest priority is to satisfy the customer
 through early

    and continuous delivery
 of valuable software. 1
  8. Our highest priority is to satisfy the customer
 through early

    and continuous delivery
 of valuable software. 1 • Facebook - once / day
  9. Our highest priority is to satisfy the customer
 through early

    and continuous delivery
 of valuable software. 1 • Facebook - once / day • IMVU - 50 / day
  10. Our highest priority is to satisfy the customer
 through early

    and continuous delivery
 of valuable software. 1 • Facebook - once / day • IMVU - 50 / day • Github 100 / day
  11. Our highest priority is to satisfy the customer
 through early

    and continuous delivery
 of valuable software. 1 • Facebook - once / day • IMVU - 50 / day • Github 100 / day • Netflix - 100s / day
  12. Build Artifacts + Isolation Tests (xUnit) Automated Acceptance Tests! (Cucumber,

    Selenium) Source Control Build Environment! (Chef, Puppet)
  13. Build Artifacts + Isolation Tests (xUnit) Automated Acceptance Tests! (Cucumber,

    Selenium) Deploy A/B Source Control Build Environment! (Chef, Puppet)
  14. Build Artifacts + Isolation Tests (xUnit) Automated Acceptance Tests! (Cucumber,

    Selenium) Deploy A/B Smoke Test Source Control Build Environment! (Chef, Puppet)
  15. Build Artifacts + Isolation Tests (xUnit) Automated Acceptance Tests! (Cucumber,

    Selenium) Deploy A/B Smoke Test Source Control Production Build Environment! (Chef, Puppet)
  16. Welcome changing requirements, even late in 
 development. Agile processes

    harness change for 
 the customer's competitive advantage. 2
  17. 4 Rules of Simple Design 1. Runs all the Tests

    2. Contains No duplication (DRY) 3. Expresses all ideas you want to express 4. Minimize classes and methods.
  18. Cucumber - Gherkin Syntax Scenario: Creditor Agencies must have a

    unique AgencyID Given a creditor agency exists When I add another creditor agency with the same agency id Then there should only be one creditor agency
  19. Cucumber - Gherkin Syntax Scenario Outline: Determine Payee Count when

    an offset is taken ! Given a Payment Record containing a <payee> Payee TIN And a Payment Record containing a <secondary> Secondary TIN When an offset occurs Then the Payee Count should be <count> Examples: |payee |secondary|count| |valid | valid | 2 | |valid | blank | 1 | |valid | zeroes | 1 | |valid | invalid | 2 | |blank | valid | 1 | |zeroes | valid | 1 | |invalid| valid | 2 |
  20. Build projects around motivated individuals. 
 Give them the environment

    and support they need, 
 and trust them to get the job done. 5
  21. The most efficient and effective method of 
 conveying information

    to and within a development 
 team is face-to-face conversation. 6
  22. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 91 hrs
  23. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs
  24. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  25. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  26. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  27. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  28. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  29. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  30. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs
  31. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs 880 hrs
  32. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs 880 hrs 1068 hrs
  33. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs 880 hrs 1068 hrs 91 hours of value added time 1068 hrs of cycle time = 8.5% Process Efficiency
  34. Value Stream Mapping Approval Prioritization Build Security Review Deployment Customer

    Request Production 1 week 8 weeks 2 weeks 10 weeks 1 week 4 hrs 2 hrs 80 hrs 4 hrs 1 hr 1 week .5 week 2 weeks 1 week 1 day 91 hrs + 188 hrs 880 hrs What should have taken just over 2 weeks, takes 26! 1068 hrs 91 hours of value added time 1068 hrs of cycle time = 8.5% Process Efficiency
  35. Deliver working software frequently, from a 
 couple of weeks

    to a couple of months, with a 
 preference to the shorter timescale. 8
  36. Deliver working software frequently, from a 
 couple of weeks

    to a couple of months, with a 
 preference to the shorter timescale. 8 • Teams doing Scrum typically have Sprints of 2 weeks or less.
  37. Deliver working software frequently, from a 
 couple of weeks

    to a couple of months, with a 
 preference to the shorter timescale. 8 • Teams doing Scrum typically have Sprints of 2 weeks or less. • Frequently, teams are moving to Flow- based methods such as Kanban
  38. • Cycle Time = Time between any two points in

    a process. (i.e. 10 days) Cycle Time = WIP Throughput Little’s Law
  39. • Cycle Time = Time between any two points in

    a process. (i.e. 10 days) • Throughput = Number of work items completed in a specified period. (5 stories / week) Cycle Time = WIP Throughput Little’s Law
  40. • Cycle Time = Time between any two points in

    a process. (i.e. 10 days) • Throughput = Number of work items completed in a specified period. (5 stories / week) • Work in Process (WIP) = Number of work items currently underway. Cycle Time = WIP Throughput Little’s Law
  41. Agile processes promote sustainable development. 
 The sponsors, developers, and

    users should be able 
 to maintain a constant pace indefinitely. 9
  42. Time In Process 0 75 150 225 300 Utilization 10%

    20% 30% 40% 50% 60% 70% 80% 90% 100%
  43. Time In Process 0 75 150 225 300 Utilization 10%

    20% 30% 40% 50% 60% 70% 80% 90% 100% :-|
  44. Time In Process 0 75 150 225 300 Utilization 10%

    20% 30% 40% 50% 60% 70% 80% 90% 100% :-| :-)
  45. Time In Process 0 75 150 225 300 Utilization 10%

    20% 30% 40% 50% 60% 70% 80% 90% 100% :-| :-) :-D
  46. Time In Process 0 75 150 225 300 Utilization 10%

    20% 30% 40% 50% 60% 70% 80% 90% 100% :-| :-) :-D :-(
  47. The best architectures, requirements, and designs 
 emerge from self-organizing

    teams. • Ivory Tower Architecture no longer has a place. 11
  48. At regular intervals, the team reflects on how 
 to

    become more effective, then tunes and adjusts 
 its behavior accordingly. 12
  49. At regular intervals, the team reflects on how 
 to

    become more effective, then tunes and adjusts 
 its behavior accordingly. 12 Loved Learned Longed For
  50. Agile Manifesto 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 over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan That is, while there is value in the items on
 the right, we value the items on the left more.
  51. Image Credits • Waterfall - http://www.noupe.com/wp-content/uploads/2010/04/Waterfall2.jpg • Evolution - http://cyemae.files.wordpress.com/2010/01/evolution-of-man.png

    • Healthcare - http://healthcare.gov • Snowbird - http://freeskiing-world-tour-fwt.rmvn.stackablehost.com/wp-content/uploads/ 2011/12/trailmap_snowbird.jpg • Toyota Plant - http://www.thedetroitbureau.com/wp-content/uploads/2011/04/Toyota-Prius- Plant.jpg • Cargo Cult - http://stmatts5pm.files.wordpress.com/2010/07/cargo-cult.jpg • Traffic Jam - http://l.yimg.com/os/924/2012/12/04/paris-lyon-traffic-jam-1980-jpg_133914.jpg • Standup - http://coremediaminds.files.wordpress.com/2012/06/standup-modell1.jpg • Muppet Pairing - http://changearc.files.wordpress.com/2012/09/ muppetspairprogramming.jpg • Panda - http://diasjorge.github.io/pair-programming-slides/img/panda.jpg