What if world-class defender Joshua Kimmich could not score the goal if the situation came up just because he is not a striker?
What if Lionel Messi would let the ball pass because he is not a defender?
What if goalkeeper Manuel Neuer had not done that long-shot pass that led to a goal?
To most people, the situation is clear: totally fictional questions.
Of course, players in a soccer team adapt to conditions, have a shared understanding of the game, and share values (score goals, prevent goals from the other team).
Wouldn’t it be good for a software development team to act similarly?
Desire to understand
Imagine a stream-aligned team with a broad set of values and a relatively sizeable shared skillset. Just like a soccer player is (usually) able to shoot and dribble a ball, a member of such a software team should be able to participate in discussions cognitively, follow the thought process, and understand the value each team member brings to the table.
The best teams I have worked with were not the ones with the craziest individuals. It was the team that consisted of like-minded peers who were not afraid of touching one other’s crown.
One of the great quotes from that team was:
How hard can it be?
This is the attitude we need: To understand what the team is doing.
Playing the SDLC Game
Take the following picture:
This is an early version of my soccer-field adaption to Emilie Freeman’s great visualization in her talk “Rethinking the SDLC. that illustrates the responsibilities of a cross-functional software team:
Architecting
Developing
Automating
Deploying
Operating
as sections on an imaginary soccer field where team members play their (SDLC-) game.
No one should avoid actively participating in any section, just like Kimmich would not stop running into the opponent’s penalty area.
The Cross-cutting attributes:
Testability
Reliability
Flexibility
Observability
Securability
Scalability
are modeled as pass-routes. You cannot score a goal without cleverly passing the ball across the field.
Likewise, you cannot build a successful software team that does not embed the cross-cutting attributes into every aspect of their “SDLC”-Game.
Follow-up Questions
As an early-stage model, this is more an idea than a fully fleshed-out concept. But I think it serves well as a motivation for further discussion:
Can we expect this level of shared consciousness from software teams?
Are soccer teams even remotely comparable to software teams?
What is the role of the coach here?
Have a great week,
Toni