Structured Software Decision-Making
Our brains are designed for making quick decisions, but quick does not always mean good… We make important decisions when building software without ever wondering: how did we come to this conclusion? Why did we pick this library over its competitors? Were there more options than we realized? Did we focus on the right thing? Did we pick the right option? Are there other methods we can use to reach a better outcome?
Workshop Summary
Everybody should have some tools in their toolbox for making software related decisions, yet most people don’t have any. Let’s fix that. Our common understanding of what a decision is, is wrong. Together we are going to explore a new model of a decision: what is a decision, what are the elements needed to make a good decision, and what is the difference between the quality of a decision and the quality of the outcome. Then, you are going to learn some decision-making tools: the Pro-Con-Fix List and the Strategy Table. The Pro-Con-Fix list helps you to:
- understand the decision you need to make;
- find the trade-offs between the alternatives;
- guide you to pick the best alternative.
Workshop Description
The Strategy Table is a helpful tool when making more complex decisions which seem to have semi-incompatible alternatives at first. It’s benefits are:
- avoiding circular discussions;
- generating and comparing combinations;
- stop bouncing back and forth between individual choices.
Through exercises, we’re going to learn how to use apply these tools to improve our chances of getting the results we want.
Learning outcomes
- Understanding the basic concepts of decision-making theory
- Analysing trade-offs visually between alternatives
- Analysing complex decisions
- Visualising decision strategies
Agenda
- Part 1: Introducing decision-making
- What is a decision?
- What is decision-making?
- Part 2: Analysing alternatives
- Generating alternatives
- Pro-Con-Fix List
- Part 3: Combining alternatives into strategies
- Strategy Table
Who Should Attend
Anybody who works in software teams or with software teams.
Prerequisites
- Zoom (or access to the Zoom client in your browser)
- Miro (or access to the Miro client in your browser)
Prior knowledge
- You don’t need knowledge of Domain-Driven Design, any particular programming language or technology.