Andrew
Burak
CEO at Relevant

Feature vs. Component vs. Product Teams: Structuring a Product Team

#Product label

You’re ready to scale your product team. The signs are there. Your employees are drowning in a long list of user needs and requests, and your hardworking project manager looks like she’s just about to snap. Plus, the market is ripe for a new addition to your product line. 

Scaling software teams requires more than just team management tools or even hiring new project managers. There are many factors to consider, from the number of individuals to include in each team to the type of structure to ensure efficiency. You may even have to consider how distributed agile teams can help you.

That’s where Relevant steps in. We help startups build their own dedicated software development team, leveraging an agile team structure to help them scale faster. In under a week, we can get tech specialists of any seniority. All you need to do is decide on the team structure: feature teams vs. component teams vs. product teams.

Read more to learn about how various team structures can help accelerate your scaling efforts. 

Product teams

A product team is a team responsible for creating and implementing roadmaps, developing product features and functions, and executing strategies, among others. It is made up of people who turn concepts and ideas into reality. 

3 ways to structure your product team 

Product teams are the driving force behind successful products. Clear ownership and defined roles pave the way for better results.

 Here are three ways to structure product teams.

One product manager per product 

This structure assigns a product manager (PM) for each product or feature. The PM takes responsibility for all strategic aspects, which may include marketing, forecasting, budgeting, and product development.

As straightforward as it may be, this product team structure still involves complex decision-making. You’ll have to figure out the number of developers and designers to assign to each product or feature. You’ll also need to decide just how much autonomy to grant the project managers. Will they be allowed to release their team’s work directly to the market, or will they have to run it by top management? Will they be reporting to a business unit manager or a newly created senior-level product position?

Assigning the product managers’ responsibilities by their skills

In this structure, the product managers’ respective skillsets take center stage. You may assign one PM to head marketing research and another to handle budgeting. Both will be working on all products. 

In practice, this may come in the form of a balanced product team made up of a design product manager, a technical product manager, a business product manager, and a growth product manager. 

The main advantage of this arrangement is that it elevates the domain expertise of the teams. Problems arise when a product manager leaves, as that could cripple the team and undermine all the products.

Product team structure

Product managers work closely with a cross-functional team

Spotify’s product squad best exemplifies this type of structure. The highly popular Spotify squad model arranges each product team into a small group of developers and a product owner. The cross-functional product team works on a specific functional area, developing domain expertise that can be used for multiple products. 

What makes this model stand out is that the squads are granted considerable autonomy. They can release their work to the market without having to consult with any stakeholder. This spares them the bottleneck of red tape. Each team can produce code, test it, and push the updated functionality to the live product. 

How to Tap Into Global Talent Pool to Fill Tech Positions Faster
In this ebook, you'll learn how to solve your tech talent shortage by tapping into the global talent pool.
Download the ebook

The Spotify model can result in much more efficient product development, faster development cycles, highly knowledgeable and specialized teams, and successful products with impressive functions.

Another example of this structure is Amazon’s “two-pizza” structure, which subscribes to the principle that no team should be so big that two pizzas won’t be enough to feed them. The goal is to keep the teams lean and agile. Not all Amazon teams are as autonomous as Spotify’s squads. Often, they still have to get the approval of top management before they can move forward with an idea.

Traits of high-performing product teams 

More than just a company’s technical pillars, product teams must be the voice of the customer. They must take the customer-centric position while others are engrossed in chasing profits and building cool products. At the helm of a successful product team is a product manager who is empowered and autonomous. She should be able to take ownership and have enough room to innovate and take some calculated risks.

Although largely autonomous, product teams should still keep their eyes on the big-picture company mission. They should have a deep understanding of the overarching objectives, so they can work toward the overall company direction even as they are buried deep within their specific domain.

Product managers are expected to have top-notch people skills, but they are not granted the same authority as top executives. Instead of barking orders, they have to rely on influence, respect, and charm to persuade other teams or departments to work according to plan.

High-performing product teams foster transparency and visibility across the company. They should be able to provide:

  • Consistent metrics and progress reports
  • Communication of their capabilities and competitive advantages
  • A clear roadmap of product development and how it’s meeting the company goals

Product teams must be made up of top performers who are continuously improving. Keeping communication lines open, they must always welcome suggestions and feedback. Simply put, they must be the ultimate team players, all while staying decisive and capable of sticking to plans.

Component teams

A component team is a team that focuses on developing one or more parts of the product instead of an end-user feature. These areas of focus are commonly known as components, which can be likened to the parts of a machine that plug into each other. For example, one component team may work on the database (DB) while another works on the user interface (UI). 

The component team is cross-functional and agile. Its members leverage their skills and expertise to build components that allow for reliability, reusability, and testability. 

200+ companies from 25 countries outsourced software development to Relevant

We provide companies with senior tech talent and product development expertise to build world-class software. Let's talk about how we can help you.

Schedule a call

A common approach is to break down the product into logical components, then assign teams to them. The disadvantage of this arrangement is that the component-centric approach does not always consider the end-user experience. It also slows down the value flow. Instead of delivering end-user value, the teams may devote much of their attention to testing behavior between components. They may also spend too much time discussing the dependencies between teams.

