Previous
Engineering Teamwork
Next

Team work is a crucial attribute of a winning team. Many people in the development world are geeks, so they don't usually have experience with team sports. As such, they don't understand that engineering requires good team work. A team with mediocre individual skills can beat a team with better skills, if the first team works better as a team. Real team building is about understanding what people are good at, what they want to do, what they are most productive at, and utilizing them in that way. Real leadership is about appreciating people for their strengths and accepting their weaknesses.

According to the Patrick Lencioni, there are 5 team dysfunctions:

  1. Absence of Trust
  2. Fear of Conflict
  3. Lack of Commitment
  4. Avoidance of Accountability
  5. Inattention to Results

Each Dysfunction leads to the next one. A lack of trust leads to a fear of conflict. A fear of conflict leads to a lack of commitment, which leads to an avoidance of accountability, which leads to an inattention to results. If team members don't feel comfortable with each other, a foundation of trust is impossible. The best thing a team leader can do is find people he trusts, and then trust them. Teams with no trust level are incapable of engaging in unfiltered, passionate debate about issues, which is critical to an engineering effort. The symptom of this is where the team approach to problem solving is replaced by veiled discussions and back channel comments. When team members cannot openly air their opinions, inferior decisions are the result.

The truism is that "two minds are better than one". But that is only true if you allow for the possibility of conflict. By conflict, I don't mean personal attacks. Conflict is passionate discussion of alternative ideas. Without this kind of conflict, the engineering process does not exist. Without healthy conflict, it is difficult for team members to commit to decisions, creating an environment where ambiguity prevails. Lack of direction and commitment can make high value team members disgruntled.

One symptom of a team in this state is that all major decisions are deferred. Everything will be figured out "later". When teams cannot commit to a clear plan of action, even the most focused and driven individuals hesitate. People give up mentally. When people are excluded from design and decision making, they feel disrespected. They mentally disconnect, washing their hands of it, and start just going through the motions.

Another symptom of a dysfunctional team is that team members start putting their own desires (like resume enhancement, blame avoidance, etc) ahead of the project goals. When a team loses focus on results and the need for achievement, the software project ultimately suffers.

The next risk