Reaching new heights in geekness, I watched the landing of the Phoenix spacecraft on Mars last night live over the web via NASA TV. I don’t know, I find there’s lots of drama in space missions. It’s an incredible task. One of the mission managers compared it to hitting a hole in one in Australia from a tee in Ottawa (ok, he said Washington but Ottawa is about the same distance :). Another manager closer to the action added, “with Australia moving”. The good news is that they pinned it, relatively, missing only by 20km, rimming it around the hole before dropping it if you will.
The highlight for me was watching the jubilation as the guy called out that the spacecraft had reported a touchdown detected event. The gratification of years of work wrapped up in a single (probably) 2 byte event report is well deserved. That little report required so much technology to be working, it’s mind boggling.
That feeling of jubilation is what I call a woo-hoo moment. Mind you nothing I’ve done compares to the moment these guys had, but I think it’s an important aspect of all software development. It’s these little moments that help you realize all that hard work you’ve put into the project actually works and you can do a little celebration (usually throwing my hands into the air for me and yelling “yes” :). It helps get the adrenalin going and really gives you the energy to start working towards the next one.
In my career I’ve had a number of these moments and I always try to schedule them into the projects I’m working on. And these moments I don’t soon forget: the first run of an external code generated state machine from ObjecTime Developer happened a long time ago and I still remember when it happened. My work on the CDT has had a few too. The first outline view from CDT’s first parser, the first content assist (which was a surprise since the Neifer just did a couple of tweaks to the binding resolution code and it just worked), and the first complete index of the Firefox source using the new Fast indexer that beat my set goal of 20 minutes (it’s now around 13 minutes the last I looked). And more recently, I have the first install of Wind River product based on p2 (the DVD is hanging on my wall :).
I’m sure we all have moments like this throughout our lives. For software development, this is why I think iterative development is the only way to go. Not only does it give you a chance to show your customers progress and get their feedback, it lets you schedule in gratuitous woo-hoo moments.