Anyone who has spent time in software development organizations knows that some teams seem to achieve superhuman productivity, and some teams just cant seem to get anything done. I think that the ratio of productivity can be hundreds to one, no matter how you measure it. What is it about Highly Effective Teams that lets them make so much progress with so little effort? Here are some the characteristics of these super-teams.

1.Highly Effective Teams have effective leaders and followers
Leaders of Highly Effective Teams know their team members well, and how to give their teams direction and get compliance by motivating each individual in his or her most effective way. Leaders may step aside to let a team member with more experience take the lead for a particular task. Team members are comfortable taking direction from more than one source at a time, sorting out the priorities and contradictions, and doing the right thing with a minimum of supervision.

2.Highly Effective Teams share an explicit goal
Each team member may have his or her own personal goals, but all the team members understand the common goal, because they all helped to define it. Team members are willing to temporarily set aside their own goals to help the team meet its overarching goal.

3.Highly Effective Teams are always learning
Highly Effective Teams never assume that their way of working is the only effective way: they are constantly learning new techniques from each other, from other teams, and from books and experts. Highly Effective Teams even learn from their own mistakes when something goes wrong they figure out what happened and make sure never to repeat it.

4.Highly Effective Teams aren't afraid of conflict
Members of Highly Effective Teams have learned that they are all responsible for the quality of the teams work, so they are not afraid to challenge design assumptions, or to point out programming errors, or to suggest better processes. But they know how to disagree with respect, and to receive suggestions in the spirit they were offered, and to compromise when necessary.

5.Highly Effective Teams are always innovating
Team leaders and members are always looking for a better, more efficient way to get the job done, and they are willing to experiment with new techniques and processes. Even when the new technique is no improvement, the team learns something that they can apply later.

6.Highly Effective Teams celebrate early and often
Members of Highly Effective Teams know that developing software is akin to running a marathon, and requires patience and endurance, so they get in the habit of celebrating small forward steps. Getting the first clean build, or solving a nasty bug, or getting a 10% performance boost might be an occasion for pizza and beer after work.

About the Author:
Bruce Taylor is the owner and principal of Working In Unison, an Organizational Development consulting firm located near Boston, Massachusetts. Bruce helps software organizations of all sizes to create low-stress, supportive, adaptable working environments, so that the engineers, leaders, and managers can work as effectively as possible.

He provides executive coaching for senior managers who are creating superior organizations, management coaching for technical leaders who are adapting to new agile practices, and individual coaching for engineers who are upgrading their skills. Bruce has a Masters in Computer Science from Duke University, a Masters in Community Psychology, and a Certificate in Job Stress and Healthy Workplace Design, both from the University of Massachusetts. He can be reached at http://www.workinginunison.com or at brucetaylor@workinginunison.com.