Number of backlogs and multi-learning 1) see the backlogs

(Originally published by Lv Yi on June 8, 2019)

This is the first article in a series about “number of backlogs and multi-learning”. It introduces three common team structures in product development organizations.

Goal for Agility

Let’s first set the stage for our analysis by clarifying the system optimizing goal. The goal is to optimize for agility. Agility is delivering the highest customer value in an uncertain environment. With uncertainty, the ability to deliver is not sufficient. We need the ability to inspect and adapt in order to deliver the highest customer value. We may inspect and find that the market has changed. We embrace the change and make the necessary adaptation, then we can deliver value. We may deliver our initial idea, then, we inspect the feedback, then adapt by acting on the feedback.

Here is the essential cycle to illustrate.

Inspect-Adapt-Deliver cycle
  • Inspectability

    The ability to inspect is the ability to learn. Learn from the market and customers, learn from feedback, and analyze to gain the insights.

  • Adaptability

    The ability to adapt is the ability to change direction. Embrace the change and decide the next appropriate step - either refine it or make a pivot.

  • Deliverability

    The ability to deliver is associated with end-to-end cycle time. Deliver customer value now; or deliver to learn now so as to deliver more value later.

To optimize for agility, we optimize for either of them or all of them.

Backlogs with various teams

There are various team structures in product development organizations. Let’s see different backlogs associated with them.

1. Functional team and component team

Functional team is responsible for functional work such as analysis, design, implementation, testing. Component team is responsible for the implementation of various components, such as component A, B and C. Each team has its own work and priority, thus, its own backlog. For the value delivery, it requires the work in multiple backlogs, and they are dependent on one another.

Functional and Component Teams

In the above picture, each box is either a functional team or a component team, and each team has its own backlog (i.e. 6 backlogs in total). In the second article, we shall analyze its impact on overall agility and find the lever to optimize for agility.

2. Feature group

A feature group is also called a feature project. This is directly connected to the structure of functional team and component team, thus, more as a variant. A project group is formed to deliver value for a specific market or customer segment. It consists of people from various functional and component teams. Each member has its own work and priority, thus its own backlog. Similar to the first structure, for the value delivery, it requires work to be in multiple backlogs, and they are dependent on one another.

Functional and Component Members

The above picture is actually the same as the one for functional and component team, except each box now is either a functional member or a component member, and each member has its own backlog (i.e. 6 backlogs in total). It is likely that multiple members may share one backlog for some functions or components, but the structure remains the same. In the third article, we shall revisit the dynamics within the functional team and component team, and see how much similarity and difference a feature group has with them, in terms of its impact on the agility and the lever.

3. Specialized feature team

A feature team is responsible for delivering customer value from end to end. There is only one backlog associated with value delivery, i.e. the whole team shares the work and one priority. However, for the organization, there are multiple feature teams, each having their own backlog. They are responsible for different customer domains, hence specialized feature teams. Work items in different backlogs are independent from one another.

Specialized Feature Teams

In the above picture, each box is a feature team, and each team has its own backlog (i.e. 3 backlogs in total). In the fourth article, we shall analyze its impact on the agility and find the lever to optimize for the agility.

Here are all four articles in this series:

  1. see the backlogs (this one)
  2. functional and component team
  3. feature group
  4. specialized feature team

Number of backlogs - the ultimate lever

(Originally published by Lv Yi on Sep 22, 2018)

The number of backlogs is the ultimate lever for agility.

This is the insight we gained from the systems modeling exercises in my recent CLP course. I used to think of two main designs from LeSS: 1) one product backlog, and 2) feature team. I realized that these two were just different applications of the same lever, which is the number of backlogs. Please note that backlogs here include all kinds: product backlog, team backlog, individual backlog, etc. Some are explicit and others maybe be implicit.

How many backlogs do we have in an organization? Does one product have one backlog? Does one team have one backlog? Or, does one person have one backlog? When all teams in the same product share one priority, there is only one backlog for the whole product. When every member in the same team has its own priority (e.g. his priority follows his speciality), there are actually many backlogs even for one team.

When we actively look for backlogs, we will find plenty.

Effects on agility

When we have many backlogs, there are two kinds:

1. Parallel/independent backlogs

Feature teams specialize in customer domains

This is the case when each feature team specializes in one customer domain and has its own backlog. What if there is an increased demand from one of those customer domains? As other teams have their own backlogs, we won’t be able to adapt based on shifting demand and maximizing the customer value.

The more parallel/independent backlogs, the less adaptiveness.

2. Sequential/dependent backlogs

Feature teams specialize in customer domains

This is the case when each component team specializes in one technical domain and has their own backlog. What if the feature requires a change in all those technical domains? As each team has its own backlog, chances are that not all of their work will be in sync, thus the end-to-end cycle time will increase.

