先日のエントリのとおり、僕は上流工程でもプログラミング技術のことを考えておくべきだと考えています。
それとは反対に、プログラマも要件のあいまいさについての認識を持ち、
要件の本質の追求方法について知っておかなくてはなりません。
なぜなら、言われたとおりに実装だけを行うという行為は、プログラマの地位を下げるからです。
プログラマを取替え可能な部品だという地位にしてはいけません。
過去に出会ったすばらしいプログラマは、例外なくすばらしい要件分析者でした。
例えば、すばらしいプログラマの多くは、実装に入る前に仕様を一読して、
その矛盾を突いて先手を打ちます。
このスキルを身に着けるには経験や洞察力も大事ですが、それだけではありません。
なぜ顧客の要件はぶれるのか?なぜ仕様は根本から覆るのか?を知り、
また、どうすれば本質的な要件を引き出せるのかを知れば、
顧客が本当に求めている仕様を読み解くことができ、自分の中でのあるべき仕様が構築できるので
このように矛盾を看破する助けになります。
まずは以下の本をお勧めします。

- 作者: D.C.ゴーズ,G.M.ワインバーグ,Donald C. Gause,Gerald M. Weinberg,ヤナ川志津子,黒田純一郎
- 出版社/メーカー: 共立出版
- 発売日: 1993/08/01
- メディア: 単行本
- 購入: 5人 クリック: 24回
- この商品を含むブログ (26件) を見る
前工程(要件定義や基本設計)を中心とするエンジニアにとって、
この本は必読本の1つです。
要求がいかにあいまいかを知り、
あいまいさを排除するための考えの触媒を与えてくれます。
顧客が、自分自身でも気づいていない要求に気づくことができます。
システムの構築に関わる全ての人のゴールは、要求の実現です。
システム開発は、要件を実現するサービスであり、
それに従事する人は、待ったなしで、否応なく、全ての人が、
顧客の要件を分析し、把握するスキルを身に着ける必要があると思います。