« Pictures! | Main | Changes? »

Why Software Fails

Digging through old email I ran across an article a former coworker recommended to me. The article
Why Software Fails is a great read. To me it speaks of hubris on a scale I find hard to match in almost any other profession. As the article points out we mostly know what is wrong and how to fix it, yet the advice is continually ignored and projects continue to fail.

Being a professional software developer I struggle with this dilemma. I've ignored best practices, I've been asked to cut corners, I've made buggy code that could have been avoided had I used best practices or not cut corners. The fact that software has not suffered the litigation onslaught found in other industries or professions I believe only perpetuates the current state of affairs. However, like the article points out there is rarely if ever a single cause of problems and the list of twelve mentioned is only the tip of the iceberg.

The article does point out that software is a beast onto itself and may play by different rules:

Even a small 100-line program with some nested paths and a single loop executing less than twenty times may require 10 to the power of 14 possible paths to be executed.
(...)
In a large brick building, you'd have to remove hundreds of strategically placed bricks to make a wall collapse. But in a 100,000-line software program, it takes only one or two bad lines to produce major problems.

As a professional I want to produce the best possible product. When I find myself wavering from the tried and true, I wonder what hope there is for our profession.