A while ago I had a friend stay with us and we’ve been having a good time. He’s been displaced because of the Japan disaster and was living quite rough for a few weeks (no power, no water). Then in the US he’s enjoying the civilized world with running water, electricity and stocked liquor cabinets again.
His first day in, my son ceremoniously clogs the toilet and causes an overflow. I was not home, but came back in time to see the disinfecting. My wife comments about how my friend jumped in, grabbed a bucket and without regard or thought to the “ick” factor admirably stopped the continued flooding and began clean up.
This is committing to the moment.
I see a lot of short-cuts taken in life and work. I know I’m guilty but I always try to do it right. If there is some part broken off deep in the recesses of something, I dismantle the casing and take a proper look to fix it instead of try to figure out how to get a flashlight beam into the bowels.
Shortly after the toilet flooding I had a very small crack in some PVC piping in my backyard. It wasn’t flooding, I wasn’t running frantically trying to find the irrigation shut off valve, it was a leak. Just a drip. There is the temptation to use various shortcuts and try a fix but at what cost?
For the piping, it could spring a subtle leak and I wouldn’t find it. I would waste precious water, spending money and wasting it away. That’s bad. The real fix took about 30 minutes and help from my dad. I had to call in a favor but the end result is I don’t have to worry about when it’s going to crack again. He told me a story about a pipe with a pesky leak they kept patching with some epoxy like compound. When it came time to replace the pipe completely, the entire section was devoid of metal.
In the product development world I believe it’s even more important to fully commit yourself to the right solution. Mistakes may be made but the mistakes made from committing to success are different. They’re good mistakes. The type you look at and laugh at later in life. The type that don’t wake a company.
As an example, I stumbled on some code that was written years ago that looked so similar to my own. I knew I didn’t write it; it was my partner in crime and we went through similar growth and learning. We shared in a lot of what we learned and our code is similar in this period.
The code written was naive, not exactly elegant and even in a silly place. However, we were both committed to this new pseudo-functional-programming style and solving problems right. It’s a good style resulting in code that is easy to test, use and extend. With this, and our current years of practice and knowledge, it wouldn’t take much to go from naive to excellent. Any difficulty in testing could be remedied with a few slight changes. It was successful.
I think this is the first time I’ve looked back at software I’ve written and instead of cringing, I laughed. I looked at it, fixed the naive mistakes but the core idea was still sound. A light refitting rather than a wholesale replacement.
We commit to learning and still write foolish code. In the end our foolish code from yesterday is better and still has an atmosphere of being future proof. We succeeded in what we set out to do. Not write better code, but write smarter code and we committed to it.