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

Conscious Decision Making

Conscious Decision Making

What is unconscious and what are conscious decisions. Where should we make an effort to be more conscious about our decisions when it comes to software development.

In particular:

- We need to decide more consciously whether to "Make or Buy" a piece for functionality.
- When need to build it we need to consciously decide what is going to be build, by employing the "You ain't gonna need it" (YAGNI) mindset
- When we are lacking information needed to make an informed decision, we can use "Spike and Stabilize" to learn what's needed before investing a lot of time and money

I hoped to provide some insights by telling a few stories. The stories have not been meant to be shared with the hold world, so are not included in the presentation.

39ef6987e0b00c12a1af3f8e9a5a5e73?s=128

Niklas Lochschmidt

September 06, 2019
Tweet

Transcript

  1. Conscious Decision Making Niklas Lochschmidt - @Niklas_L SoCraTes Day Berlin

    2019 1
  2. Climate Crisis is Real September 20th Global Climate Strike October

    7th Global Rebellion #BerlinBlockieren https://fridaysforfuture.org/ https://rebellion.earth/ Get Informed - Tell the Truth - Act Now SoCraTes Day Berlin 2019 2
  3. Disclaimer I am not a psychologist/economist/ researcher I could be

    wrong about these things They helped me, maybe they will help you as well SoCraTes Day Berlin 2019 3
  4. Unconscious Decision Making Fast Intuitive Easy Susceptible to bias SoCraTes

    Day Berlin 2019 4
  5. Conscious Decision Making Slow Logical Harder Risk of overconfidence SoCraTes

    Day Berlin 2019 5
  6. Intuition is our Default Mode SoCraTes Day Berlin 2019 6

  7. Making better intuitive decisions Learning Repetition Break systems that reinforce

    negative decisions > Conscious decision making SoCraTes Day Berlin 2019 7
  8. Practice Self-care Stressed, depressed and hungry people make the worst

    decisions SoCraTes Day Berlin 2019 8
  9. Topics for Today First decide whether you need to Make

    or Buy Build only what's needed - YAGNI Use Spike and Stabilize to learn what's needed SoCraTes Day Berlin 2019 9
  10. Make or Buy SoCraTes Day Berlin 2019 10

  11. SoCraTes Day Berlin 2019 11

  12. Why Make It Yourself We like to build familiar things

    We typically underestimate Overconfidence: We can do this much better Not invented here / Clean-room design SoCraTes Day Berlin 2019 12
  13. Why Buy It We don't like to do the same

    thing again Everyone else typically underestimates Low self-confidence: We couldn't do it better Believe in "cost-effective" outsourcing SoCraTes Day Berlin 2019 13
  14. Make or Buy Wanna share a story? SoCraTes Day Berlin

    2019 14
  15. Questions to ask: Can it be a unique selling proposition?

    Does it need to delight your customers? Is it part of your core business? SoCraTes Day Berlin 2019 15
  16. Prevent "Analysis Paralysis" in Buy-Decision Describe the problem you want

    solved Determine your criteria Decide how many options to include > Then start your research SoCraTes Day Berlin 2019 16
  17. SoCraTes Day Berlin 2019 17

  18. Bonus Level SoCraTes Day Berlin 2019 18

  19. Contribute to Open-Source SoCraTes Day Berlin 2019 19

  20. YAGNI You ain't gonna need it SoCraTes Day Berlin 2019

    20
  21. Start Tracking Product/Business Decisions What has been decided Why has

    it been decided When will we need to revise it Who has decided SoCraTes Day Berlin 2019 21
  22. "YAGNI is not a justification for neglecting the health of

    your code base." Martin Fowler SoCraTes Day Berlin 2019 22
  23. YAGNI requires more practices Constant refactoring Pair programming Tests Collective

    code ownership SoCraTes Day Berlin 2019 23
  24. "You will need that backup eventually" What else is always

    needed? SoCraTes Day Berlin 2019 24
  25. Bonus Level SoCraTes Day Berlin 2019 25

  26. You Might Not Need <Your Favorite Tool Here> SoCraTes Day

    Berlin 2019 26
  27. Spike and Stabilize SoCraTes Day Berlin 2019 27

  28. Spike Some feature/component/code that has limited production- readiness to validate

    an idea Commitment by stakeholders to be reversible Shorten feedback cycle with customer Might have less tests, less documentation, different technologies Used for testing technical feasibility SoCraTes Day Berlin 2019 28
  29. Delivering a Spike in Production Use user- or environment-based feature

    toggles Use continuous integration to prevent code divergence Don't change/disable existing tests to prevent behavior divergence SoCraTes Day Berlin 2019 29
  30. Insist on a Decision Spike needs to be stabilized or

    removed SoCraTes Day Berlin 2019 30
  31. Stabilize When Proven Worthy Add tests or rewrite Cover remaining

    edge cases Add documentation SoCraTes Day Berlin 2019 31
  32. When did you last hack something SoCraTes Day Berlin 2019

    32
  33. Bonus Level SoCraTes Day Berlin 2019 33

  34. Establish DevOpsoriginal in your Organization SoCraTes Day Berlin 2019 34

  35. Summary First decide whether you need to Make or Buy

    Build only what's needed - YAGNI Use Spike and Stabilise to learn what's needed SoCraTes Day Berlin 2019 35
  36. Further Reading ! The DevOps Handbook by G. Kim, J.

    Humble, J. Willis, and P. Debois Predictably Irrational by Dan Ariely Influence: The Psychology of Persuasion by Robert Cialdini ! Harry Potter and the Methods of Rationality by Eliezer Yudkowsky SoCraTes Day Berlin 2019 36