The more sequential/dependent backlogs, the longer the cycle time. Eventually it harms the adaptiveness.

Agility means adaptiveness. In short, the more backlogs, the less agility.

Constraints from specialization

Why do we create many backlogs? We want specialization. Why do we create a backlog for each customer domain? We want specialization in the customer domain. Why do we create a backlog for each technical domain? We want specialization in the technical domain.

The more specialization, the more efficiency and the higher quality. It must be good, right? However, it becomes a constraint over time, and harms our agility. When this happens, is it our conscious decision? Most likely not, it is just based on our fast thinking. Instead, we should do more slow thinking here, so as to see the consequences.

Having everyone able to do everything is a sufficient, but not a necessary condition to enable one backlog for a team. Similarly, having every team able to work on any feature is a sufficient, but not a necessary condition to enable one backlog for a product. The key is, there should be no constraints when we say that people or teams have one backlog. When we can not adapt to maximize customer value, we are over-specialized.

How do we reduce the constraints? We learn, and we cross-learn. When we are less constrained by our specialization, we are more agile. Learning effectiveness should become our focus in order to reduce the number of backlogs and to achieve agility.

LeSS or less

How much specialization is over-specialization? It depends on our need. How much agility do we need? It depends on our capability. How much broad learning provides the right amount of challenge for our people?

LeSS provides a reference point for our consideration, which is for roughly 50 people, we want to strive for one product backlog with multiple feature teams. Feature team means that we do not create separate backlogs for each technical domain/component; while one product backlog means that we do not create separate backlogs for each customer domain.

What if this step is too big for us? Our first step could be to combine backlogs for two technical domains/components, or for two customer domains, therefore, have one less backlog. That is the minimum step we could take.

When we reduce the number of backlogs, we increase agility. Indeed, the number of backlogs is the ultimate lever.

The Essence of Scrum

The Essence of Scrum

Unfortunately, many so-called Scrum adoptions keep missing the essence of Scrum. They are too preoccupied with the mechanics of Scrum; process, roles, meetings, and certifications. Or, even worse, they are obsessed with non-Scrum practices such as stories, points, velocity, task boards, or product boxes.

What is then the essence of Scrum?

To me, the essence of Scrum is a simple idea. There is a customer who has a problem that is worth solving and that can probably be solved by developing a product. To help that customer, we put together a team of people who together have or can acquire the skills needed to build that product. This team interacts directly with the real customer to better understand the problem. Together, the customer and the team, decide on the most important first steps in solving the larger problem. The team develops a small, usable product in a short, fixed time to take that first step, solving a small part of the problem. Having reached the end of that first period in time, the team reflects on how they worked and determines how to improve that. The team and customer play with what was created and together choose the best next step. Off they go. This cycle continues until there is no more problem to solve.

The Scrum mechanics have been created to make this simple idea concrete and practical. But successful Scrum adoptions concentrate on the essence more than on the mechanics.

Why is this important?

Most Scrum adoptions would improve by continuously reminding themselves of the essence of Scrum. Is adopting a certain practice going to help us achieve the purpose of Scrum? Regularly asking that question can prevent a team from chasing hypes and instead pursue satisfied customers.

Remaining focused on the essence is even more important in large, complex environments. Especially today when all hype and fancy terminology is aggregated in a large complex scaling frameworks: SAFe. The aim is to integrate everything called agile into one enterprise solution. It includes process, roles, stories, and velocities and expanded the market for resume-improving certifications. But… does it achieve the essence?

Know the difference between Multiple Scrum Teams and Multi-Team Scrum

(this article is part of the upcoming “97 Things every Scrum practitioner should know” by Gunther Verheyen (editor))

When applying Scrum to a product with more than one Development Team, there is really little guidance in the Scrum Guide. The Scrum Guide seems focused on one-team Scrum for the most part. The only hint you get is in the Product Backlog section:

Multiple Scrum Teams often work together on the same product. One Product Backlog is used to describe the upcoming work on the product. A Product Backlog attribute that groups items may then be employed. (Scrum Guide November 2017)

We learn that, with multiple teams, we are advised to still use a single Product Backlog. Nothing is mentioned regarding the roles of Product Owner, Development Team, or Scrum Master other than “multiple Scrum Teams” working on the same product.

But how do you decide over priorities? If we take the Scrum Guide literally, there could be more than one Product Owner in each of the Scrum Teams on that product, or it could be the same person for all the teams involved.

Generally, this is the distinction between “Multiple Scrum Teams” and “Multi-Team Scrum”.

Multiple Scrum Teams

