Pep Guardiola and Positionless Software Development

Introduction

In football (soccer), there are formations. Formations represent a structure on the pitch (soccer field). They refer to positions that players take up on the pitch. An example would be a 4-3-3 formation, which represents four defenders taking the far rear, three midfielders in the middle of the pitch, and three forwards attempting to infiltrate the area near the opponents goal (the goalkeeper is never represented in the number set and is always understood to be present in any formation). These set of numbers also represent a tactical approach, a conceptual ideology of how the game should be played. But with the advancement of philosophy of play and the revolution of deeply thought out tactics, modern football has been defined by what is referred to in Spanish as juego de posición or ‘positional play’, which dispenses of the idea of rigid formation and roles and thinks of the game of football as interchangeable pieces. The height of modern football demands that the player understand that a position and a role are only a point in time, a reference point to the situation they find themselves in, and can be interchangeable with any other player on the pitch in order to create an advantage. I propose that this is also the ideal way to develop software.

A role is a point in time

Let’s understand this scenario: There is open space near an opponents goal. Imagine this is caused by all three forwards occupying individual defenders and drifting wider and wider, pulling the defenders with them and towards the touchline on the far ends of the pitch. In this scenario, how should the team react? Should the midfielder stay with his responsibilities and continue to occupy space in the middle of the pitch, away from goal, waiting to act when he receives the ball? Should the defender stay back and wait for the opponent to attack, even when they don’t have the ball? Not if the aim is to win. The correct thing for a football team to do in this scenario is: the midfielder advances into the space near the opponents goal and the defender advances into the midfield. Does this make the midfielder a forward? And does this make a defender a midfielder? Well yes, momentarily. The approach to win is that we should view a scenario as dictating tactics, not a predefined and rigid approach.

Jimmy and Joes, not Xs and Os

Let’s continue this line of thought…

Now we have a midfielder who is now a forward and a defender who is now a midfielder. How does this help if the midfielder can’t score goals? And the defender can’t pass? This is where recruitment and talent development comes in. We have limited control over the scenarios we may find ourselves in and the key to success is to be able to take advantage of any scenario. Therefore, when we are building a team, to continue the analogy, we should have a midfielder that can play forward and a defender that can play midfielder, in other words, we should have players that can play as many positions as possible. It is is essential for us to stop thinking of football players as “defenders” or “midfielders” or “forwards”, they are football players.

In software development, we have positions as well, and this is also based on a tactical ideology. We have Product Manager, Designer, Dev, UX researcher, etc. But what happens when there is a gap in a design? Should the developer not step in and contribute to fill the gap? Or should their responsibility stop and they wait for the situation in which their technical role is needed again? How about when the team needs to talk to users? Should the UX researcher be the only interface? Or can any person on the team engage to inform themselves in their own perspective? These are some of the equivalent scenarios as the football example referenced previously. Equivalent to a football team being comprised of football players, not midfielders or defenders or forwards, a product team is comprised of software developers, not Product Managers or Designers or Dev. Product Management is a role in a point in time, Design is a role in a point in time, UX research is a role in a point in time, Engineering is a role in a point in time. The ideal Product team is comprised of talent that can be interchangeable to support in different roles. The more a Product team can take advantage of this interchange, the more they can take advantage of every individual’s potential and create a stronger collective.

Phone Numbers

In a football team, there are starting positions and roles for a reason. Usually, the central forward is going to be the best at working in limited space to score goals and the central midfielder is going to be the best at distributing the ball to all areas of the pitch and controlling the tempo of the game. Equivalently, a Product Manager is going be the best at dictating the direction of the team and a designer is going to be the best at creating the most usable and elegant user-experiences and a dev is going to be the best at solving technical problem sets. But this starting position is seldom what the scenarios dictate as things develop. Pep Guardiola, the most successful football manager often says “formations are nothing more than phone numbers”. This comes from a deep understanding that a formation is just a conceptual approach to a neutral scenario, a starting point, but will quickly disintegrate as different scenarios arise. Product Manager, Designer, Engineer are nothing more than starting points in which to start building product and you should have a product team that is ready to do whatever is required whenever it is required.