Sunday, October 20, 2019

Problems at scale

When you're working inside a single team, alignment isn't hard. You just know what others are doing and when you don't you just ask. It's not too hard.

When there are multiple teams, it becomes a bit trickier. Each team has their own direction. However, try to add partners and suppliers. Each with different motivations and incentives.

Think about it this way: 2 teams want to integrate. Half way through you find out that one team is building a bridge and the other is building a tunnel. WTF is a common reaction. The overall conclusion is that someone needs to take charge.

Then we come to the following common misconception:

Complete alignment - teams do whatever the leader says.
Complete autonomy - teams do whatever.

Alignment enables autonomy.

Image result for tightly aligned loosely coupled

There are multiple ingredients required to reach alignment at scale.

  1. Shared purpose
One wild question pops up: What are you working on and why?
Possible answers:
  • We're working on X because Sam said it's important.
  • We're done when Sam is OK with it.
  • We're working on X because we feel like it.
  • We're done when we don't feel like it anymore
First answers come from alignment and second from autonomy.

Alignments happen at different levels:
  1. x people are working on the same feature
  2. y teams are working on the same product
  3. z clusters work for the same company
To use the first ingredient correctly, all team members need to be part of the same chain of purpose:
  1. we're gathering wood
  2. we're creating a foundation
  • so that we can build a bridge
  • so that people can cross the river
  • so that we can connect the two villages
  • so that we can make life easier for everyone
  1. Transparency
One of the most important questions when aiming for transparency: Who needs what from whom and when?

You guessed it. It's about dependencies.

When you have a complete map of dependencies, you can detect early if you have dependency problems. If you have a centralized tool, you enabled decentralized behavior.

A high level alignment meeting is to talk about these dependencies: scrum of scrums.
  1. Tight feedback loops
Some say agile is like a homing missile.

Image result for homing missile

Single teams have short feedback loops:
  • unit tests
  • sprint reviews
  • daily standups
  • retrospectives
  • continuous integration and delivery
Multi team feedback loops are more elaborate:
  • cross team syncs
  • common retrospectives
  • whole product review
  • component integration on a scheduled basis
  • monthly or quarterly alignment events
    • demos - what have we accomplished from last time?
    • team boards
      • deliverables per sprint
      • risks
      • impact based objectives
The pattern remains the same. Plan monthly or quarterly together and release on demand.
  1. Clear priorities
It's clear that everyone has a lot to do, but not all of these todos have the same priority. It would help to split into impact levels. And then ask: If we could do just one of these 2 things, which one do we do and why?

Higher level priorities should inform lower level priorities. Stakeholder input makes it easier to decide what to work on. Teams are still responsible for figuring how to make the best use of their time.

If priorities are not clear, they end up being reviewed by executives and solved quickly. Remember, management is there to help.
  1. Organized learning
When teams learn together, everything can improve:
  • velocity
  • motivation
  • focus
  • quality
  • release capability
How does learning spread across teams? Through common lunches, cross team retrospectives and team member changes. Teams cannot be too busy for improvement.

If unstable teams mean chaos, too stable teams mean high efficiency, silos and slow organizational learning. Try a solution with a slow drop in efficiency but incorporate organizational learning.

Short recap: Alignment means teams have a shared purpose, are transparent, have short feedback loops, clear priorities and learn together.

Now, who puts the ingredients in? Leaders!

Sometimes we like to pretend we don't have leaders, that leaders are evil and self organization is best.

But, who enabled this self organization?

Call it what you want, but it's a leader's job:
  • to create a shared sense of accountability
  • create conditions that enable teams to align
  • ensure that decisions can be made
Leaders don't have to be a single person. They can be part of a core team.

This is a short introduction to agile at scale. Who enables it, how it works and what ingredients it needs not to fail.

No comments:

Post a Comment