What is meant by Scaling Agile?
There is a lot written about scaling agile including LeSS and SAFE but as I started learning more about it I think they are designed to solve a different problem than what I am facing. Here is my situation.
I work for a company that has a lot of application teams. Ideally we'd want to switch our focus from project to product and form between 100 to 200 Agile teams to do the work.
I think that when most people talk about scaled Agile, they are thinking of grouping several agile teams together to work towards a common product goal or increment.
In our organization however, our applications are very heavily integrated to accomplish many different purposes. And for our projects the number and list of teams involved varies widely. For example, for our company to launch a new product to our customers, we might have between 20 to 40 application teams working together, each with a small piece to contribute. One team might need to add the new product to our mobile app, another team may need to add the product to some reports, another team might have some complicated business logic to perform around the billing for the product, etc. And then for the next big project, we typically would have another group of 10 to 20 teams, some the same but some different from the previous 20 to 40 teams.
In other words, we don't have big products that need continual improvements and releases like say, the Microsoft Word development team, or the Netflix video system team, or the Amazon teams that work on their shopping website.
We have a number of front end channels (mobile apps, websites, physical stores, call center) and a number of back end systems that interact in a many to many relationship.
Because of this, I am struggling to not only define teams by Product, but also to figure out how to group them so that we can scale. Our current portfolio of projects (which I know needs to be converted to a various backlogs grouped by product) has around 500 active projects (yes, I know that is a lot and we need to reduce WIP) and there simply isn't a nice division to create and group teams such that they would have the appropriate scope to complete the projects. I'm struggling to put this into words, but basically, if we gave it our best shot and came up with a group of say10 teams that we thought could get a lot done, I am sure that some items in the backlog would require 12 teams so we'd need to reach out to others while other backlog items would only need 5 teams and so half of the teams would be idle and so on. It would be tough to find a consistent work that would keep all 10 of these teams busy and we'd constantly be reaching outside of these 10 teams. And the applications are diverse enough in terms of technology, programming languages, required business knowledge, etc that we can't expect any given team to be able to work on more than 2 or 3 applications. And I don't think we can put all 100-200 teams into a SAFE or LeSS model since they are definitely not all going to be working on the same things.
Part of the problem is that some of our applications are horizontal and some are vertical. For example, applications that are designed to handle the processing of a single product are easy...we can put an agile team on that system and they know what product they support. But the team that runs the company's Customer Master system end up getting involved with projects that span nearly all of our company's products since nearly all of our products have customers. Likewise, our Sales and Servicing Systems need to be able to sell and support all of our products. I'm sure that this situation is not unique to our company.
It seems that LeSS and SAFE are geared towards scaling large groups of people to work on the same product. Do you agree with that?
And if so, what is the best way to organize large numbers of agile teams that need to coordinate with a varying list of other Agile teams on a regular basis spanning multiple products?
Have you established a Scrum Studio yet, and encouraged teams to self-organize around the work the Studio engages in?
I had not previously heard of Scrum Studio. Thanks for mentioning it.
Can you please answer the heart of my question, which is this:
Q. Are things like SAFE and LSS designed to scale Agile so that multiple teams can work on the same product (i.e. a Many to 1 Relationship (many teams to one product)?
Or are they designed to facilitate multiple teams that need to collaborate to work on multiple products (i.e. a many to many relationship)?
In general, scaling frameworks help manage integration dependencies between teams, should a product or suite of products have them. That's potentially many-to-many.
Two things to bear in mind:
- It can be argued that wherever integration dependencies exist, they ought to be made transparent and manageable to all teams via a common backlog of the affected work. This can be seen to imply the existence of a single logical product (hence potentially reducing the challenge to many-to-one).
- The skill lies not so much in "scaling agile" by means of a framework at all, but rather in first descaling problems so that teams work autonomously without dependencies (potentially reducing the challenge to one-to-one).
In simple words, the major purpose of Scaling is to manage dependencies among multiple teams working on the same product Backlog.