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.

Niklas Lochschmidt

September 06, 2019
Tweet

More Decks by Niklas Lochschmidt

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. Making better intuitive decisions Learning Repetition Break systems that reinforce

    negative decisions > Conscious decision making SoCraTes Day Berlin 2019 7
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. "YAGNI is not a justification for neglecting the health of

    your code base." Martin Fowler SoCraTes Day Berlin 2019 22
  11. 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
  12. 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
  13. Insist on a Decision Spike needs to be stabilized or

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

    edge cases Add documentation SoCraTes Day Berlin 2019 31
  15. 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
  16. 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