We Make Shitty Software.. With Bugs!

I saw this really funny, if somewhat ancient, Dave Winer blog entry on Scoble's blog and I just couldn't resist:

This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2004/10/we-make-shitty-software-with-bugs.html

With a host of Windows related links, I’d say: speak for yourself. I know of some pretty neat software that works perfectly and never let me hanging to dry in the decades (!) I’ve used it.

As for myself, I can remember of only a handful of bugs I was actually ashamed about in the business software I’ve written (which is a few notches worse than the software I create privately). And yes, I’ve been writing software for 25 years. And no, I won’t use Windows. DOS was about the complexity MS could handle.

Actually, I think I’ve written one single piece of software that does not suck. But I can’t prove that because the code is lost in the mist of time and memory.

@Hans: Software that contains no bugs can suck very well.

I don’t know. That .NET Reflector freezes for a few minutes any time I copy/paste from it.

@Hans: The only software which never experiences a bug is software which is never used. It’s not a case of being ashamed of a bug, but acknowledging it, learning from it, resolving it, and trying not to repeat it.

No, I didn’t hear it here first.

Come on, if you’re talking about perfect software, what about TeX? See the section “Development” if you’re not familiar with TeX.


TeX is far from perfect software. Okay, sure, it has very few bugs. There are one or two bugs that it does have that won’t be fixed for backwards compatibility reasons, but on the whole it is probably some of the most stable code that is still in continued use.

However, TeX also has many shortcomings! It has many design decisions that simply don’t stand up to scrutiny, and the programming interface it has is inconsistent, incomplete, and just darn hard to work with. (Not that it was ever designed to be a general purpose tool.)

So it comes down to what you mean by perfect code. TeX fulfills one metric of being stable and essentially bug free. It fails in other metrics of code maintainability (it’s a huge mountain of spaghetti code), and elegant and extensible design.

I really want to be a good programmer and I’m afraid that I’m not on the right track. But after reading this blog entry I’ve been reassured that I am improving because I do hate my old code and I do see things that can be improved. Thanks.

Yes we all write shitty software to some degree, not always by choice or lack of development skills though.

I find most of the shitty stuff I write is by force of a business wanting it done yesterday.

I think what really bothers me though, is there are quite a few developers out there that just don’t see just how shitty their code really is.

Oh yeah and not to mention some developers seem to think that their language or platform of choice seems to make their shitty code less shitty. I laugh at that because I have seen lots of shitty code now in at least 5 languages I have worked with over the years including my own.