Are cross-functional teams and generalizing specialists key to successful agile product development?

Cross-functional teams have become popular in recent decades for the benefits they bring. They are often mentioned in agile as a standard of forming teams. Let’s dive in to what exactly is cross-functionality, what’s the caveats and to what situations it’s worth to set-up a cross-functional team.

In general there are two main types of teams based on their organizational-functional properties: functional and cross-functional. Functional or divisional teams are teams consisting of team members from the same functional area, such as marketing, product development, and operations. Cross-functional teams or interdisciplinary teams are consisting of team members of different functional areas. For example, a cross-functional team may include members from operations, sales, marketing, finance, and legal. In software development typically a Scrum team can consist of software engineers, testers, graphics or UI/UX specialists, etc…

There is nothing new under the sun

Cross-functional teams are not new. Teams made up of members from different departments have been around for a long time! Northwestern Mutual Life insurance company pioneered their use in the 1950s when the CEO of the company brought together people from the financial, investment, and sales divisions to discuss ways they could improve client services1. The result? A truly cross-functional team that laid the foundation for the company’s future success. Although the idea of cross-functional teams was originally developed within the corporate context, a number of small organizations/startups, but also large organizations are increasingly using this approach. 

For agile approaches cross-functionality is nothing new. The Scrum guide (2020) defines cross-functionality as the team having “all competencies needed to accomplish the work without depending on others” and specifically mentions that the Scrum master should help the team to be cross-functional. Agile promotes cross-trained teams that are able to work independently. “The idea of cross-functional teams is fundamental to Scrum; the team needs to include every-one necessary to go from idea to implementation.” – Mike Cohn, Succeeding with agile software development using Scrum 

Let’s see what are the differences, pros and cons of functional and cross-functional teams.

Functional team

Functional teams (FT) tend to be highly specialized and lack the diversity of knowledge found in cross-functional teams (CFT). FTs can be more effective if they are focused on a specific area or work that needs to be done. Some research shows that in a FTs members tend to compete among each other. In a CFT environment, the teams compete among teams.


  • more in-depth knowledge about a specific functional area concentrated in one place
  • good conditions for sharing of knowledge among experts
  • juniors can grow faster as they are in a team with other experts with the same functional area
  • good conditions for adoption of new approaches or technologies that are specific for the functional area of the team
  • hand-overs among team members from the same FT can be easy as they are from the same functional, so they understand each other better
  • in case one of the team members are not able to work it is easy to take over the missing team members work by another team member


  • the team can be detached from the overall goals of the product/organization as isolated teams tend to have hard time to understand the big picture
  • in case the team is collaborating on a work task that involves other teams the waiting time on other teams can create bottlenecks 
  • for the team members it is hard to understand the view points of team members from other functional areas

Cross-functional team

The strength of cross-functional type of team lies in its members having different functional backgrounds, education, and experience. This diversity of knowledge can provide creative solutions to the problems facing the organization. These solutions can then be implemented quickly and effectively. Teams like this also don’t need to wait for other teams to finalize a work unit. The best cross-functional teams have all the members that are needed to finish a standard work task. These types of teams are particularly effective when they tackle complex challenges and projects that require a wide range of knowledge and skills. 

Functional teams perform best when working on a well-defined task with established procedures, cross-functional teams perform better on more complex tasks. The ideal situation for a cross-functional team is work that is complex and needs specialization from multiple areas. 

This type of teams make it easier for team members to see the bigger picture because they cooperate with other team members creating together a complete work item, not just a part of it.

They make it easier to gain buy-in from other teams in the organization because they understand more about what they work on. The team engagement tend to be higher as they can see more context of the goals they are working toward. Team members who are engaged at work are more motivated to achieve organizational goals and contribute to the success of the organization. 

Jon Katzenbach and Douglas Smith in their book “The Wisdom of Teams” describes a team as a “…small number of people with complementary skills who are committed to a common purpose, performance goals, and approach for which they hold themselves mutually accountable.” According to them a team has to have complementary skills. The team should have the right mix of competencies in: technical or functional expertise, interpersonal skills, problem-solving and decision-making skills. When we are talking about cross-functionality then we are talking about complementary skills in all of these areas. People usually think of a team competency to form cross-functionality in the area of technical or functional expertise. Although definitely this is an important part, but nevertheless is still just one of the part of the needed competencies. You can have a bunch of experts in different areas, but if no one is able to a decision, then there is no outcome. So, cross-functional teams should consists of team members that are not diverse in area of expertise, but also in interpersonal skills, problem-solving and decision-making competencies. 

