Designing by Committee

When pulling together a new technical design for a software feature or component, it’s easy to inadvertently put too many cooks in the kitchen, particularly in a highly collaborative environment.  As the old saying goes, “nine women can’t give birth to a baby in one month.”  There are some basic steps that we can take to rectify the situation without demoralizing or derailing the team.

First, it’s important to get all the ideas and decision points out into the open, and keep them there.  This will likely require a dedicated space and a commitment from team members to let collaboration, rather than documents, drive the design.  At a minimum, this space should consist of a dedicated whiteboard for persisting ideas between design sessions, and a place to keep track of all of the open, in progress and finalized decisions.  If this sounds like a standard Scrum task board, then you’re paying attention!

Another pitfall of turning most (or all) of the team loose on a design is that inevitably contention will arise.  Healthy conflict and debate is a good thing, but can be counterproductive if the team finds itself going in circles around a design decision.  This is where it can be useful to call upon your Architects or other other technical leaders in the organization to mediate or break ties.

If all else fails, it pays to take a look at who, and how many team members are tasked with collaborating on a design.  Sometimes it can be beneficial to shrink the design team in order to catalyze progress toward the goal.  The last thing you want is the team’s tripping over itself being a barrier to a successful outcome.

This entry was posted in Software and tagged , , . Bookmark the permalink.