Announcing Decision Drill
If you need to decide on something with a group of friends, check out Decision Drill. Enter the name of your decision and then you’ll get a link to send to your friends. They will get to nominate alternatives and second existing alternatives. When nominations close, those alternatives that were seconded goes on to a voting stage – refresh the page to get taken there. When voting closes, the top voted alternatives are shown.
What you do with the top alternatives is up to you. I recommend sitting down together and discussing them futher to get into the nuances. Or just pick the highest voted one and get on with your life.
By default, each stage takes a week, but if you’re doing this on the go or in a conference call, the creator of the decision can advance to the next stage manually as soon as they think everyone is ready.
If you have a sprint retro coming up, this might be a low-investment way to elicit discussion points!
Made in Haskell on top of SQLite
If you’re more interested in the making of that’s a separate article. For a long time I couldn’t motivate spending spare time working with Haskell since it was so far from my actual day job (the closest I ever got there was F#). However, now that I’m in the incredibly luxurious position of working with Haskell as my day job I’m more than happy to pick it up for side projects again.
Motivating case: board game day!
I created Decision Drill to decide with a group of friends which board game to play. We only get together about once a year so this decision is a big deal, and I wanted everyone to have an equal opportunity to chime in without being overpowered by the more influential people in the group.
Thus, I went looking for a tool that is
- quick to use,
- does not require registration,
- does not have all the distracting bells and whistles.
I pictured “the Doodle of dot voting.” I couldn’t find anything from a quick web search, and I figured it was at most a night of work, so I made it.
Background and assumptions
A group decision can be performed as a three-stage process:
- Come up with a list of alternative actions to resolve the decision.
- Narrow down the list of alternatives to a smaller set.
- Discuss the remaining small set until a winner emerges.
The third step is often good to do in a live setting, but the first two sometimes get better if they’re done asynchronously, with every participant having ample time to come up with alternatives and evaluate them. However, doing so requires either
- a person to manage the list of alternatives and keep other people updated, or
- a central mechanism to share the list of alternatives, e.g. a group chat or shared document.
Having a coordinator takes time and effort, and the central mechanism usually kills anonymity. Anonymity is a great feature of decision making because it prevents influential members of the group from controlling the environment in which the decision is made.
Coming up with a list of alternatives
This corresponds to the nomination stage of Decision Drill. It’s important to let all participants submit alternatives without giving precedence to some. In Decision Drill, all nominations are anonymous, meaning the intern can submit an alternative that will be considered on the same footing as the one from the vp of engineering.
However, it’s also easy for this to devolve into a large set of alternatives that are really only good for one person. The traditional – Robert’s Rules of Order – way to solve this is to require that an alternative is seconded by someone else before it is considered. Decision Drill adopts this approach.
Narrowing the list of alternatives
In a well-functioning decision process, there may still be many alternatives that are proposed and seconded. It would be infeasible to discuss all of them in equal depth. Fortunately, the wisdom of the crowd can help out. If everyone gets a few votes to distribute among the alternatives they like, a smaller set of clear favourites usually emerge. These can be discussed at greater depth.
Again, voting is anonymous and egalitarian: the intern has the same number of votes as the vp of engineering. Everyone is given only three votes to force them to focus on what’s really important, but still retain the ability to express a strong preference for one alternative.
Anticipated and asked questions
I have asked myself some questions as I built this, and I anticipate some questions from others.
Why not allow users to adjust parameters?
Mainly simplicity – I don’t want to maintain the business logic and ui around that! But also consistency of experience: I want someone returning to Decision Drill for another decision to be presented with exactly what they would expect based on the first one.
Why not quadratic voting?
I like the idea, but again, simplicity. Quadratic voting is harder to explain, and possibly harder to implement and design a ui for.
Why not select a Condorcet winner?
This would be equivalent to asking people to select the winner between all pairs of alternatives, and then presenting as the winner the alternative that beat all other alternatives. Such a Condorcet winner almost never exists in real life. People’s preferences are cyclic and incompatible in all sorts of funny ways.
Why not impose more structure on the process?
I want our computers tools to support the processes we desire. I don’t want us to shape our processes around what our computer tools are designed for.