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. What is Waste? Waste is any material or activity that

    does not create value for the customer. 3 — © 2017 Reginald Braithwaite and PagerDuty, Inc.
  2. The Lean Model of Software Development 4 — © 2017

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

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

    2017 Reginald Braithwaite and PagerDuty, Inc.
  5. 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.
  6. 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.
  7. 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.
  8. Our simplified model of waste That which is: · Incomplete,

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

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

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

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

    Reginald Braithwaite and PagerDuty, Inc.
  13. 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.
  14. 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.
  15. 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.
  16. Waste (again) Waste is: · Incomplete, or; · Unvalued, or;

    · Unused. 28 — © 2017 Reginald Braithwaite and PagerDuty, Inc.
  17. 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.
  18. Question One Is technical debt waste? 31 — © 2017

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

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

    Reginald Braithwaite and PagerDuty, Inc.
  21. Question Four What does this model tell us about continuous

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

    design up- front? 35 — © 2017 Reginald Braithwaite and PagerDuty, Inc.
  23. Bonus Question Are technical talks waste? 36 — © 2017

    Reginald Braithwaite and PagerDuty, Inc.