Robert L. Glass / Facts and Fallacies of Software Engineering

Fact 9 Most software estimates are perfomed at the beginning of the life cycle. This makes sense until we realize that estimates are obtained before the requirements are defined and thus before the problem is understood. Estimation, therefore, usually occurs at the wrong time. (p.31)

Why are missing requirements hard to detect and correct? Because the most basic portion of the error removal process in software is requirements-driven. (p.74)

要求がはっきりしないなんていうのは、テクノロジーに疎い人たちが「伝票整理を楽にしたい」みたいことを言う場合だけだと思っていました。ですが、要求を明確にするというのは、思ったよりも難しいことを、最近知りました。サンプリングレート 1000Hz で電圧を取りたいという要求があって、CPU サイクルを節約するために DMA でまとめて転送しましょうと提案します。ところが、後になって、いやフィードバックをしたいので1 サンプルごとに値を確認したい、と言われたり。

Fact 21 For every 25 percent increase in problem complexity, there is a 100 percent increase in complexity of the software solution. That's not a condition to try to change (even though reducing complexity is always desirable thing to do); that's just the way it is.""" (p.58)