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
    Robbie Clutton
    Prototyping &
    agile development
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. Thursday, June 27, 13

    View full-size slide

  5. Thursday, June 27, 13

    View full-size slide

  6. $10bn
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  8. @robb1e
    Some marketing genius
    No one ever got fired for
    hiring IBM
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  11. @robb1e
    The long
    road to agile
    Thursday, June 27, 13

    View full-size slide

  12. Toyota Production System - 1948-1975
    Agile manifesto - 2001
    Lean Software Development - 2003
    Lean startups - 2011
    Thursday, June 27, 13

    View full-size slide

  13. @robb1e
    Toyota
    production
    system
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  15. @robb1e
    Agile
    manifesto
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  17. @robb1e
    http://www.agilemodeling.com/essays/costOfChange.htm
    Thursday, June 27, 13

    View full-size slide

  18. @robb1e
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  21. process practices
    #win
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  23. @robb1e
    Lean
    software
    development
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  25. @robb1e
    Mary and Tom Poppendieck
    Think big, act small, fail fast,
    learn rapidly
    Thursday, June 27, 13

    View full-size slide

  26. @robb1e
    Lean startup
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  29. @robb1e
    Prototyping
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  32. @robb1e
    Can you build a high
    fidelity prototype for a
    software application?
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  35. Thursday, June 27, 13

    View full-size slide

  36. Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  38. @robb1e
    Beyond
    prototyping
    Thursday, June 27, 13

    View full-size slide

  39. @robb1e
    Most developers
    Prototypes tend to find a
    way into production
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

  41. @robb1e
    Kent Beck
    Make it work,
    make it right,
    make it fast
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  43. @robb1e
    Crazy Egg
    Story
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  49. @robb1e
    • CrazyEgg.com
    • UserTesting.com
    • SilverbackApp.com
    • LeanLaunchLab.com
    • Trello.com
    Tools
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  60. @robb1e
    Always be validating
    Take away
    Thursday, June 27, 13

    View full-size slide

  61. @robb1e
    Was that really the
    best use of your time?
    Story
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  66. @robb1e
    - Joel Spolsky, 2001
    "If it's a core business
    function - do it yourself,
    no matter what."
    Thursday, June 27, 13

    View full-size slide

  67. @robb1e
    Time is the most expensive out going
    Bonus
    Thursday, June 27, 13

    View full-size slide

  68. @robb1e
    • filepicker.io / embed.ly
    • heroku.com
    • sendgrid.com / mailchimp.com
    • so many more...
    Tools
    Thursday, June 27, 13

    View full-size slide

  69. @robb1e
    Real-time vs near-time
    Story
    Thursday, June 27, 13

    View full-size slide

  70. @robb1e
    Trading system which
    updates users’ screen
    every 10 seconds
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  77. @robb1e
    Buy vs build
    Story
    Thursday, June 27, 13

    View full-size slide

  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

    View full-size slide

  79. @robb1e
    Can you build the
    widget service yourself
    in that time?
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide

  81. @robb1e
    Paul Hammond, 2012
    Hosted services are usually
    cheaper and better than anything
    you will build. Use them.
    Thursday, June 27, 13

    View full-size slide

  82. @robb1e
    Focus on your differentiators
    Bonus
    Thursday, June 27, 13

    View full-size slide

  83. @robb1e
    Mary and Tom Poppendieck
    Think big, act small, fail fast,
    learn rapidly
    Thursday, June 27, 13

    View full-size slide

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

    View full-size slide