We also started to use the term squads instead of scrum teams and our key driving force became autonomy.Spotify in Spotify engineering culture (part 1)
How to get independent?
Let me now give you some examples of squads getting their autonomy:
- Organization: A squad is organizing itself the way their members want. This is true especially for the agile ceremonies, where some constraints could lead to a specific setup.
- What to build: A squad decides the shippable products they build. This typically the role of the Product Owner. Of course, if agile is at scale, this must be part of a bigger plan and Product Owners have to coordinate on the deliverables.
- How to build: A squad should be able to choose the technologies they want.
- Tooling: They implement specific tools they need, although you may want to have common tools amongst all squads for better coordination Aa bug tracking tool should be shared at the level of a tribe to allow easily to transfer a bug from one squad to another.
- Mocks: if your squad needs something from another squad, it is better to mock it so that you can bypass the dependency if the other squad is late or if they experiencing a bug.
- Testing: Each squad should have its own (automated) tests, which usually needs the implementation of some mocks.
Independent does not mean isolated
Trains are autonomous engine. Each train is independent from each other. Still, there is a coordination so that – if everything goes well – you can have a train connection. This is now where SAFe Agile Release Train (ART) concept become important. At scale, all squads trains are synchronized at least at the level of a Program Increment (PI) which usually last a couple of sprints (I personally prefer using 4 sprints as the duration of a PI).
So, don’t miss the train! Create autonomous but synchronized squads!