Gixer stories
How Software Development Is Like Training for a Marathon
gixer stories
- 5 minutes read
After finishing the New York Marathon, Mark Celsor discusses the many parallels between software development and running a marathon.
The first time I saw the New York Marathon was when I was 19 stumbling into the early morning after an all-nighter and was astonished to see the streets closed and hundreds of people racing by. It wasn’t until I was 40 that I took up running. By that time, I clearly understood the need for preparation to run a marathon. Since then, I have run 11 marathons, and I love the entire process.
I had applied to run the New York Marathon for a few years, and finally, my lottery number was chosen. As I began the rigorous training required, I knew I would need to maintain my motivation for the long haul, so I organized a running group of enthusiasts in our community. Still, there were bumps in the road, including an injury that set me back in my schedule and required me to reset my expectations. And it occurred to me that there are a lot of parallels between running a marathon and developing software.
Most marathon training programs take around 18 weeks to complete. This gives you time to assess your starting point (Inception), gradually build your strength, endurance, and technique (Construction), and then finally fine-tune and prepare for the big day (Transition). Successful software development projects leverage the same types of steps.
Inception
In the first weeks of marathon training, you want to focus on establishing your base running pace and your goal time for the race. A good place to start is with a test 5K run to see how fast you can comfortably go. You cannot expect to run that 5K pace for the full marathon, but you can use a race time predictor chart to give you an estimation for your marathon race time. For example, if you run your 5K (3.1 miles) in 25 minutes, you could realistically plan to run the marathon (26.2 miles) in four hours. This pace gives you a starting point as you establish your training plan. Training plans consist of different types of runs each week. FYI – if you are interested in learning more about marathon training programs, Hal Higdon has some great resources.
The inception phase of software development is all about establishing your base and setting goals. At CoStrategix, our business analysts and solutions architects collaborate with clients to understand the end-user “problems to be solved,” business requirements, and existing technical infrastructure. This establishes what needs to be built and how to measure the success of the endeavor. During this phase, we create a roadmap, or big-picture plan for software construction, including user stories, flows, and technical architecture documents.
Construction
The second phase of your marathon training is all about building your strength and endurance. Training plans normally consist of a few different types of training runs each week, including a few easy runs, some speed runs, and a long slow-distance run to build your endurance. You start with short distances and gradually build the distance. Importantly, each week you test where you are and make adjustments to bring you closer to your goals. You may run a half-marathon part of the way through to evaluate yourself and set the stage for the rest of your plan.
In my training this year, I injured my ankle. This meant that I had to stop running completely for about two weeks to give my body time to heal. This also meant that I had to reevaluate my expectations and downgrade my time based on my new fitness level.
In the construction phase of a software project, we do the work of building a digital product. At Costrategix, we use the Agile methodology, which means that we can react quickly to changes in the market or business priorities. We do this by working in sprints – consistently structured periods, much like the individual weeks of the marathon plan. Each sprint is a cycle of design, development, and testing that gradually moves you closer to launch. On some projects, we create a minimum viable product (MVP) release to evaluate our success and help guide where to go next in the plan. This serves a similar purpose to the half-marathon run evaluation above.
Transition
About three weeks before your race day, you will have your “peak week.” This is the week with the longest and most difficult runs of your training. They often include runs of 20+ miles. You then transition into what is called the “taper.” This is where you ramp down your weekly running distance and focus on the tactics that will make you most successful on race day. This usually includes determining a strategy to regulate your pace, planning your nutrition and fluids, and considering details like your shoes, clothing, music playlists, and other things to make yourself as comfortable and confident as possible.
One of my favorite things about this phase is the night before the race when I eat a carb-heavy meal to fuel my body for the race. In New York, I enjoyed a delicious meal of fettuccine di parma at a friend’s restaurant IL Cortile in Little Italy!
On your software development project, transition means tapering off development and planning for launch. This consists of shorter cycles focusing on user acceptance testing (UAT), deployment planning, and details like small fixes, good documentation, user training, and communication that will make for a successful launch with few surprises.
Race Day / Launch
Finally, the big day will come. It is always possible you could get a muscle cramp – or find a bug in the code. But if you follow a strong plan, then you know that you are prepared. If you skipped the steps and jumped right into running a marathon or launching a new product, you are probably going to have a bad time.
Following a process and reevaluating your progress is important. Know your goals and limits. Focus on the little details that could make a big difference. A successful first race or launch is going to set the tone for your (or your product’s) ongoing health.
In the end, don’t forget to celebrate. For me, after the New York City Marathon, I had a big burger at the Cosmic Diner on 8th Street and a long nap. That might work for software projects too. I was definitely worn out right after the marathon, but the whole experience was energizing. The next morning walked around all the floors of the MOMA and saw some great art.
I am not as young as I once was, so going into this marathon I was considering making it my last. But after a few days, I am ready to plan my next marathon – perhaps NYC again next year? We’ll see.
Want to join our team? We’re searching for insatiably curious, digital-minded, critical thinkers who are obsessed with creative problem-solving. If you’re someone who embraces innovation, loves learning, and wants to be part of a dynamic team that’s reshaping the future of technology, you could be the perfect fit!
Check out our job openings to find the role that excites you. And don’t forget to follow us on social media to get a sneak peak of what “Gixer” life is like – we’re constantly innovating, collaborating, and having fun along the way!