This article, Richard Feynman, the Challenger Disaster, and Software Engineering, really struck a nerve. It's very well written and well thought out. I'll jump right to the conclusions of this article:
- Engineering can only be as good as its relationship with management. (Right!)
- Big design up front is foolish. (Amen, brother)
- Software has much in common with other engineering disciplines. (Much in common, but not everything.)
- Reliable systems are built by rigorously tested, incremental bottom-up engineering with an 'attitude of highest quality'. (This sentence is so my motto!)
If your serious about what you do as a professional software craftsman, then go read this article.