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

Decoding Paradoxes: Why are many good ideas in ...

Decoding Paradoxes: Why are many good ideas in Software Delivery counter-intuitive

Hibri Marzook

January 04, 2025
Tweet

More Decks by Hibri Marzook

Other Decks in Technology

Transcript

  1. Decoding Paradoxes Why are many good ideas in Software Delivery

    counterintuitive? Hibri Marzook (he/him)
  2. Hibri Marzook Likes to help software teams deliver fast and

    enjoy doing it @hibri www.hibri.net https://techhub.social/@hibri Principal Engineer
  3. ‘ill-​ defined, ambitious and associated with strong moral, political and

    professional issues. Since they are strongly stakeholder dependent, there is often little consensus about what the problem is, let alone how to resolve it. Furthermore, wicked problems won’t keep still: they are sets of complex, interacting issues evolving in a dynamic social context. Often, new forms of wicked problems emerge as a result of trying to understand and solve one of them.’ Is it a Wicked Problem? ‘Dilemmas in a General Theory of Planning’ (Rittel and Webber, 1973)
  4. Involves changing people's behaviour Involves changing the relationships between individuals

    and teams Involves seeing other perspectives Involves changing the nature of relationships between individuals and teams Involves seeing the whole
  5. Software delivery is full of counterintuitive ideas if it hurts,

    do it often slack time improves flow releasing more often improves quality
  6. 'The simplest thing you can do to improve quality is

    to deploy more frequently' Nicole Forsgren
  7. Why use causal loop diagrams? B + A + A

    influences/increases/affects B
  8. change failure rate failed changes in a release time to

    restore service size of a release + + +
  9. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + number of new changes + ||
  10. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ number of new changes + || +
  11. The system engine change failure rate failed changes in a

    release time to restore service delay to the next release size of a release + + + + size of a future release + \\ R1 number of new changes + || +
  12. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ R1 number of new changes + || +
  13. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + || + \\ R1 time to test a release - manual regression tests + number of new changes + More time to test
  14. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + manual regression tests + number of new changes + || + More time to test
  15. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual regression tests + number of new changes + || + Impact of a release freeze
  16. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual regression tests + number of new changes + || + Impact of a release freeze
  17. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - number of new changes + || +
  18. Events change failure rate failed changes in a release time

    to restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - number of new changes + || +
  19. Patterns of behaviour time failed changes in a release change

    failure rate failed changes in a release time to restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - number of new changes + || +
  20. Systems Structure change failure rate failed changes in a release

    time to restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - number of new changes + || +
  21. + Mental Models change failure rate failed changes in a

    release time to restore service delay to the next release size of a release + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment manual regression tests + deployment frequency - - automated deployment + number of new changes + || + +
  22. Ask questions change failure rate failed changes in a release

    time to restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - automated deployment + number of new changes + || + is there enough time to learn? wip limit - are devs incentivised to focus on their sprints? what inhibits learning? do we have the right tools? start finishing stop starting
  23. if it hurts, do it often slack time improves flow

    releasing more often improves quality stop starting, start finishing Counterintuitive ideas shape our mental models
  24. hero culture devs need to be busy all the time

    releasing once a month keeps us safe devs and testers in different teams What mental models shape our current system?
  25. Expand boundaries change failure rate failed changes in a release

    time to restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - automated deployment + number of new changes + || + learning diversity and culture learning software delivery attitudes to collaboration
  26. 'Models are conversations. There is no right way to converse.

    Modelling is framing questions and exploring answers. Establishing a vibrant, healthy and impactful modelling process is far more important than which tools you use' Diana Montalion
  27. change failure rate failed changes in a release time to

    restore service delay to the next release size of a release + + + + size of a future release + \\ R1 time to test a release - + duration of a release freeze + manual deployment + manual regression tests + deployment frequency - - automated deployment + number of new changes + || + wip limit -