In this post, we investigate how cross-functional teams work, how to get the most out of them and what benefits they can offer to your project. With the number of variants at play in your project – constraints, resources, requirements – how can you be sure that the teams that you assign will be able to overcome the hurdles they face?
Generally speaking, there are two methods to take on this challenge. Once, the most common way to develop complex software was the waterfall model: to spend a significant amount of time planning what is required for a project, calculating how long it will take and what resources you will need. Then, once everything is planned meticulously, put together the team required to execute it, and hope that everything will go exactly according to the plan that was compiled by your experts.
Since the advent of the Agile methodology of software development, many companies frequently favour working in a way that allows for more flexibility. Not everything about a project can be predicted from the beginning – it may be that your original project idea has proved to not be achievable, it has stretched outside the budget of your company or as time passed the original requirements of the project have become outdated or irrelevant – and it is important to be able to regularly use the feedback of customers, users and stakeholders to adjust the direction and goals of a project.
It is therefore important to have a team that not only has the set of skills required to achieve its main goals but can reevaluate and adapt quickly and lead itself as and when requirements change. It should be able to apply its breadth of skills to whatever evolving challenge your project faces.
A cross-functional team is one that possesses all the skills required to accomplish the goals of the project without depending on anybody from outside the team. Being productive independently means the team can deliver real value frequently and effectively, without external bottlenecks or delays.
It is made up of team members with a variety of different skills. A key benefit of a cross-functional team is its ability to make key contributions or increments to a project, that in themselves add value, without requiring contributions from outside the team. In order to produce work of independent value, to a complex project with many requirements, the team will need a variety of skills, both technical and non-technical. This ensures that whatever challenge is presented to the team, it should have the skills within it to overcome it.
This also means that cross-functional teams are often made up of members from many different departments within a company, or even from different companies entirely. Projects often have requirements that span over several domains. It may be that your cross-functional team needs members from a variety of professional backgrounds to ensure that the expertise is available within the team to progress without consulting anybody externally.
It is a team that is able to adjust regularly, as the requirements of the project evolve. It is able to organise itself to constantly reevaluate and maximise efficiency. It is able to maintain velocity and productivity regardless of the unavailability of different members.
It’s a common misconception that a cross-functional team must therefore be made up completely of specialists in different skills. Some make the assumption that in order for a team to have all the skills available to make contributions of value, they must all specialise in something that is required by the goals of the team.
Indeed, it would be impossible to develop complex software products without some degree of specialism. The nature of complex software development demands specialised skills. Though this is not to say that there should be specific job titles and roles within your team.
In fact, a cross-functional team thrives with members of strong knowledge in one or a few fields, with a breadth of knowledge in a number of others. This gives cross-functional teams flexibility and prevents bottlenecks.
Furthermore, the structure of cross-functional teams encourages knowledge sharing and collaboration, ensuring that members are able to widen their range of skills further. If any members of your cross-functional team do have a narrow skillset, there will be plenty of opportunities to add to their value.
The words that most often follow when talking about a cross-functional team, is that they are self-organised. Although not all cross-functional teams are by definition self-organised, the two concepts do complement each other very well.
Indeed, we see this association in the Scrum Guide, a popular prescriptive framework for the agile development of complex products. When describing the role of the Development Team in the Scrum Team, it is required to be both cross-functional and self-organised.
In much the same way that a cross-functional team should not depend on people or teams from outside of the team to help it complete its work, it should also not depend externally for its leadership. This means that a self-organising team chooses how best to accomplish its goals, based on its priorities and the skills of its members.
This self-organisation further fosters the flexibility and productivity of the team, as the members of the team themselves can evaluate and prioritise the problems they face, rather than being dictated to by external members who may not have such a clear understanding of the challenges they face.
However, this self-organisation is not achieved automatically, simply by putting a team together of various skills. A certain degree of leadership is required, at least initially, to ensure that there are clearly defined priorities within the team, that the processes of the team are sufficiently smooth, and that there are no conflicts of interest between team members of different skills and departments.
The Scrum Guide suggests that the role of the team’s Scrum Master should be to coach the team on how to be self-organised. Though, it is quick to point out that the Scrum Master should not tell the Development Team how to turn the plans of the team into releasable, functional and valuable end-product.
Without a doubt, one of the key strengths of a cross-functional team to a company is its ability to deliver work of real tangible value to a project.
In a more rigid project structure, where teams are divided by their key skills (e.g. a backend development team, a design team) or by department (e.g. financial, customer-facing), work is “completed” by a team when their small part in a larger task is finished and passed on.
This bureaucratic style can often be inefficient and lead to significant bottlenecks, where several teams are waiting on another in order to progress. It also requires a larger degree of administration and management, creating unnecessary blocks in the flow of production. Furthermore, this style of working can have a detrimental effect on morale, as the developers do not see the fruits of their work released until other teams have completed their responsibilities on the same tasks.
Within a cross-functional structure, teams can be given fully formed objectives and features. Using their diversity of skills they will decide how best to achieve what is required of them, and once completed, the team will have the satisfaction of seeing their output released soon. This naturally has a motivating effect on the team, and helps to establish a culture of shared success.
The Scrum framework describes the fully functioning, high-value output of its cross-functional teams as a “product increment”. The team’s completed output increments the value of the product instantly, without depending on external factors.
One of the key features of an efficient and productive cross-functional team is a culture of collaboration. Due to the complex nature of software product development, every cross-functional team must have a degree of specialism to its team members. However, team members mustn’t be devoted entirely to their specialism.
In cross-functional teams, the work that is being developed does not belong to the individuals that are currently engaging with it, it belongs to the team itself. This encourages a high degree of collaboration within the team. There is less “passing on” work to another team member to complete, and more a sense of all members actively contributing to the project as requirements dictate to reach the team’s goals.
These features mean that often team members will be required to collaborate closely on the project to progress certain features efficiently, without too much back-and-forth, often directly pairing with each other on certain tasks. The collaborative environment can lead to a number of other beneficial side-effects for the quality of the team.
One organic side-effect that emerges from the collaborative culture of a cross-functional team is an environment that promotes shared knowledge between its members. While a team member (of a certain specialised skill) is collaborating with another, they see first hand how to perform certain tasks that they are not usually exposed to.
In a team that really promotes knowledge-sharing, with members that have a growth mindset, this exposure can lead to developing valuable skills in a field that they would not naturally consider their own.
Companies can encourage this further by actively promoting pair coding practices (or pairing over any other tasks), code reviews, running internal talks – for example in the style of Lunch and Learn – or documentation or blog posts of how different members of the team perform different tasks.
Not only does this make for an exciting atmosphere for team members to thrive in – an atmosphere where they will expand their skill set, add professional value to themselves and break the monotony of the same work they’ve been doing every day for years – but there will be a valuable benefit to the team. A key issue in any group where members have distinct specialised knowledge and well-defined tasks is that you will develop knowledge silos. These silos can lead to bottlenecks that obstruct the team’s ability to efficiently deliver value and reach its goals.
Imagine a scenario where only one member of a team has the capability to perform a key, frequently required task. If that team member chooses to take paid leave, leaves their job or is sick for a few days, suddenly the productivity of your team is completely frozen, as no work is able to be completed and delivered.
Similarly, imagine a scenario where the work of one team member is equally as important, but suddenly there is a spike in the demand of their specialised skill within the team. Everybody is waiting for one member of the team to complete the work that they are responsible for before they are all able to continue with any other work.
A strong culture of sharing knowledge within a cross-functional team can give an opportunity for others within the team to learn skills outside of their domain, take some of the burden off specialised members and provide a contingency plan for the team to remain efficient and productive despite the availability and demand of individual members.
Another beneficial side-effect that emerges from a cross-functional team is innovation. The fact that cross-functional teams are made up of people of many different professional backgrounds, skills, sectors and departments provides the perfect backdrop for a team that is able to solve problems in new and creative ways. The more professionally diverse the members of your cross-functional team, the more effective their solutions to different challenges and questions will be.
As established, developing complex software is an unpredictable endeavour. As you receive feedback from users or stakeholders on your product regularly, the requirements of your project are likely to change quickly and sometimes dramatically. Having a team that can react to these changing circumstances innovatively can be a huge benefit. Adapting quickly and efficiently without too much planning and discussion can make your development team truly agile.
It is also not difficult to imagine how this culture of innovation can be a huge market advantage for any company. Having a team with diverse expertise choosing their own path to their goals can result in creative, efficient solutions that can add value to your products and your company.
Cross-functional teams are often composed of members from different departments or even different companies, with different perspectives and personal ambitions. This is part of what makes cross-functional teams so valuable, as the differences in experience can lead to innovation and creativity.
However, it can often also cause conflicts of interest, as members of the team prioritise their own ambitions, or those of their department, perhaps even pressured by their direct employers. These conflicts can come at the detriment of other members of the team, and consequently to the team itself.
The best way to avoid these scenarios completely is by establishing clearly-defined goals for the team itself. If the priorities of the project are well defined for all members to see, there can be no misunderstanding of each member’s priorities. Shared priorities encourage a culture of shared success within the team, ensuring that the successes of the team outweigh the wills of its individuals.
Furthermore, these clearly defined goals will allow team members to go about their work with greater responsibility, clarity and autonomy, knowing exactly what is expected of them. Laying out the priorities clearly can leave no doubt about what direction the team needs to go in and can help the team become fully self-organised.
Cross-functional teams work best with close collaboration and minimal friction as work is shared between the team. It is therefore obvious that a cross-functional team depends highly on clear and regular communication.
A key benefit of a cross-functional team is the reduction of bottlenecks, as there is no need to depend on any work from outside the team. However, individuals must be able to clearly articulate their needs from others within the team to ensure that the flow of output is productive and efficient.
The fact that cross-functional teams are often made up of individuals from different departments – or sometimes different companies altogether – adds an extra hurdle to this, as your team might not even be operating from under the same roof. It is important to be conscious of this because obstacles in communication can erase the potential benefits of a cross-functional team. Regular alignments between the development team can add transparency about the progress of different team goals.
To maintain the high performance and efficiency of your cross-functional teams, you need highly skilled and motivated members. How can you ensure that your team is the type of environment that individuals will enjoy and thrive in?
A team that really commits to its cross-functional values will be a pleasure for any ambitious individual to work in. The freedom and autonomy to complete your responsibilities in whatever way you choose is an exciting prospect. There is nothing worse for an individual with specialised knowledge than being dictated on exactly how to complete a task that they understand well.
Furthermore, the opportunity to work in a team which shares knowledge so actively, and encourages close collaboration should attract many skilled individuals. It provides a chance to expand their skill set, add career value, as well as simply adding variety to their day-to-day work.
Cross-functional teams are often associated with “T-shaped” workers: those that have a great depth of knowledge in their area of expertise, but a small amount of knowledge in a variety of other areas. This basic knowledge allows these individuals to support their teammates who might be overburdened, prevent bottlenecks and help the team add value to their project.
However, cross-functional teams benefit a certain type of individual. Those with a growth mindset, who are very motivated and don’t require too much guidance will thrive in the environment. The more the individuals buy into the culture of the cross-functional team the more they will benefit individually.
There are numerous benefits to assembling a cross-functional team to develop your software products. While the variety of skills and professional backgrounds allows your team to react efficiently to the inevitably changing requirements, close collaboration also breeds innovation, while simultaneously upskilling the individuals within your team.
As long as clear channels of communication are maintained, and clearly defined goals are established – with little leadership and organisation – a truly cross-functional team can regularly and sustainably deliver fully functioning and valuable software.
Software es nuestra pasión.
Somos Software Craftspeople. Construimos software bien elaborado para nuestros clientes, ayudamos a los/as desarrolladores/as a mejorar en su oficio a través de la formación, la orientación y la tutoría. Ayudamos a las empresas a mejorar en la distribución de software.