I am a soccer fan, I also watch tennis & basketball but only soccer gets to me. A couple of weeks ago Netherlands and Spain played in the world cup final. Originally, I did not know which team I really wanted to win, I always loved Netherlands (I loved Marc Overmars for those who remember they 1998 world cup my heart was broken when Netherlands lost against Croatia in the 3rd place match) and I always looked up to Spain as the best soccer team to not win the world cup and not ever be in a final. As the game progressed I found myself rooting for Spain, the Spanish team won my soccer heart. Looking at how they were able to defeat Netherland as a team inspired me to look at what lessons I can learn from them as software developer.


So what can I learn from the Spanish team's journey in this world cup ?


  1. Ball Possession --> Consistency in User Experience : The first trait and the main reason for Spain's victory in my opinion is their high ball possession percentage. Not only in the final game but in all the games they played in the world cup the averaged 68%. The Spanish team is CONSISTENT with regards to their ball possession. If the Spanish team was a piece of software, their users will love them because of their consistency in experience.  When designing software that interacts with users I need to be consistent in the experience my software provides. I should not have a different UI design/experience for different features, one that exposes options through menus, other that uses tool bars etc. Inconsistency hurts the software's (1) Trust ability - you have higher probability that your users will lose trust in your software (2) Learnability - users will have a hard time learning your software cause they need to learn using every feature in a different manner (plus other things but I will stick with these 2 for now).
  2. Number of Goals --> Features : Spain might be the nation to win the world cup with the least number of goals ever. If goals were to soccer like features are to software, the Spanish team would be the piece of software with the least number of features that customer love and prefer over other feature loaded software. When developing software I need to find the right balance of the number of features to have and the quality of those features and how they interact together. In my opinion It is better to have a smaller set of elegant, complete, easy to use features that the customers fall in love with than have an application fully loaded with hundreds of features that just do not go together or that are not well thought of.
  3. Substitutions --> React to customer needs : Watching how the coach used his substitutions (I am talking about Navas and Fabregas here not Tores) to change the game made me think, as a software engineer I need to be the coach of my software. I need to understand what is not working well in my software for the customer and substitute those features. I need to understand how my customer uses my software and make the right moves to win the customers over. I need to find out what are the features that I can add that will change the game and make my software better.


There is a lot that we can learn from soccer in life … looking forward to World Cup 2014 lessons :)