I have been a football coach for more than 15 years now and a professional software engineer for about the same time. If I had to pick the experience that taught me the most and improved my skills as a developer, teaching football to primary school children would be my choice. Why is that? What's the connection between coding, testing, debugging and standing still three afternoons a week, in every possible weather, shouting orders to a bunch of people that can't even tie their own shoes? You'll be surprised to know that there are a ton of similarities.