Two interesting experiences happened to me during the past week or so: we launched a new release with plenty of exciting new features, and I had a road bike race – the season opening bike race. I spent a lot of time and energy planning and executing on these two projects, and once again was surprised to discover how similar bike races and software projects can be.
Planning, executing the plan, reacting fast to changes and of course: racing to the finish line, when you have to think fast – real fast, if you want to win the race or launch the new software release are very similar.
Before you start developing a set of features, you have to pay careful attention to what each feature entails. What does it do, what can go wrong, how are you going to implement the feature, etc.
Before you go on a bike race, you do exactly the same: carefully learn the race course, what does it entail, what can go wrong (sharp turns, hills where escapes are likely to occur, etc.), and prepare a race plan, specifying exactly what to do, and when.
Executing the Plan
Once the planning is done, the fun begins.
In software projects, coding is the most creative part. You can do it on your own, and it’s even better to do together (pair programming is an important practice in SharedBook). Teamwork is especially important in software projects. You work together with your teammates, brainstorm together on difficult issues, and you know that if something goes wrong (and it normally does in software projects) you can rely on your teammates.
Bike races are the same. The race starts, you follow your plan, and you keep looking around for your teammates. Working together with them, knowing that if something goes wrong (and it normally does in a race) you can rely on them.
Reacting Fast to Changes
In every software project, eventually there are changes to the plan. If you are smart and alert, you quickly notice them, and react fast. These two qualities: noticing quickly and reacting fast are essential for every successful software project.
Bike races are all about creating changes to someone else’s plan and reacting fast to someone else’s changes. So you have to be very alert all the time. Quickly noticing and reacting fast to every change: fast acceleration after a quick turn, or a break attempt at the hilly part of the course – if you don’t notice them quick and react fast – you’ve lost the peloton, and lost the race.
Racing to the Finish Line
Software projects tend to go wild towards the end. Suddenly, two days before launch – everything seems to break (did someone call Murphy?). This is the time when a manager has to analyze the situation quickly, assign priorities and act. Fast thinking is critical at this phase.
Road bike races are all about the finish sprint. And much to my surprise I discovered that if you want to win the race in a sprint, not only do you have to bike fast, but you have to think fast. Analyze the situation, find a lead candidate, draft on his wheel while carefully calculating the distance, speed, your energies, and physical power, and then go out sprinting at the right moment.
How sweet is the moment when you’ve realized that you’ve just successfully launched another software project? Watching your new features in production? Watching the beautiful books created using those features is an exhilarating experience!
In a bike race, till the very last moment, you can’t tell whether you’ve won a race or not. I still remember the surprise and excitement I felt to find out eventually that I won the race (by a fraction of a second). What a sweet moment.
And What Do I Do Afterwards?
All the focus and concentration required in managing a software project can leave me exhausted and mentally drained. All the focus and concentration required in a bike race can leave me exhausted and mentally drained. What do I do to relax afterwards? That is simple: in both cases, I just go out running. J
* Special thanks to the SharedBook team that makes it all happen, delivering one successful project after another.