There are some drawbacks to having cross-functional teams as well: Cross-functional teams can be less efficient than functional teams in solving specialized type of work. They take longer to start up because it takes time for team members to get to know the tasks they will need to solve, analyze the solutions and implement them. Cross-functional teams are not universally applicable for every environment. If the work is single sided the expert from the team tend to be over-stretched while other team members are stalling, waiting for work, but more about that later. Now let’s see the pros and cons:


  • reduce the production cycle time – more lean as the waste of waiting on other teams are eliminated
  • there are no hand-offs between teams as everything is done inside the team
  • better collaboration between experts from different functional areas in the same team as they collaborate often and tend to know each other expectations and problems
  • team is more flexible to take on multifaceted challenges
  • team understands better various aspects that needs to be thought about when facing a task, eventually they start to be more generalizing specialist (at least via osmotic communication)
  • the team is not living in a “silo”, but tend to better understand the vision of the product/organization
  • they tend to be better at innovative solutions – diversity creates better ideas


  • difficult to set-up and have a balance between competencies
  • some team members can stall if the member is not a generalizing specialist
  • there can be expectations from the team that they can solve all problems they face
  • to many differing opinions can lead to problems if there is no decision capability
  • experts that are in their routine could resist joining a cross-functional team
  • some team members can feel that they cannot grow as there are not directly in contact with experts from the same functional area

One versus the other?

I hope you can see that it is not one vs. the other. Different environments are more suited for one or another type of team. Both types has their pros and cons. You need to take in to account this when panning and forming a team. The cross-functional team is not a silver bullet that shoots all the problems. In my context of creating software products the preferred way of work is cross-functional. I recently asked my PO and PM collogues to indicate on a scale what kind of team would they prefer. They strongly leaned towards more cross-functional teams. I believe all companies should strive for cross-functional teams for better results whenever it is relevant and reasonable.

I think that the most important decisive point is to evaluate the level of multifaceted challenges that the team would face and form a team according to it. There are various measures of cross-functionality. You can have a team where among all developers there is just one UI/UX expert and it is enough. In other teams, in order to have a good performance, you have to have a team with a multitude of functional experts. This level of multifaceted challenges depends on the outcome that the team should produce. If they are working on a module of a system or they are working on the system as a whole. What should be the output of the team can be connected to that how large a team should be, because if the team is composed of 30 members it won’t be efficient and have good performance. Smaller teams tend to work better. Alongside the ideal team size the logical splitting of the product should be taken in account. If the product is possible to split to logical units and the cross-functional teams for them would not consist of more then the ideal number of team members, then this is the right way to go.

Balance out cross-functional team members skillset

Another aspect is to make sure you would have enough work for all team members. You don’t want to have a DB expert fully dedicated to one team if he has tasks just once a while. The DB expert can be then part of multiple teams to have more work, but this defeats the main point of cross-functionality as the DB experts starts to be a functional expert in two teams. Also this is creating the need of a waste type of context-switching from one team topic to another. This lowers the productivity. A better way then this is to balance out the team member skill set in the cross-functional team and let the DB expert also build knowledge in other areas.

To solve the cons of a cross-functional team mentioned above you have to let the expert to build knowledge in other areas. Strive to have team members that are “generalizing specialist” or also called as having “T-shaped skillset”. Complementary skill sets in the team is necessary, but what to do when a team member is not able to work? Or as mentioned, you don’t have enough work for the team member? The answer is not to take purist experts from each functional area that is needed to finalize a work item, but to have team members that are generalizing specialist. A generalizing specialist is an expert on one area (vertical line from the “T”), but has knowledge of other areas (horizontal line form the “T”). E.g. developers can also have knowledge on DevOps or testing methodologies. In case there is not enough work they can do other work, to avoid expert stretched to much. Other can take over at least some simple tasks.

Please don’t go to crazy with this. There are full-stack developers, but don’t ask them also to do UI/UX, graphic design, copywriting and also DevOps, etc… As a PO I was doing copywriting, designing UI/UX and graphics apart from the usual filed of PO expertise. I bet users and designers have fun now looking through those products 🙂 You have to find the right balance also in the additional skill-sets of the team-members.  

How an iterative approach can work with functional teams

If you are in a situation that there cannot be a cross-functional team and you need to work in iterations there is also a way. Usually not all teams are totally independent. Here’s an example (by Lynn Miller) of cooperation of two different teams during multiple iteration.

At first the teams need to align and prepare some customer data to have enough work for the UI/UX team. This can be done in Sprint 0 or if you use some scaled framework then during the product increment planning. When Sprint 1 starts the UI/UX teams has enough data to start the work that will be implemented in Sprint 2. Meanwhile the developer team focuses on tasks where the UI/UX inputs are minimal or not needed at all. During the second sprint the DEV team has enough material to work also on UI/UX intensive tasks and the UI/UX team can test the results of the first sprint and prepare inputs for the next sprint.

As you can see there is coordination needed during this process. At the beginning to plan the next product increment, but also in case there is a change (and there’s always a change) close cooperation is needed between the two teams. Anyone who worked in a scaled level can confirm, that to have all the teams coordinated when the tasks are re-prioritized, delayed, and changed is a large source of stress. At first you map the dependencies and then you have to be on the lookout if something changes. You play the game during the whole product increment. More the teams are cross-functional, less there is need for cooperation with other teams. This can potentially cause wait time, hand over and can produce waste. Not everything is possible to do in one team, but there should be some ideal measure that is reasonable and doable. Otherwise you end like this:

Meme created after a PI planning

References and interesting reading

  • (1) Cross-Functional Teams –
  • What Are Cross-Functional Teams? Everything You Need To Know –
  • How to Build a Cross-Functional Team –