running development

A year and a half ago, I started running.

I’ve never been that great at sports or staying in shape. In college, I got serious about it and started going to the gym fairly regularly. Unlike many Americans who start on New Years Day but don’t follow through, I managed to consistently work out for those four years. After college and starting a full time job, it was more difficult to keep at it and my gym usage trailed off. I think this is especially typical of the tech world since we are sitting at our keyboards day and night.

A year and a half ago, my parents were getting rid of their old treadmill and asked if I wanted it. We had room in our basement so I plopped the crickety old machine in the back of the minivan and drove it over. At first, I took it slow. Once or twice a week, I warmed up and ran on the treadmill for as long as I could before fainting. I distinctly remember the first time this was about 5 minutes. Then I did some pull-ups, sit-ups, and push-ups. The whole exercise session took 15 minutes. I thought: that’s not too bad, I can do it!

My basement running went on for some time and I slowly increased the amount of time I was running. At that point it was really just a temporary hobby, but I slowly came to the realization that I actually enjoyed my time on the treadmill. With some advice from my runner friend Luke, I started keeping track of my running times and pace. I then came up with a goal: run a 5k in the summer at a decent pace.

In order to accomplish this goal I needed to do some basic analytics. I started a spreadsheet of all running activities. Research about how to train for a 5k pointed me in the right direction on how to analyze the data. I checked the spreadsheet regularly to make sure I was progressing. Sound familiar? That’s how to “run” a software development team. I’m not the only one making this connection. In fact, I was partly inspired to write this post by the Dad on the Run blog written by another software manager.

So how does one learn new and better ways of doing things? Start small and then iterate, iterate, iterate! Whether it is running or technology, there is always something new to learn. Start off doing the best you can and always be on the lookout for more.

One example: As I started to run longer distances, I started getting plagued by minor injuries. I call them minor because although they would prevent me from running they only lasted a few days. I researched them by asking friends who are runners for advice and scouring Google. Using technology helped as well. For by birthday, I received a GPS running watch. Not only did it help me keep track of my pace and timing more accurately, but the software actually led me down a path of understanding more about what I was doing. The Garmin watch software keeps track of your cadence, or steps per minute (SPM). Apparently, mine was too low. This meant that I was landing on the heel of my foot and potentially causing wear on my knees and leg muscles. I adjusted my running style to run at a higher SPM and removed one source of injury.

My 5k race times over the course of the year went from an 8 minute pace to a 6½ minute pace. That didn’t happen by accident. It happened by applying the same principals as being a technologist. Set goals. Constantly check to see if what you are doing is leading you towards these goals. If not, change what you are doing and try again.

This year my goal is to run a 10k. Next year, who knows? Just like running a software team, this is a journey that never ends and never gets boring.