You can’t have great software without a great team, and most software teams behave like dysfunctional families. –Jim McCarthy
Let’s face it. Today, most software is not developed and written by one person but is a product of a team effort. Learning to work with other developers is a difficult step for some people. The key to a good software development team is not only understanding how people work together but the understanding that software teams go through phases of development. Just like the above quote, each member of your team may be in a different development phase, causing dysfunctional communication and problems. If you understand the phases that teams are going through, as well as why things are happening the way they are, you stand a greater chance of surviving the process.
Project teams go through 5 phases with different feelings, responses and responsibilities at each level. Here is a breakdown:
Phase 1: Forming
During the forming phase team members are just getting to know each other, the project and are optimistic about the work ahead. They often have high expectations regarding the work and the team experience. Team members can also experience some anxiety regarding their ability to do the work and fit in with the team. In this phase team member often ask many questions that stem from the excitement and anxiety they are feeling.
During this phase, teams should be working on setting up their structure, setting goals, and defining roles. Teams need a clear mission and need to define their expectations about their project and the processes they will use. It is during this phase that trust begins to build between team members.
Phase 2: Storming
Much like “storming the castle” the team will begin this phase with vigor that can quickly turn sour. As the team begins to move towards accomplishing their goals, the team members may be finding that the project or their teammates do not live up to their earlier expectations and excitement. This can cause problems with your team in which feelings of frustration and anger begin to surface. Due to this frustration, team meetings can erupt into conflict as disagreements about goals, expectations and responsibilities are aired.
Phase 3: Norming
The norming phase should bring an end to the conflict seen in the storming phase and team members should begin to resolve their differences. If the team’s conflict in the storming phase allowed for team members to feel like they can express their opinions and ideas without criticism, your team will be in a better place now, with increase feelings of trust and comfort. Team members will feel accepted by the other members as they begin to see how everyone’s ideas come together to form the final product. Teams that had a rough storming phase will have to find their equilibrium before they can get to the norming phase and move on.
Phase 4: Performing
In the performing phase, team members often feel confident about the project’s progress, the team and their contribution. They are now familiar with each other’s strengths and weaknesses and they are able to see the team as a whole entity. At this stage, team members can often prevent or solve problems and conflict internally as part of the team’s process. Members are also more willing to assist other and take on new responsibilities as needed.
Phase 5: Transforming
The transforming phase is a termination phase. During this phase the team members may be splitting up to move on to other teams or the project may enter a “shipped” state where a maintenance team will continue to do other tasks. During this phase, team members may experience several feelings such as anxiety because they are uncertain of where their new assignment may be and sadness because they do not want the team and their new relationships to come to an end. Members should also feel a sense of accomplishment or satisfaction since their work was successful and their goals have been met.
Understanding the phases of team development can help you navigate your way through a team software development project. It also helps if you understand what to expect as your project moves through developmental phases to help you integrate better with your teammates and be a more productive member.