1. The background
Did your team encounter the following questions during development:
- The team is growing, the r&d team is busy, and customers are still complaining about “what they want is not done yet”.
- Constantly being disrupted by sudden demands, working overtime and coordinating resources
- Products/features do a lot, and the number of users, active lack of growth is slow
Then, you need to know about Feature Team, which provides a new way to ensure products respond quickly to the market without being tied down by the company’s lengthy development system
2. What is Feature Team
2.1 Basic Concepts
Feature Team: A feature team, is a long-lived, cross-functional, The cross-component team that completes many end-to-end customer features — one by one.
Feature Team Some of the material is translated into Feature teams, or Feature teams. The Feature Team is a long-standing, cross-functional, cross-component Team that implements many end-to-end client functions one by one.
Feature Team has the following features:
- Long-standing, team members stay together to maintain unity and work efficiently; Over time, they deliver feature after feature.
- Across functions and across components
- Members of the same development team are located in the same physical location, allowing face-to-face collaboration between team members.
- Built around the same complete customer-focused feature, it consists of a multi-functional mix of multi-skill members (such as analytics, programming, testing, etc.).
- It is usually made up of technical specialists
- In Agile, usually 7±2 people
2.2 Feature Team is a fully functional cross-component organization
A full FT Team consists of professional members who perform user value functions, come together, and share responsibilities and goals (some organizations have a common OKR).
advantage
- Simplified plan
- Efficient communication
- Accelerate the time to market
- Deliver complete functionality with user value at the center
challenge
- Organizational structure support
- Members face resistance to change
- Long learning curve
- Need for more tools (such as CI)
impact
- Team responsibility
- Drive teams to produce better code and higher-quality design
- Reduce waste
- Promote team learning
Due to the “user value as the center”, is no longer considered “delivery is finished,” rather than “always choose the user value of the larger”, “to the implementation of the product as soon as possible/function can reuse the reuse”, “continued fast delivery makes focus on the stability of the completed function, quick fix the BUG”, prompted the team to produce better code and the design of higher quality.
To reduce waste, THE FT team always has a limited selection of valuable features and always completes and delivers feature after feature. In a traditional R&D organization, multiple teams work together. In the same iteration, it is inevitable that each team has different workload saturation levels, and the dependency of each team’s deliverables increases a lot of waiting events.
To promote team learning, the FT team should be set up to complete the complete end-to-end function, and put forward higher requirements on the skills of members. In order to reduce the dependency between components, team members are required to actively learn more required skills
3. Choose “Functional Team” or “Functional Team”
Choosing a team structure starts with the business
What should we do when building an Agile team?
- Should we split the functional elements of the product vertically so that value can be delivered more quickly with little dependency?
- Should we divide functionality into a set of reusable components to ensure stable, high quality and scalable system parts?
The choice of “functional team” or “functional team” is based on the business. Consider the form and division of the company’s business, and then consider the form of organizational structure according to the business. Business segmentation is discussed from both horizontal and vertical perspectives.
The level of segmentation
Concept: Horizontal slices tend to be broken down in terms of technical implementation, and these layers closely match the technical skills of team members, such as UI team, front end team, and back end team, each responsible for their own tasks.
It’s like a cake with many layers, the bread layer at the bottom, the cream layer in the middle, and the little fruit on the top. This is the structure of the traditional technology stack team, the functional team of the professional line.
Vertical segmentation
Concept: Subdivide a user story into smaller user stories. These individual smaller user stories still work, are software that can be demonstrated or specific features that are useful to users.
Just like cutting a cake, cut vertically (cut vertically), each cake has strawberries, cream and bread on it.
Horizontal shard, or vertical, is the way we look at our business. Comparing the two situations, we can see the characteristics of the FT team.
The FT team has all the skills to execute tasks and get the job done. For example, a functional team includes product managers, APP developers, and back-end developers.
Component team
The component team’s main area of focus is on a specific component or set of components of a system. Leveraging their technical skills and interests, they focus on building reliable components to provide reliability, separation of concerns, promote reuse, and improve testability.
The traditional approach is to logically break the product down into components (e.g., UI design, web part, Java side) and assign them to the component team that makes up the component. However, these components are completely irrelevant from the customer’s point of view.
Biggest drawback of component team organization: It slows down the value stream. In most cases, there are dependencies between components that require teams to work closely together to build, deploy, and eventually release. Teams spend a lot of time talking about inter-team dependencies and cross-component testing behavior rather than delivering end-user value.
FT team
The FT team has all the skills to execute tasks and get the job done. For example, a functional team includes product managers, APP developers, and back-end developers.
The FT team approach has become the accepted approach of agile team organizations, especially in the continuous delivery approach, which emphasizes features that can address user needs, often speeding up the delivery of valued user value features or software, and shortening feedback loops from real users.
4. How to transition to the FT team
FT teams need more tool support, CI continuous integration tools are the basic guarantee, automated testing and TDD are often used. Conflict resolution in the merging process of branches requires a strategy. Multiple feature teams work at the same time, which poses great challenges to branch management and version release.
When transitioning from traditional teams to FT teams, different team organizations require different strategies. In general, gradual transition is a safe and slow approach, where the first FT team is built from an existing organization, and then a second one is created after performing well. Good performance here depends on the organization itself and reflects the organization’s satisfaction with the team’s performance.
5. To summarize
FT team in product research and development of a rapid response to market research and development way, choose to FT team or component team, there is no standard solution, some Scrum organization recommends using the hybrid model, the model contains the FT group or component coexistence, professional line of component team as a big resource pool to use, but it also contains two modes shortcomings. In a word, we need to make choices according to our own circumstances.