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.
There are multiple ingredients required to reach alignment at scale.
- Shared purpose
- 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
Alignments happen at different levels:
- x people are working on the same feature
- y teams are working on the same product
- z clusters work for the same company
- we're gathering wood
- 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
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.
- Tight feedback loops
Single teams have short feedback loops:
- unit tests
- sprint reviews
- daily standups
- continuous integration and delivery
- 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
- impact based objectives
- Clear priorities
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.
- Organized learning
- release capability
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
This is a short introduction to agile at scale. Who enables it, how it works and what ingredients it needs not to fail.