At least, I seem to still be here. My surroundings seem familiar, anyway.
I’m fairly burnt out. But I’ve now got an awesome application written, and it’s just so very cool I can’t have not created it. It’s a simple enough thing from the outside, invisible to the user except by its action, but interesting from a programmer’s perspective. It’s actually the evolved version of an idea I had years ago, an idea whose time hadn’t come until last week. Once I gave it some serious think time I knew that the original idea was somewhat flawed, but the final product is good enough and will serve well for years.
That’s always the most vexing question for me: Is this good enough? I always strive to become better at my job with every new project I undertake, and even when I’m doing something I’ve done a thousand times before I’m looking for ways to do it better, even though I’m in my 30th year of programming professionally and not some pup whose textbooks are still warm. Of course the work is good enough for those who’ll use it. I quit wondering about that long ago. But is it a solid representation of 30 years of experience, the best I can do today?
No, it’s not. It’s the best I could do on Monday. I could make it better today, on Wednesday, and just now I’m wrestling with the idea of making just one big change and leaving the four smaller changes alone because they’re far less consequential. That way lies ruin… I learned that as a young man when an older engineer, not quite to the point in life that I’m at now, clued me in: Everything can always be made better. That’s why technology improves over time. I sit here thinking about my contribution to it while many others elsewhere think about their contributions, and one day soon we’ll share the products of our ideas (though usually indirectly) and make better things. Things that will never be as good as we could make them because by the time we’ve got a finished product in front of us we’ve got ideas on how to make it better — but at some point you’ve got to ship product or you’ll go hungry. The thing I’ve got is good enough, and I’ve tested it thoroughly. It works. It does its job very well.
Still, at the conclusion of every project I wonder if this thing I’ve just done is good enough to be considered the best I could do today and I always arrive at the same conclusion. It was the best I could do in the time allotted at the time it was allotted, and the next time I do a similar thing I’ll apply the lessons I’ve learned by it to make something better. And then again ask the same question, and again get the same answer.
Still, I’m wrestling with that familiar urge to make that one big change, and dammit I might just give in.