プログラマというのはとてつもなく難しい仕事だ。 職業的なプログラムは、それが会社であれ、個人であれ、顧客の何らかのニーズを満たすために存在している。プログラマは、顧客の要求を満たすように、プログラムを設計・実装する。ここで注意しなければならないのは、「顧客の要求」と「プログラムの設計・実装」という全く異質な 2つの仕事を同時にこなさなければならないということだ。 顧客の要求は、社会というシステムに属し、プログラムは、技術というシステムに属する。この2つは全く似ていないし、何の関係もない。それが、「顧客要求を表現したプログラム」という一つの場で切り結ぶ。異質な2要素がぶつかり合い、プログラムコードはまさに戦場と化す。 書かなければならないプログラムの種類によって、この緊張度は異なってくる。たとえば、組み込みソフトウェアや科学技術計算などの場合は、要求自体がかなり技術的であるから、プログラムと