Rocks And Hard Places
A little while after I learned to walk, and to the consternation of my parents, I started climbing every rock I could find. After some time, I learned that if you used a rope you were allowed to call it a “sport”
Up to that point I had always thought sports were pretty boring and pointless. Although climbing was, admittedly, pointless, it was also hard and terrifying and frustrating, so I loved it
At roughly the same time I discovered that you could write these special instructions that would tell a computer what to do. And it would do what you wanted it to (well, most of the time).
And this was also hard and frustrating, but at the same time it had this amazing aspect that you could build almost anything you could imagine, if you tried. So that was kinda neat.
Well, no-one every wanted to pay me money to rock climb, but quite a few people seemed willing to pay me to write computer programs. So that ended up being how I earn my living.
And in all this climbing of rocks, I’ve noticed a few lessons that seemed applicable to programming computers, which seemed somewhat counterintuitive.
So I decided to write those lessons down here, and hopefully even if you don’t program computers a lot, you will find them useful.
First thing I learned was that you are going to die. When a golfer messes up, you hear “whack....damn”. When a climber messes up, you hear “damn....whack”. Climbing is not a sport that lets you forget about your mortality for log periods of time.
And yet there are all these new-age trendy agile programmers say it doesn’t matter what rubbish you inflict on your clients, cause you will fix it in the next iteration. But at some point, won’t have another iteration. So think carefully about what you're happy to leave behind and make this version count.
Second thing I learned was that you need to enjoy the process. Because it can take days to climb a mountain, and you only spend a few minutes on top.
So unless you learn to enjoy the process of trying and failing and learning and trying again and failing you are not going to have much fun.
Most products are dismal failures. Most startups fail. So if you want to play this game you had better learn to enjoy the building and the artisanal value of what you are doing.
The third thing I learned was that you have to surround yourself with people who matter to you. When you are climbing, your rope is a very tangible reminder of the link between you and your partner. If they fail, so do you.
Its embarrassing now, but for a long time I was not picky about the people I worked with. And every now and then my job just started sucking inexplicably.
And then one day I had this epiphany. I realised that competence alone is not sufficient. I want the people I work with to be really really nice human being. And since I realised that, life got a lot better.