October 6, 2004
I saw this really funny, if somewhat ancient, Dave Winer blog entry on Scoble's blog and I just couldn't resist:
An old software slogan at Living Videotext: "We Make Shitty Software... With Bugs!" It makes me laugh! We never ran this slogan in an ad. People wouldn't understand. But it's the truth. We make shitty software. And so do you!
Software is a process, it's never finished, it's always evolving. That's its nature. We know our software sucks. But it's shipping! Next time we'll do better, but even then it will be shitty. The only software that's perfect is one you're dreaming about. Real software crashes, loses data, is hard to learn and hard to use. But it's a process. We'll make it less shitty. Just watch!
Talking with an unhappy customer, first validate their belief that you've let them down. I agree that our software isn't perfect. You won't get an argument here. Let's move on, find a workaround, a way to get your data back. And we promise to take a look at this problem and, if possible, fix it in the next release.
So, when you get an upgrade, you look for the process, see if they responded to your needs. Which way are they moving?
You heard it here first: all my software is shitty.
There are a handful of programmers in the world capable of producing brilliant, perfect code. All the rest of us can do is keep making our software less shitty over time-- a process of continuous improvement. Given my current status as the best programmer in the world, it's difficult to eke out any improvement, but I do make a noble effort.
Posted by Jeff Atwood
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.
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.