No methodology, let alone a framework of that methodology, or any of the processes defined by that methodology, can be followed without having an effective team to follow that methodology and implement those processes. One of the four core values of agile software development as stated by the Agile Manifesto states the importance of individuals and interactions over processes and tools. How well a project team performs, communicates, collaborates, and works together to achieve a common goal will dictate the success of that project. According to Scrum, every approach benefits from having a team that is cross-functional. Cross-functional teams include all required domain knowledge and skills without relying on others outside of the team. One of my favorite quotes that I like to teach in my workshops when discussing the Agile Manifesto and the importance of cross-functional teams is by Henry Ford: “Coming together is a beginning, staying together is progress, and working together is success.” This echoes the four stages of team development published by Dr. Bruce Tuckman in 1965: forming, storming, norming and performing. The most effective, productive, and successful teams are cross-functional and are at the performing stage of team development.
So why specifically should a project have a cross-functional development team?
Broaden Team Skills, Strengthen Team Individual Skills
Teams may find answers to providing functionality through logical thinking, critical thinking, or thinking driven by emotional content. By examining how other teams think through solutions, a team can discover new ways of approaching and thinking through problems as well as new skills and tools to build solutions, both at a team-level and an individual team member-level. Team members who strengthen existing individual skills, as well as learn new skills (even though it may not be their primary role) become more diverse, can add more value to the team as a whole (and can backfill in case a primary team member is unavailable), and can increase the team’s quality and productivity (or “velocity” in Scrum terminology).
Increase Creativity, Problem Solving, and Perspectives
Organizations can greatly increase creativity and problem solving with cross-functional teams because of their composition. Members of cross-functional teams bring with them a diversity of domain knowledge, skills, educational backgrounds, talents and experience. This diversity can help broaden perspectives and create synergy, which is defined as “the creation of a whole that is greater than the simple sum of its parts.” In other words, a diverse, cross-functional team will add significant value and create a greater effect through collaboration, communication, sharing ideas and skills, and working together to accomplish the overall team objective (or to meet the goal of a sprint) than taking the sum of individual effects of each member working alone. This leads to a higher level of creativity and problem solving.
Cross-functional teams in an organization can include coders, testers, UI/UX designers, marketing, sales and management. The cross-functional team works together to reach a goal or objective such as developing new products, enhancing existing products, improving quality by reducing defects or increasing the effectiveness or efficiency of a process.
Improve Collaboration, Communication, Transparency, and Trust
When a team becomes isolated internally and compartmentalization creates these tiny kingdoms or fiefdoms, it can threaten the survival of the organization itself. Over time, people can become too focused on their individual roles and contributions at a “tree” level and lose the bigger picture at the “forest level” – what value their team brings to the survival and success of their organization. Cross-functional teams ensure the development and strengthening of interpersonal and interdepartmental relationships, promotes collaboration and teamwork, and puts a strong foundation of trust and transparency (including communication) that mitigates or eliminates risks before they become issues and can impact the successful delivery of projects.
Build Team Morale and Spirit
Forming a strong team of high performers – a team that looks, acts, and produces as a team and not as a group of individuals, is a significant challenge, let alone keeping such a team together. A problem that I have seen professionally, and a problem that a number of companies encounter, is the inflated ego of a developer – a developer that thinks that they walk on water, that they are too “good” to do any role other than their primary role or purpose on the project. Having a team member adopt a “T-shaped mindset” (refer to the picture included with this article) can sometimes seem to be an insurmountable challenge. But the benefits will yield enormous dividends. Creating effective, lasting, bonds of trust can further enforce each team’s sense of competence and unity, and instill in each team member a team-based mentality and approach to think, act, and succeed as a team, not as individuals who happen to form a team. This will allow members of the team to “connect the dots” and see how their individual contributions and team-based mentality contributed to the overall success of the team, and to the organization as a whole.
Become The “Model Team”
It can be such a boost to a team’s morale when a director, VP, or even a CEO points to a highly successful, collaborative and cross-functional team and says “I want ALL of our teams to perform just like THIS one.” Such a team would take pride in their accomplishments, and the reporting managers of that team’s resources would do anything in their power to keep that team together, protect them from outside influences, and continue to put them in a position to succeed. That team may find themselves in the enviable position of mentoring other teams within the organization to teach and demonstrate how to collaborate, communicate, and work together, overcoming their weaknesses and improving their strengths, just as this team does. This makes each member of that successful team more vested in the success of their team AND the organization, and may encourage each member of the team to accept more responsibility and greater roles within the organization.
So now it’s clear as to WHY we should have a cross-functional team. But HOW do we put one together?
- Identify domain knowledge, skills, educational backgrounds, experience, age, gender, cultural background, and other factors that will comprise a diverse and cross-functional team.
- Determine the proper team size. The ideal development team size is between three and nine members.
- Identify potential team member candidates who possess those qualities identified in Step 1.
- Come to a consensus with functional managers of potential team member candidates as to roles, responsibilities, expectations, and level of commitment on the team.
- Staff team with identified team members and communicate to the team the roles, responsibilities, expectations, and level of commitment of each team member and of the team as a whole. Do your best to ensure that the team is co-located as much as possible (all in one location, not geographically dispersed).
- Empower the team to have the authority to do whatever is needed to meet their objective, and protect them from internal and external influences that may impact their ability to be successful. In Scrum, the development team is self-managing and self-organizing and has mutual accountability.
- Have the team constantly assess their performance, and to improve their processes and practices – not just at the end of each sprint during the sprint retrospective but throughout each sprint.
- Consider using a financial incentive (restructuring their performance evaluation and bonus compensation) for team members who adopt a “T-shaped mindset”, until the dramatic improvement of their individual and team’s success is enough incentive to make that mindset a permanent part of the organizational dynamic.