provided by: 
Originally published at Internet.comRecently, I wrote an article titled Most Software Stinks!. In the many interesting replies I received to the article, two general comments recurred often. One of the comments missed a major point of the article, but the other showed an insight I had overlooked.
The first recurring comment was that software development is simply more difficult than other kinds of engineering and, therefore, cannot be judged by the same standards. In this view, creating software is harder than creating any kind of physical structure, so we cannot expect software to have the same high quality as many bridges and office buildings. (Closely related is the assertion that we cannot expect software to be completed on time and on budget, as physical construction often is.) In my opinion, such an assertion highlights the worst qualities of software developers.
We think we operate on a higher plane of activity than our mechanical and structural engineering brethren. We think the sorry state of software engineering - cancelled projects, lousy quality, missed budgets - is because we do something that is harder than other engineers. The fault, we believe, is not with us, so there is little we can do to improve the performance of software development teams. This is a convenient point of view, if we can sell it. Unfortunately, it is baloney. A great object-oriented design is made better by comments that help the next programmer understand it...
Read article at Internet.com site