Between the Lines: Parallels Between Professional Football and Software Development

My previous work experience as a professional football player is fairly uncommon in the software development industry. I’m often asked by clients and coworkers what it was like. I always share that it was very demanding but I really enjoyed the experience. Then I’ll typically joke about how there aren’t many parallels between football and what I do for a living now. But, that’s not entirely true.

Sure, there’s significantly less tackling going on in the AOA2 office. However, I see other aspects of being a professional football player play out daily.

Be a professional.

It’s pretty common to hear the phrase “be a professional” thrown around at the football facility, especially during training camp. It’s typically something coaches will tell the rookies. The coaches are reminding them that, although they’re playing a game for a living, they must meet some basic expectations. They’re expected to show up on time, come prepared (bring their playbook), and be respectful of their teammates, coaches, and support staff.

These are the same types of things we expect of one another at Atomic. We’re not in athletics but we’re on a team here. That means it’s vital that we can rely on our fellow Atoms to do the basic things right because it serves as a foundation to build on.

Develop a game plan.

In preparation for an upcoming opponent, coaches develop a game plan. When making a game plan, they evaluate the opponent’s strengths and weaknesses and then compare them to their team’s. They consider how their players will match up and try to determine the style of play that will give them the best chance to win.

In the software consulting business, things aren’t so “us against them.” Instead, it’s more like: “us against the client’s problem.” We still work to create a game plan of sorts, though. We consider the various ways in which we can solve the client’s problem and weigh the pros and cons of each approach. We also evaluate our team’s ability to execute the solutions we’ve identified. A win for us is a satisfied client and a happy software development team.

Make halftime adjustments.

By game time, the tweaks to the game plan are usually pretty minor. That said, at halftime, good teams will make adjustments to better capitalize on the things they saw throughout the first half.

The adjustment to newly-learned information at halftime carries a striking resemblance to the agile development process we practice on our projects. We typically operate in two-week sprints. This gives our teams opportunities to get feedback and alter our strategy as needed.

Communicate

The position I played is called offensive tackle, it’s a part of the offensive line. My job was to work together with the other offensive linemen to protect the quarterback on pass plays and open up running lanes for the running back on run plays. Good communication is essential to team success. The greatest offensive lines communicate very well and are always on the same page. Without good communication, egregious mistakes are made and the team suffers. You can still lose even with good communication, but without it you surely will.

Communication is essential on a project team as well. Software projects are complicated. That means being out of sync with your team is guaranteed to introduce uncertainty and can lead to a lesser-quality solution. Two things that we like to do to ensure we’re communicating effectively as a development team are to hold regular daily stand-ups and pair frequently. Doing those things along with being generally available to collaborate provides our teams with the best chance to succeed.

Rest and recover.

Athletes demand a lot of their bodies during practice and workouts. It should be obvious that rest is extremely important, and yet people are surprised to hear the extent to which it is encouraged within professional sports. No one can sustain the intense beating the body takes over the course of a season without taking care of themselves. Light lifting, stretching, yoga, cold tubbing, and just getting off your feet are all important things for a high-level athlete.

In the software industry, rest and recovery is essential as well. Stories of burnout and death marches are all too common. It’s important to take vacations and use your PTO. During the day, get away from the screen for a few minutes, go for a coffee walk, or chat with your coworkers. All of these things make work more sustainable and life more enjoyable.

Between the Lines: Professional Football and Software Development

Far more similarities came to mind while writing this than I could list in a single post. I plan to follow this up with a comparison of a football season to a software project from beginning to end.