Monday, August 22, 2005

Team Design

I was reading "The Cognitive View: A Different Look at Software Design" by Robert Glass. And the following quote struck a chord with me:
Those same researchers have been looking into team design. And
they’ve found that, in many ways, it’s a shared form of individual
design:
  • The teams create a shared mental model.
  • Team members, sometimes in their own minds and sometimes in the group, run simulations against the shared model.
  • The teams evaluate the simulations and prepare the next level of the model.
But in some ways these efforts are unlike individual design:
  • Conflict is an inevitable part of the design process. It must be managed rather than avoided.
  • Communication techniques become a vital part of the design process.
  • Issues sometimes "fall through the crack" because no individual claims responsibility for them.

I'm always preaching about a "common vision" on the teams that I'm on and I always feel strongly about obtaining it. All of the successful teams that I've been on have had this "common vision". It's a shared goal and reaching for the same target. Without it, every individual has what they think the design should be and you end up with an unmaintainable big ball of mud. It's his first bullet point! A well-oiled agile team achieves all of the first bullet points and knows how to manage the last set. In fact, the last set of bullet points really boils down the problem of unsuccessful teams well. Healthy conflict resolution is paramount to a successful team. Mr. Glass goes on to define what a consider to be the definition of a good IT manager:
In managing design, managers can focus on communication facilitation and conflict resolution as their contribution to design. The empirical studies researchers further suggest that management of design should be the management of the key issues that arise during the design process.

The manager's job should be removing obstacles from the software designers and coders and not standing over you make sure you get your job done. If as a manager, you have an employee that you have to stand over to get their job done, then you've hired the wrong person. You should be making sure your developers have a proper road to race toward the goal on.

There's a lot of nuggets of information contained in and all in all a good read.

No comments: