Some lessons learned from cycling that can be applied to project management.
Sudden changes of direction are dangerous
If you ride close to the kerb, you'll need to pull out sharply to go around obstacles. It's much better to see hazards early, and steer a gentle course around them. Also, it's much more efficient to plan a route that involves fewer turns.
Fancy new gear isn't always what it's cracked up to be
There’s a tendency for beginners to start out with simple things, then get excited about new things. In cycling, there's a common evolutionary path that goes from scooter bikes through kids' "mountain" bikes with absurd-looking spring suspension, to proper mountain bikes, to fancy road bikes, to pub bikes and single-speeds. Experience teaches us that sometimes simplicity is best. In software engineering, there's something similar as people discover things like object-oriented programming. Sometimes the best equipment is what's familiar - a worn-in saddle
People get obsessive
My non-cycling friends think I’m crazy because I do 100-mile rides. I think my Audax-riding friend is crazy because he does 1000-mile rides. He thinks some other people are crazy because they do 1000-mile rides on 90-year old single-speed bikes. They think some other people are crazy because they do round-the-world rides on Bromptons.
Similarly, some people I know think it's odd that I work on evenings and weekends writing open source code, but to me, a few module patches here and there is nothing compared to the people who give up their jobs to contribute.
There are people who have chosen a job based on what their cycle commute would be like, and people who make life decisions based on ideas about software. Just as there are cycling widows and widowers, there are those whose relationships have suffered because one partner is spending hours getting into the zone writing code.
People get tribal
Even though we all want to achieve more or less the same thing, and profess a lot of the same opinions, there's a tiresome tendency towards schism. A lot of people end up thinking that their group are the true believers, and all those who disagree are heretics. As with religion, often the fiercest arguments are between those groups who appear to have the most in common.
- roadies v mountain bikers
- fixies v single-speed
- emacs v vi
- Mac v Windows v Linux
- php v ruby
- drupal v wordpress
Some people just want to be different
On a lot of big rides, like the Dunwich Dynamo, you see a lot of weirdness for its own sake. Sights like people riding 120 miles on penny farthings or trick bikes or cargo bikes or boris bikes. Part of me admires them for the she bloody-minded perversity of it, but mostly I don't see the point. They're just doing it because they feel the need to prove that they can, like the kind of person who creates a programming language like brainfuck.
Sometimes you just need to slow down
There might be an impassable obstacle, or you might be too tired. Whatever the reason, there are times that more effort right now won't solve the problem
Going up hills is worth the effort
When you're slogging your way up something steep, it feels like it's never going to end. Every part of you is suffering, and you just want it to be over. Then you get to the top and you can enjoy the view, before freewheeling down to the bottom. If there's another hill to go up, the momentum will take you some of the way before the slog begins again. Then when you get home, you'll look back fondly on the hill.
In the same way, the stressful projects are the ones you’ll remember the most, the ones where your team did ridiculous hours to build something absurd, where you had to do some painful things to get the job done.
In both activities, there's a progression - it's easy to forget that some things that are easy now once seemed impossible, but there will always be new challenges ahead.