We frequently hear about organizations who have had good success with Agile at a team level – good productivity gains, higher quality code, good morale – but then they have problems getting Agile to work “at scale.” They have a hard getting collections of teams to work together. They don’t see the hoped-for impacts on the bottom-line across the portfolio of work to be done.
In our consulting work and our dialog with other consultants, we have learned that success at scale requires attention to four essential aspects:
- Actively managing the product portfolio
- Delivering work to the team
- Intentionally managing the web of relationships with multiple stakeholders and teams
- Attending to the final integration
All four of these are critical for success in product development. They each affect the other. Of course, you apply as much of the model as you need while knowing the bigger view so you can see where you are going. Below are notes about each of these.
- Product Portfolio Management. How do you ensure that teams are working on the right things?
- Managing the Web of Relationships. Larger, more complex the organizations usually need to have different people managing the relationships:
- Someone who is looking after the interests of the Business Stakeholders and executives. (This is often called a “Product Manager” and we call it “Business Product Owner”)
- Someone who is focused on driving teams (This is often called a “Product Owner”)
- Delivering work to the team. Creating the context and loading the teams.
- How do you manage the Work-in-Progress so that teams are loaded in a way that work will flow at pace that is sustainable, efficient, and constantly delivers value. This involves a systems-orientation.
- An issue here is getting them to collaborate effectively. Scrum of Scrums is one approach that Agile teams have tried for collaboration among teams but it has met with only limited success. This is because teams are naturally “tribal”
- A more successful approach is to set up the system in a way that reduces the amount of collaboration that teams have to do. The webinar discusses approaches to do this using a common backlog.
- Final Integration. What are the most significant constraints we face in software development?
- Usually, they are at the end of the process: integration and testing. Think about these early in the process. The main
- Constraint: The ability of teams to stay in sync? If they can stay in sync, then final integration should become easier.
- Dynamic Feature Teams is one approach to address final integration and staying in sync. The webinar will present a case study how this works.
Learn to see: Beware of your biases!
In the mid-1800’s, Ignaz Semmelweis discovered that hand-washing could reduce mortality rates in childbed fever to below 1%. Yet, despite repeated demonstrations and publications, the medical community rejected his ideas because they conflicted with the established scientific and medical opinions of the time. They did not yet know about germ theory. See http://en.wikipedia.org/wiki/Ignaz_Semmelweis
In some ways, we are like that in software development. “Flow” may be one of those essential laws in software development that we do not yet understand. And so we have more complex approaches.
Things may not be self-evident but once they are pointed out, they become intuitive.