“Multiple Scrum Teams” typically holds that each Development Team has a Product Owner, yet there is a single Product Backlog. That means that potentially different people in the role of Product Owner need to coordinate with each other regarding their individual priorities, and come up with the most valuable items to be worked on.

Sometimes this set-up seems connected to having different specializations in the Development Teams. This works well if the workload on each of the specialist topics is evenly distributed across the different teams - and will stay that way for the near future. If that is not the case (which is highly likely), then one team might end up working on lower-priority, and thus lower-valuable, work for the product, just because that type of work is their specialty.

This setup generally also complicates the transparency of insights into the whole product. Not only is the in-depth knowledge about the product split across the different Scrum Teams, but also across the different Product Owners. After development on particular features has finished, additional coordination is needed on the different partial results of the product in order to have them integrated into a whole product that can be released to the customer and user. Unfortunately a Multiple Scrum Teams setting provides little incentive for cross-team collaboration, since everything will be taken care of by the additional coordination overhead that it produces.

Multi-Team Scrum

In a “Multi-Team Scrum” setting, there is not just a single Product Backlog but also a single Product Owner who works with the multiple Development Teams. The sole Product Owner makes product-wide decisions that are fully transparent via the single Product Backlog, and the product versions created.

This setting demands a cross-functional approach from the teams. Specialization in the customer domain may still happen, but will have to dissolve once priorities and demands start to shift. For example, one team working on accounting functionality will have to shift from accounting features to another type of features if there are no longer any accounting features at the highest priority in the Product Backlog.

This setting therefore lays the demand for coordination with the teams themselves. They have to make sure to deliver an integrated product Increment at the end of every Sprint. Depending on where you start, this may result in a steep learning curve.

Over-specialization and waste of potential

(Originally published on Odd-e’s blog)

boiling frogs

It is natural that people specialize in various things, but when they do it too much, it becomes over-specialization. Over-specialization wastes our potential. We shall try to understand why it happens, and how the adoption of LeSS avoids it.

Eroding goals

Eroding goals” is a system archetype consisting of two balancing loops. Think of any problem as the gap between the goal and the actual state. There are two types of solutions. One is to improve the actual state so that the gap is reduced (i.e. problem is solved), the other is to lower the goal. Over time, this evolves into “eroding goals”, and can lead to a “boiling frog” situation. This is a very simple, but powerful dynamic. Let’s see a few examples at work.

PO specializing in a domain

I have described this topic in the article about “team PO as anti-pattern”. Here we don’t talk about fake POs who are not responsible for the product. The real PO may still specialize in some product domain. This is often a response to the capability gap.

system diagram for PO specializing in a domain

The B1 loop illustrates the solution of lowering the goal. By having more POs, the scope of every PO would be narrower, which requires lower capability.

The B2 loop illustrates the solution of improving the actual state. By increasing the learning, the available capability improves. However, it will take time, which makes B1 loop dominant - the goal erodes. This is what we have observed. While growing a company, each PO gets narrower and narrower scope to be responsible for. Also note that we get more and more POs in this dynamic.

Team specializing in a function, component or domain

Let’s look at the team. Team may specialize in some function, component or domain. They become a functional team, a component team and a specialized feature team, respectively. Specialized feature team here means that it is able to deliver end-to-end feature, but it has its own product backlog only containing features of the partial product, i.e. specializing in a product domain.

system diagram for team specializing in function, component or domain

This is essentially the same dynamic as with PO specialization. The B1 loop lowers the goal by having more teams and each team responsible for the narrower scope, be it function, component or domain. The B2 loop improves the capability, but takes time. This is why we observe that teams get more and more specialized, and meanwhile we get more and more teams.

Individual specializing in function, component or domain

Let’s look at team members. An individual team member may also specialize in some function, component or domain too. They become specialists in the team.

system diagram for individual specializing in function, component or domain

This is actually a generalisation of PO specialization, and we see the same dynamic. Individuals get more and more specialized until they become single specialists. It causes creation of a dynamic (non-stable) team to match the work and ultimately feature group or project in a matrix organization. Likewise, we get more and more people.

This is something I have observed in many organizations. Over time, people specialize more and more, and the company grows bigger and bigger in size, while people’s potential is not fully realized!

LeSS promotes learning

Interestingly and perhaps accidentally, LeSS avoids “eroding goals”.

What causes “Eroding goals” What LeSS advocates
Functional team Cross-functional team
Component team Feature team
Specialized team (own backlog) Generic team (shared one product backlog)
Single specialist in dynamic group Generalizing specialist in stable team
One PO for one team One PO for multiple teams

Which one is better, being comfortable but not reaching the potential, or “painfully” growing and realizing one’s full potential? This gets philosophical and surely everybody has their own answer.