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

Waste in Software Development

Waste in Software Development

An informal, lightweight talk about "waste," given at PagerDuty. The goal was to generate discussion a lively, rather than to preach a particular process or methodology.

Reg Braithwaite

August 04, 2017
Tweet

More Decks by Reg Braithwaite

Other Decks in Technology

Transcript

  1. 1 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  2. Waste in Software
    Development
    2 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  3. What is Waste?
    Waste is any material or activity that does not
    create value for the customer.
    3 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  4. The Lean Model of
    Software Development
    4 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  5. 5 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  6. 6 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  7. Activities
    · Build
    · Learn
    · Measure
    7 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  8. Assets
    · Code
    · Ideas
    · Data
    8 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  9. Code Waste
    · Code that is deleted before it creates value for
    the customer
    · Code for features the customer does not value
    · Code for features the customer cannot use
    9 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  10. Ideas Waste
    · Ideas that are discarded before being turned
    into potential features
    · Potential features we do not turn into code
    · Ideas we cannot turn into code
    10 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  11. Data Waste
    · Data that is insufficient for creating ideas
    · Data we do not turn into ideas
    · Data we cannot turn into ideas
    11 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  12. Our simplified model of waste
    That which is:
    · Incomplete, or;
    · Unvalued, or;
    · Unused.
    12 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  13. 13 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  14. Code Waste
    14 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  15. Code that is Incomplete, Unvalued, or Unused by
    the customer.
    15 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  16. Incomplete Code
    · Dead-ends
    · Epics
    · Work-in-Progress
    16 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  17. Unvalued Code
    · Architecture
    · Tests
    17 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  18. Unused Code
    · Misfeatures
    · Over-optimizations
    18 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  19. 19 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  20. Unfulfilled Potential
    20 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  21. Unfulfilled Code
    Unfulfilled code is code that would have created
    customer value, had it been in the customer's
    hands earlier.
    But it wasn't.
    21 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  22. Unfulfilled Ideas
    Unfulfilled ideas are ideas that would have
    become features creating customer value, had
    we employed it to create features sooner.
    But we didn't.
    22 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  23. Unfulfilled Data
    Unfulfilled data is data that would have pointed
    us towards valuable ideas for creating customer
    value, had we considered it earlier than we did.
    But we didn't.
    23 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  24. 24 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  25. Unfulfillment is Waste
    25 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  26. Almost There…
    26 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  27. 27 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  28. Waste (again)
    Waste is:
    · Incomplete, or;
    · Unvalued, or;
    · Unused.
    28 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  29. Code Waste (again)
    Incomplete code, such as dead-ends, epics, and
    work-in-progress.
    Unvalued code, such as architecture and tests.
    Unused code, such as misfeatures and over-
    optimizations.
    Unfulfilled code, such as features that are ready,
    29 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  30. Five Easy Pieces
    30 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  31. Question One
    Is technical debt waste?
    31 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  32. Question Two
    Do big releases create
    waste?
    32 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  33. Question Three
    Is tooling actually waste?
    33 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  34. Question Four
    What does this model tell us
    about continuous integration
    and deployment?
    34 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  35. Question Five
    What does this model tell
    us about big design up-
    front?
    35 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide

  36. Bonus Question
    Are technical talks waste?
    36 — © 2017 Reginald Braithwaite and PagerDuty, Inc.

    View full-size slide