Lispian Random meanderings on whatever catches my fancy

Your Software is Crap, Get Used To It

I’ve rather grown tired of some software developers and companies who don’t seem to comprehend the simple fact that all software is crapola. And that the definition of a good programmer is one who knows his software is crap. By definition, a good programmer will immediately know a better way to do something right after he or she has written the code. If someone is super happy with the code and figures it to be perfect they either wrote a trivial piece of code, are someone of the ilk of Knuth, or are self-delusional.

And to see that most software is crap one needs only use it. If software was well done as so many practitioners tend to think we’d have no bugs, software would work efficiently and be easy to maintain, and it would never require anyone to revisit it. But I’ve never found a piece of code like that.

Sure, I’ve found elegant pieces of code. But that’s the whole point, elegant pieces. Sometimes you even find an old program that, even when substantial time has passed, the code remains elegant. But inevitably it’s a few thousand lines of finely honed software and not hundreds of thousands or millions of lines. And thus, statistically speaking, the vast amount of software any software developer has ever coded is crap.

So what bugs me the most is sitting down with someone who gets upset when you tell them their code is crap. If you take offense, you’re obviously a poor developer. Or, you’re simply Knuth. But since I know who Knuth is and I know he doesn’t tend to work in tech companies the likelihood of him sitting across from me in a meeting is pretty much zero. I do know a few of his ilk, but they are the first ones to lament their own code even though it is invariably some of the best written code I’ve ever seen. You see, even though I think it’s fine work they think their own code is crap because, being better developers than me, they realize they could do better still.

And for this very reason it’s why I continue to believe software development is an art. Because, much like artists, true developers realize what they create is but a poor facsimile of what they intended to develop. That they are hampered by the very media they are using, perhaps hampered by the laws of the universe itself. And therefore they will never be happy. And those types of developers are a joy to work with because they realize it can be better and strive to make it better as opposed to the crappy developers who love their shitty code and take offense when you telling them their code is shit.

Unfortunately, the shitty developers with the crappy code outnumber the talented artists and a quick look around the computer industry will easily illustrate this fact. The fact any of this shitty software works is a testament to the folks building the tools that hold it all together. Invariably, they’ve been some of the brightest bulbs and usually also unsung for when have you last heard of a compiler developer or language designer getting rich or appearing on the cover of Time or having a movie made about his or her life? Never, especially of late. And yet without those tools that handhold the bad developers code bases would be infinitely worse.

And for the curious, what do I consider myself? I consider myself a crappy developer. Many have stated that I’m one of the best they’ve met, but they simply flatter me. I know many better than me and whenever I run a group I ensure I surround myself with them. I’m sure it’s simply their aura rubbing off on me that makes me seem all the better. And that ability to realize you’re not that good and that there are much better developers, artists as I call them, means you can find them and nurture them and protect them so they can do what they love. That’s a sign of a good manager, which is something I strive for since much like hockey coaches, the best players make the worst coaches but the average players make great coaches and I know I’ll never be the star developer but I might become a great manager. And so thus I strive.

Comments are closed.

September 2010
« Aug   Oct »