The other day I came across an interesting post asking why we put up with software that isn’t bug-free. Good questions, I thought, in class we are always told to thoroughly test all of our work to ensure that it doesn’t have bugs in it. One of my teachers (his blog) gave us some of the best advice for limiting software problems in our code that I’ve ever gotten—Think - Design - Create Tests - Code—this was thoroughly drilled into us and I have to say, it’s made me a better programmer (though admittedly our projects are quite small in comparison to the software we complain about—or don’t complain about).
I’m sure I’m not alone when I say that when I am writing code I endever to write error-free code. I’m also sure that I’m not alone in saying that can be very hard and almost impossible to do (you can get most of the bugs, but never all of them) if this wasn’t true then I wouldn’t be writing this post right now.
So, why do we put up with buggy software? It’s annoying isn’t it? From the post linked to above there were several possible reasons: people thinking it was there fault, pure complexity of the system, developing a one-size-fits-all solution to try to satisfy everyone. I think that all of these reasons have ground, and while I don’t know the reason we put up with buggy software I do have a resolution as a result of reading the post—I won’t write buggy software. Sure, I know that no programmer is perfect (people who’ve been programming longer than I have still create bugs) but that doesn’t mean that I can’t try to write perfect code, or at least as close as I can.
What are your thoughts on bug-ridden software?