Decision-making is something we were discussing at work the other day, after someone commented on how hard it was to give a simple answer when asked who was in charge of the team (without resorting to Holy Grail quotes).
We never really had a process for making decisions, but on reflection if we had documented it, it would probably have looked something like this:
- Most day-to-day decisions can just be made by an individual or pair, as they crop up.
- If you’re not sure, a quick chat with someone else usually sorts it out.
- For the big decisions, the team discusses the options, and agrees on which is best.
- If you can’t decide which is best, it probably doesn’t really matter. Try one, and if it doesn’t work out, try the other. Or try both and compare them (this is why XP recommends creating spike solutions).
There’s one case I can think of that’s not covered in that list, and it’s not one this particular team has faced yet. What if the the team can’t agree, due to fundamental differences of principle? In the software world some fairly petty disagreements can easily turn into religious wars. If this kind of friction is causing serious problems, it may suggest that you don’t have a sustainable team – perhaps some kind of reshuffle is called for. Having said that, if no-one ever disagrees on anything, you’re probably just coasting, rather than constantly looking for ways to improve.