Prototyping and agile development

Prototyping and agile development

1668868370ee5829339e06031ad0b145?s=128

Robbie Clutton

June 27, 2013
Tweet

Transcript

  1. @robb1e Robbie Clutton Prototyping & agile development Thursday, June 27,

    13
  2. @robb1e History lesson Thursday, June 27, 13

  3. @robb1e Before agile Thursday, June 27, 13

  4. Thursday, June 27, 13

  5. Thursday, June 27, 13

  6. $10bn Thursday, June 27, 13

  7. @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
  8. @robb1e Some marketing genius No one ever got fired for

    hiring IBM Thursday, June 27, 13
  9. @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
  10. @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
  11. @robb1e The long road to agile Thursday, June 27, 13

  12. Toyota Production System - 1948-1975 Agile manifesto - 2001 Lean

    Software Development - 2003 Lean startups - 2011 Thursday, June 27, 13
  13. @robb1e Toyota production system Thursday, June 27, 13

  14. @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
  15. @robb1e Agile manifesto Thursday, June 27, 13

  16. @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
  17. @robb1e http://www.agilemodeling.com/essays/costOfChange.htm Thursday, June 27, 13

  18. @robb1e Thursday, June 27, 13

  19. @robb1e • Iteration planning • Daily stand-ups • Customer acceptance

    • Retrospectives Agile process Agile processes enable customer collaboration and empower the individual Thursday, June 27, 13
  20. @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
  21. process practices #win Thursday, June 27, 13

  22. @robb1e Kellan Elliot McCrea, 2012 Change is what you should

    be optimizing for. You never know what's coming next. Thursday, June 27, 13
  23. @robb1e Lean software development Thursday, June 27, 13

  24. @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
  25. @robb1e Mary and Tom Poppendieck Think big, act small, fail

    fast, learn rapidly Thursday, June 27, 13
  26. @robb1e Lean startup Thursday, June 27, 13

  27. @robb1e • Minimum viable product • Continuous deployment • Split

    testing • Actionable metrics • Pivot Lean startup http://en.wikipedia.org/wiki/Lean_Startup Thursday, June 27, 13
  28. @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
  29. @robb1e Prototyping Thursday, June 27, 13

  30. http://en.wikipedia.org/wiki/Airbus_A350_XWB Thursday, June 27, 13

  31. http://www.bikeradar.com/news/article/specialized-unveils-in-house-wind-tunnel-37363/ Thursday, June 27, 13

  32. @robb1e Can you build a high fidelity prototype for a

    software application? Thursday, June 27, 13
  33. http://arielwaldman.com/projects/interaction-design/ Thursday, June 27, 13

  34. http://astridforscreen.wordpress.com/2010/09/05/paper-prototyping/ Thursday, June 27, 13

  35. Thursday, June 27, 13

  36. Thursday, June 27, 13

  37. @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
  38. @robb1e Beyond prototyping Thursday, June 27, 13

  39. @robb1e Most developers Prototypes tend to find a way into

    production Thursday, June 27, 13
  40. @robb1e Steel thread Thursday, June 27, 13

  41. @robb1e Kent Beck Make it work, make it right, make

    it fast Thursday, June 27, 13
  42. @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
  43. @robb1e Crazy Egg Story Thursday, June 27, 13

  44. @robb1e 10am deploy CrazyEgg Thursday, June 27, 13

  45. @robb1e 5pm review CrazyEgg Thursday, June 27, 13

  46. @robb1e Users’ clicking headers that are not links Thursday, June

    27, 13
  47. @robb1e You could feel the users frustration Thursday, June 27,

    13
  48. @robb1e Simple user testing can pay dividends Lesson Thursday, June

    27, 13
  49. @robb1e • CrazyEgg.com • UserTesting.com • SilverbackApp.com • LeanLaunchLab.com •

    Trello.com Tools Thursday, June 27, 13
  50. @robb1e Funnels, user testing, hypotheses and validations Story Thursday, June

    27, 13
  51. @robb1e Product with wizard like pages which pre-selected default services

    Thursday, June 27, 13
  52. @robb1e Changes to the basket updates price in real-time Thursday,

    June 27, 13
  53. @robb1e Funnel showed massive drop off at a certain step

    Thursday, June 27, 13
  54. @robb1e In person user testing to discover why the drop

    off was occurring Thursday, June 27, 13
  55. @robb1e Create hypothesis to stop users leaving at this junction

    Thursday, June 27, 13
  56. @robb1e Implement change: allow users to use default or create

    own Thursday, June 27, 13
  57. @robb1e Review funnel after deployment Thursday, June 27, 13

  58. @robb1e Learn what is blocking the users Lesson Thursday, June

    27, 13
  59. @robb1e • KissMetrics.com • MixPanel.com • StatsD (Etsy) • Cube

    (Square) Tools Thursday, June 27, 13
  60. @robb1e Always be validating Take away Thursday, June 27, 13

  61. @robb1e Was that really the best use of your time?

    Story Thursday, June 27, 13
  62. @robb1e During technical due diligence for an acquisition Thursday, June

    27, 13
  63. @robb1e The company had built their own message queue Thursday,

    June 27, 13
  64. @robb1e Almost all transactions passed through this queue Thursday, June

    27, 13
  65. @robb1e Not buying a message queue company Thursday, June 27,

    13
  66. @robb1e - Joel Spolsky, 2001 "If it's a core business

    function - do it yourself, no matter what." Thursday, June 27, 13
  67. @robb1e Time is the most expensive out going Bonus Thursday,

    June 27, 13
  68. @robb1e • filepicker.io / embed.ly • heroku.com • sendgrid.com /

    mailchimp.com • so many more... Tools Thursday, June 27, 13
  69. @robb1e Real-time vs near-time Story Thursday, June 27, 13

  70. @robb1e Trading system which updates users’ screen every 10 seconds

    Thursday, June 27, 13
  71. @robb1e Lots of number crunching and message queues Thursday, June

    27, 13
  72. @robb1e Did some in the field research Thursday, June 27,

    13
  73. @robb1e Traders only checked values every few minutes Thursday, June

    27, 13
  74. @robb1e This was not high volatile trading http://www.boldjack.com/wp-content/uploads/2012/01/wall_street4.jpg Thursday, June

    27, 13
  75. @robb1e Reduced complexity of the product Thursday, June 27, 13

  76. @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
  77. @robb1e Buy vs build Story Thursday, June 27, 13

  78. @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
  79. @robb1e Can you build the widget service yourself in that

    time? Thursday, June 27, 13
  80. @robb1e Are you in the widget business? Thursday, June 27,

    13
  81. @robb1e Paul Hammond, 2012 Hosted services are usually cheaper and

    better than anything you will build. Use them. Thursday, June 27, 13
  82. @robb1e Focus on your differentiators Bonus Thursday, June 27, 13

  83. @robb1e Mary and Tom Poppendieck Think big, act small, fail

    fast, learn rapidly Thursday, June 27, 13
  84. @robb1e Q/A Thursday, June 27, 13