When should a component team be used?

Component teams are your best option if you’re dealing with components that use legacy technology, serve algorithms requiring deep theoretical and technical expertise, and are responsible for security and compliance. This is also your ideal approach if your employees are unable to work full-stack, your lead times are acceptable for your customers, you’re able to ensure a balanced workload, and you won’t have any problem integrating the components.

Feature teams

Instead of focusing on components, Scrum feature teams work on end-to-end customer features. Also cross-functional, this long-lived team is made up of full-stack or multi-disciplined individuals who can work across various areas of the system. 

feature team structure

Feature teams are structured around user-centered functionalities, completing features from the product backlog one after the other. They’re typically made up of one project manager, one designer or UX specialist, and two to ten developers or testers. Feature-based engineering teams implement predetermined features, complete with a roadmap defined by senior project leaders. The downside of feature teams is that they may lack the needed domain expertise.

Feature team roles

A single feature team should be capable of delivering the entire business functionality. To perform well, the team members should either already have the necessary skills and knowledge or quickly acquire them. 

In an agile team, members take turns to fill the roles of:

  • Architect
  • Software engineer
  • QA engineer
  • UI/UX designer
  • Integration expert
  • Database administrator
  • Business analyst

There is rarely a person who is responsible for only one role.

Ideally, the team comprises seven members (plus or minus two members) who stay together throughout the project. In many projects, however, the feature team’s size widely varies depending on the complexity and size of the domain area they are handling. 

When is the feature team useful? 

So, should you be dividing the teams by feature vs. technologies? Feature teams are especially useful for projects that emphasize end-customer requirements and shorter cycle times. Focusing on features that solve user needs, they accelerate value delivery and speed up the feedback loop from actual users. They’re your ideal choice if your employees work full-stack, your customers want optimized lead times, and you’d like to focus on the most valuable items.

Feature teams vs. component teams explained through an example

While component teams focus only on part(s) of a feature, feature teams are responsible for the complete customer-centric feature. The former focuses on delivering the maximum number of lines of code, while the latter is optimized for providing maximum customer value. 

A focus on components leads to dependencies between teams. Emphasizing features, on the other hand, allows for more flexibility. While the component team assigns clear individual responsibilities, the feature team has shared team responsibilities.

For example, a couple of teams may be working on a bank’s mobile application. They are expected to work on the following backlog items during a two-week sprint journey: 

  • Viewing cash account balances
  • Viewing term deposit balances
  • Viewing interest rates
Source: http://less.works

The first team – a feature team – approaches the backlogs by thoroughly discussing the solution and breaking down the items into granular tasks. They start working on the first backlog item as a team, working on the UI and creating a mock screen in the mobile app. They learn early on that they need to build a microservice capable of fetching account balances from the core banking system (CBS). 

The CBS runs on proprietary technology, and only one member has experience working on it. This slows down the team, but they continue working on smaller tasks while learning about and making changes to the CBS. Although not without frustrations, they can complete the new microservice and finish the first backlog item.

Why these 200 tech companies & startups outsource to Ukraine
Download the whitepaper

The team revels in the sense of accomplishment and newly gained knowledge. The setback, however, makes them unable to complete the third backlog item. But they are able to complete the second item, leveraging on what they’ve accomplished on the first item.

The second team – a component team – also realizes they need a microservice to pull the account balances from the core banking system. This results in dependencies on other component teams. They discuss it with the relevant teams, eventually ensuring that the micro-services will be delivered by the middle of the two-week sprint. 

The team then starts to work on the UI design, also creating a mock screen in the mobile app. After a week, they start to follow up with the other teams, asking for the microservices. They learn that the deliverables were deprioritized and would not be ready until the end of the sprint. The team is forced to work on other tasks, half-heartedly designing the UI for the second backlog item. The microservices are finally delivered near the end of the sprint, but the team encounters issues during integration.

By the end of the sprint, the feature team is able to demonstrate finished work for two backlog items, while the component team is forced to face the ire of their client.

Balancing feature and component teams

So, what’s the verdict on this component vs. feature teams conundrum? To maximize output, it’s best to draw on the strengths of both the component and feature teams. An approximate mix of 20-25% component teams and 75-80% feature teams appears to be optimal. 

While the feature teams bank on the efficiency of an agile team structure, the component teams can contribute greatly to ensuring technical integrity. The components the latter produce can also be reused, allowing the project to save some money. 

Choose Relevant

The right balance between feature and component teams provides large-scale agile development with the optimal efficiency and velocity it requires. You get to benefit from fewer dependencies and higher value throughout.

Allow us to help you with your own IT team extension. If you are a startup looking to scale, we can 

On top of that, we cover hiring, team building, and integration of the team into the development process. So don’t hesitate to contact us today, and let’s build your team together.

Written by
Andrew Burak
CEO at Relevant
My company has helped hundreds of companies scale engineering teams and build software products from scratch. Let's connect.

What are you looking to do?

Do you want a price estimate for your project?