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

Prototyping and agile development

Prototyping and agile development

Robbie Clutton

June 27, 2013
Tweet

More Decks by Robbie Clutton

Other Decks in Programming

Transcript

  1. @robb1e • Request for tender announced • Cheapest bid usually

    wins • Pay company several $m for licenses • Then another few $m for configuration • By the time it’s up and running, it’s out of date Vendor driven development Thursday, June 27, 13
  2. @robb1e • Software replaces paper-based system • Aims to improve

    dispatch time • Keep track of where ambulance (units) are so closest can be sent to location • Big bang release 1992 London Ambulance Dispatch disaster http://en.wikipedia.org/wiki/London_Ambulance_Service#System_failures Thursday, June 27, 13
  3. @robb1e • Multiple units sent to the same address •

    No units sent to other addresses • Calls got lost • System became congested • Upto 30 avoidable deaths attributed to software issues 1992 London Ambulance Dispatch disaster http://en.wikipedia.org/wiki/London_Ambulance_Service#System_failures Thursday, June 27, 13
  4. Toyota Production System - 1948-1975 Agile manifesto - 2001 Lean

    Software Development - 2003 Lean startups - 2011 Thursday, June 27, 13
  5. @robb1e • Developed between 1948 and 1975 • Originally called

    “Just in time production” • Goals are all about eliminating waste • Principles are about continuous improvement, people and process Toyota Production System http://en.wikipedia.org/wiki/Toyota_Production_System Thursday, June 27, 13
  6. @robb1e Agile manifesto http://agilemanifesto.org/ 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. Thursday, June 27, 13
  7. @robb1e • Iteration planning • Daily stand-ups • Customer acceptance

    • Retrospectives Agile process Agile processes enable customer collaboration and empower the individual Thursday, June 27, 13
  8. @robb1e • Test driven development • Pair programming • Continuous

    integration • Automating everything • Continuous refactoring Agile engineering Agile engineering practices promote working software early and enables easier change Thursday, June 27, 13
  9. @robb1e Kellan Elliot McCrea, 2012 Change is what you should

    be optimizing for. You never know what's coming next. Thursday, June 27, 13
  10. @robb1e • Eliminate waste • Amplify learning • Decide as

    late as possible • Deliver as fast as possible • Empower the team • Build integrity in • See the whole Lean software development http://en.wikipedia.org/wiki/Lean_software_development Thursday, June 27, 13
  11. @robb1e Mary and Tom Poppendieck Think big, act small, fail

    fast, learn rapidly Thursday, June 27, 13
  12. @robb1e • Minimum viable product • Continuous deployment • Split

    testing • Actionable metrics • Pivot Lean startup http://en.wikipedia.org/wiki/Lean_Startup Thursday, June 27, 13
  13. @robb1e The goal of a lean startup is to move

    through the build-measure- learn feedback loop as quickly as possible Thursday, June 27, 13
  14. @robb1e Can you build a high fidelity prototype for a

    software application? Thursday, June 27, 13
  15. @robb1e • Dodgeball => Foursquare • MySpace => Facebook •

    Rocket Internet Ideas/others can be prototypes too http://en.wikipedia.org/wiki/Dodgeball_(service) http://www.rocket-internet.de/ http://www.businessweek.com/articles/2012-02-29/the-germany-website-copy-machine Thursday, June 27, 13
  16. @robb1e • Features that have hypotheses • Hypotheses that can

    be easily validated • Code that is always production ready • Code that is easy to change Goals Thursday, June 27, 13
  17. @robb1e In person user testing to discover why the drop

    off was occurring Thursday, June 27, 13
  18. @robb1e - Joel Spolsky, 2001 "If it's a core business

    function - do it yourself, no matter what." Thursday, June 27, 13
  19. @robb1e • filepicker.io / embed.ly • heroku.com • sendgrid.com /

    mailchimp.com • so many more... Tools Thursday, June 27, 13
  20. @robb1e Ron Jefferies, ~2005 Always implement things when you actually

    need them, never when you just foresee that you need them Thursday, June 27, 13
  21. @robb1e $50 a month is really expensive for this hosted

    service We can build it ourselves and get exactly the features we need Thursday, June 27, 13
  22. @robb1e Paul Hammond, 2012 Hosted services are usually cheaper and

    better than anything you will build. Use them. Thursday, June 27, 13
  23. @robb1e Mary and Tom Poppendieck Think big, act small, fail

    fast, learn rapidly Thursday, June 27, 13