The other day I was watching a presentation about domain driven design. I was very happy to see this because the speaker was introducing the audience to one of the most effective ways for technical and non-technical people to collaborate. Domain driven design is heavily skewed towards software engineering, with much about software design, but to me the real innovation is being very precise about what key business concepts mean, and making sure everyone—technical and non-technical alike—has that very precise understanding.
One of the other most effective ways to enhance collaboration—at least in my experience—is quantifying value. If we can capture this in a single statement it means that everyone knows exactly what we’re aiming for. We might agree that we want our product to be “faster” or “more efficient”, or that we want a user experience that’s “friendlier”, but these words are too ambiguous and it can easily lead to disagreement, usually without people realising why. I’ve found that if we can quantify the value we’re seeking to achieve then ambiguity is eliminated. Then conversations become far more efficient and success is achieved much more easily.
There are plenty of other ideas and techniques that are hugely valuable in creating digital products and services, but I find it hard to think of any others that are focused on helping diverse stakeholders work together, and are so effective given their inherent simplicity.
Perhaps this is odd, because superficially domain driven design and quantifying value seem very different. One is about writing software and the other is about programme management. But there is a strong similarity. They ensure that everyone—technical or note—uses the same terminology in precisely the same way, and between them they cover most (if not all) levels of our delivery operation. One covers what we’re creating, and the other what our objective is.
Perhaps we should all be a bit more aware that when we use words we don’t always interpret them in exactly the same way. I’ve certainly seen plenty of conversations get difficult, and often it’s because we have slightly different understandings of basic words like “fair”, “easy”, “ready”, and so on.
Taking time to ensure mutual understanding of basic concepts can help us collaborate much more successfully.