MSNBC ran an article today claiming that today’ssoftware is worsethan it was before, especially when it comes to reliability and cleanly written code. Among the major complaints were that software contains far too many defects partly as a result of being released too quickly for proper quality assurance to take place, software projects are poorly planned/designed, and license agreements make it difficult to hold companies liable for poorly-written software. While I agree that there is a tremendous amount of improvement to be made in software development and that quality control often seems not to be the top priority, the article went too far in its generalizations and exaggerating the “defects” in today’s software.

?Software?s simply terrible today,? says Watts S. Humphrey, a fellow of Carnegie Mellon University?s Software Engineering Institute…?And it?s getting worse all the time.? Good software, in Humphrey?s view, ?is usable, reliable, defect free, cost effective and maintainable. And software now is none of those things. You can?t take something out of the box and know it?s going to work.? Over the years, in the view of Edsger W. Dijkstra, an emeritus computer scientist at the University of Texas at Austin, the average computer user ?has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed.?

A major basis for the article’s observations about software surfaces: “Yet much software simply doesn?t work reliably: ask anyone who has watched a computer screen flush blue, wiping out hours of effort.” Granted, we aren’t average computer users, but it seems much of these problems stem from the nature of computer usage today, not to mention that many average computer users have only a few years’ worth of experience. Unlike 15 years ago, when–and please pardon the simplified generalization–applications ran one at a time, today’s average computer users are constantly running a myriad of simultaneous applications that are vying for system resources and often interacting with one another. Computers perform countless more functions than they did several years ago; with greater complexity comes greater potential for unforeseen incompatibilities and errors. Many years ago, computers mainly had specific professional applications or were used by relatively knowledgeable users for gaming. Nowadays, computers are much more pervasive in everyday life, becoming tools of personal communication, entertainment, information, and productivity. Additionally, because people are spending more time at their computers, computers are now attractive means for other companies to earn money. In particular, I’m thinking of adware/spyware that gets bundled en masse with applications that target a broad user base, such as KaZaA, or are installed by inexperienced users, such as Comet Cursor. While experienced users may be able to troubleshoot their problem, update their software, remove unwanted programs, or at least identify an offending application, many users do not know how to or do not bother to seek solutions.