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.

How does LeSS optimize organizational ability to learn?

(Originally published on Odd-e’s blog)

In my previous article on Number of backlogs and multi-learning, I wrote: “agility is delivering 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”. Inspect, adapt and deliver is the essential cycle.

Inspect, Adapt, Deliver cycle

To achieve higher agility, we need to optimize for inspectability, adaptability and deliverability. LeSS optimizes adaptability via one product backlog. LeSS optimizes deliverability in terms of end-to-end cycle time via feature team. How does LeSS optimize inspectability, i.e. organizational ability to learn?

I have been pondering on this question for a while. In the “Fifth discipline” book, there are three disciplines closely related to learning - team learning, mental models and systems thinking. I try to look for insights from them.

Scrum/LeSS has built-in events for product learning and process learning in the sprint cycle. Let’s look at those separately.

Product learning

The most related event to product learning is sprint review. In Scrum, during sprint review, team, PO and stakeholders including users and customers together inspect the current product increment and explore the ideas for improving the product further. In LeSS, with the whole-product focus, there is one sprint review for all teams. Review bazaar is the recommended practice for the joint sprint review.

The sprint review institutionalizes the discipline of team learning for product learning. Furthermore, in order to deepen the learning, we also need the other two disciplines - mental models and systems thinking.

Lean startup popularized the concept of validated learning. First make hypothesis, then design experiment to test core assumptions, then learn from the validation or invalidation. This reflects the discipline of mental model. We make our mental models explicit while making hypothesis, so as to examine and improve them both before and after running the experiments.

Impact mapping shows the logic connection between product goal and features. It explicitly asks to expand the view - who else and how else would impact the goal? This reflects the discipline of systems thinking - in the space dimension. Unfortunately, impact mapping does not highlight the time dimension, i.e. short-term vs. long-term impact.

Business seeks growth and product needs growth engine. This is a reinforcing loop. The growth is inevitably limited by certain factors. This is the “limits to growth” system archetype. I could see the merits in applying systems thinking in the product domain, but I have rarely seen its comprehensive application - through the explicit use of systems thinking tools such as behavior-over-time, causal-loop diagram, stock-and-flow diagram, computer simulation - in the field. It is worth experimenting to leverage its potential.

Process learning

The most related event to process learning is sprint retrospective. In Scrum, during sprint retrospective, team and PO reflect on ways of working and strive for improvement. In LeSS, besides team retrospective (i.e. team does the sprint retrospective on their own), team representatives, PO, SMs and managers will have an additional overall retrospective, which has the focus on improving systems.

The sprint retrospective - both team retrospective and overall retrospective - institutionalizes the discipline of team learning - for process learning. Same as in product learning, in order to deepen the learning, we also need the other two disciplines - mental models and systems thinking.

There is a LeSS guide called “improving the system”. It explicitly recommends doing systems modeling to understand the system and have a conversation to reach shared understanding. As overall retrospective has the systemic focus, applying systems thinking there is a natural fit.

In fact, every improvement action is an experiment. We first model to make our logic behind the experiment explicit for critical thinking. While modeling, the whole team practices “balancing advocacy and inquiry”, and exposes different mental models. We examine those underlying assumptions via “the ladder of inference”, and improve them via reflection. Then, we return to our model and learn more after running the experiment. This is the combination of systems thinking, mental model and team learning.

Conclusion

I find that there are many similarities in product and process learning when they are elevated to a higher abstract level.

Every feature is an experiment; every improvement action is an experiment. Therefore, we make hypothesis (i.e. make the logic explicit) for critical thinking; we balance advocacy and inquiry with the whole team; we examine mental models and reflect on actual results to improve them.

In short, we aim for double-loop learning, rather than single-loop learning, for both product and process, via practicing systems thinking, mental models and team learning.