What a world marathon record teaches us about software
Editor's note: The following is a guest article from Derek Hutson, CEO of Datical, a database automation software company.
In one of the most stunning athletic achievements ever, Eliud Kipchoge of Kenya smashed the world marathon record with a time of 2:01:39 at the Berlin Marathon in 2018 — obliterating the old mark by one minute, 18 seconds.
It could be seen as foolhardy for a marathoner to attempt such an unthinkable feat. Instead, Kipchoge's record has many experts thinking the world's first sub-two-hour marathon is within reach. Simply running a faster marathon than their competitors is no longer good enough for elite racers, they're now aiming for the fastest times in human history.
There are parallels here with another area focused on attaining unprecedented speed — software development and production. We live in times when going fast is actually safer. That is a complete turnaround from when the waterfall method and other traditional techniques accentuated slow and safe.
In the digital age, software is the primary vehicle by which companies deliver value. And the bar keeps rising. Customers simply expect an ideal experience from the companies and apps they deal with, or they can easily go somewhere else to find the thing they are looking for.
Amid these ever-growing expectations, companies across every industry have turned to agile development methods that promise faster, more frequent, more transparent software releases. "Go as fast as you can" is now the mantra and likely will be forever. Manual systems and antiquated processes that slow software production are no longer a wise option.
There was a time when the business world was conditioned to believe that slow and steady wins the race, as in the classic tortoise and the hare tale. However, the digital economy requires speed and agility — making good decisions, failing fast (nimbly pivoting when something isn't working) and repeating successful patterns.
Enterprises can no longer sacrifice speed for safety. They have to have both. The rapid pace of innovation demanded by digital business means rethinking traditionally conservative development approaches and delivering high-quality software to users at much greater velocity.
As legendary college basketball coach John Wooden said: "Time lost is time lost. It's gone forever." Get the code out there!
Of course, in their pursuit of speed, companies must also make sure their software is secure and doesn't break — much like a marathon runner must have a careful strategy to try to win the race without collapsing from exhaustion or injury before the finish line.
I see lots of lessons from Kipchoge's Berlin performance, as well as philosophies that the Olympic champion discussed during an address in November 2017 at the Oxford Union Society, that apply to today's software development realities. For example:
"Become comfortable with being uncomfortable. Accept change."
Likewise, companies must adopt values and principles that allow teams to respond quickly and flexibly to change. That means not just paying lip service to DevOps but bringing its agile tenets to the entire software stack and all its critical components, from application code development through the database code deployment to testing and ultimately putting new innovation and experiences into the hands of customers.
That can be a big change in companies used to separate, siloed, heavily manual processes, but is necessary to meet the objective of faster release cycles.
"To win is actually not important, to be successful is not even important. How to plan and prepare is critical and crucial. When you plan very well, then success can come on your way."
The modern software development machine also requires planning and preparation. It requires complete organizational commitment, from the C-suite on down, to change internal paradigms and rely on automation to increase efficiency across the full stack.
"The world is actually full of challenges and we need to challenge ourselves. I took a challenge to run that fast."
Everyone in an organization, from developers to database administrators to testing and ops teams, must challenge themselves to go faster. They have to think and act differently. Sometimes that means a dramatic culture shift.
It's understandable some may be reluctant to relinquish control of old processes and responsibilities, but they must trust in the ability of new technology and processes to increase velocity while also providing security and reliability controls to safeguard projects.
Push the boundaries, no matter what.
In Berlin, Kipchoge was supposed to have three other runners in front of him to act as pacers, but all three ended up dropping out, leaving the Kenyan up to his own devices for the last 10 of the 26.2 miles. He not only handled it, he ran at an even faster pace.
In fact, had the pacers stayed in the race, there's a very good chance their more measured pace would have prevented him from breaking the record.
The dynamic is similar in software development. Conventional wisdom says "don't go too fast." But with constant change an ever-present reality in today's business environment, adaptability and speed of execution are more important than waiting to make sure something is perfect.
That's the idea of "fail fast" — get your offering right, as quickly as possible, and get it into the hands of users. If conditions change, pivot rapidly to a new iteration.
Eliud Kipchoge's performance is worth thinking about as companies strive to set their own speed records. Plan well, but be ready to adapt. Going as fast as you can is now the most prudent route.