ソフトウェアの開発環境は、技術者の絶え間ない努力でこれまで大きな進歩を遂げてきました。新しい機器や開発環境を有効に活用することは勿論大切ですが、コアな部分の仕組みや物作りにおける基本的なアプローチは昔からそう大きくは変わっていません。
ソフトウェアは、それを使う人や業種、環境などによって要求される仕様や機能が大きく変わります。従って、その良し悪しは、性能や障害の発生頻度など様々な尺度はあるものの、定量的に判断することは非常に困難です。また、技術者は、新しいビューや機能を考案するとき、方法論を模索するとき、複数の技術者から出た案を比較検討するときなど、特に行き詰った状況で経験や勘を頼りにします。豊富な経験は、これら様々な困難を打開するために役立ちます。