我々プログラマは、仕様を満足させるためにプログラムを書いているわけではない


ということを考えるようになってきた。


プログラマは『より正しいこと』を求める傾向があるけれども、それだけじゃ足りないんじゃないかと思ってきた。


矛盾がなく、抜けもなく、重複もない、完璧で正しい仕様。
バグがなく、無駄もなく、保守性も高い、完璧で正しいプログラム。


でも、顧客が欲しいのは完璧な仕様やプログラムなんかじゃない。
顧客にとって、その機能でどれだけ便利になるのかが重要なのだ。


顧客がその製品を使用して、不便だと感じ、嫌な顔をされて、果たして我々プログラマは幸せになれるのだろうか?
こんな不幸せにさせる機能を完璧に作って、それで満足できるのだろうか?


我々プログラマは、仕様を満足させるためにプログラムを書いているわけではない。
より良い製品を作るためにプログラムを書いているのだ。


そのためには要求仕様とか、外部仕様とか、内部仕様とか、設計仕様とか、様々な仕様に対して「これで顧客は幸せになれるのか?」ということを考える必要がある。
それはきっと『より正しいこと』を求めるプログラマにとっては難しいことなのかもしれないけれども、これが出来るようになると、きっと今よりも幸せになれるに違いない。