92-顧客の言葉はそのまま受け取らない

プログラマが知るべき97のこと」の92個目のエピソードは、顧客とのコミュニケーションに関する話です。ソフトウェア開発に慣れてきて自分がどんなソフトウェアを作れるかという事が解ってくると陥りがちな事に、「顧客が要求を提示してくれない」と勘違いする事があります。要件がまとまらず開発したソフトウェアは、要求を満たしていないと評価されません。状況によってはトラブルとなり、大きな仕様変更を招くこともあるでしょう。それは顧客の問題ではありません。ほとんどの場合は、開発側が顧客から正しく要求を引き出せていないだけです。一番の勘違いとは、顧客が要求を話すことが出来ると考えている事です。
このエピソードでも書かれているように、顧客はソフトウェアに対する要求を話すことはできません。これは馬鹿にしているわけではなく、顧客はソフトウェアに関する専門家ではないので、自分たちの業務に関する知識はあっても、ソフトウェアに関する知識は持っていない、それだけの事です。だからこそ、ソフトウェア開発を行うときには、専門の知識を持ったプログラマが要求を引き出して、システムを作る必要があるのです。

私はよく「顧客から言われたことを、言葉を換えて言い直す」ということをしています。そして相手の反応を見るのです。

このメソッドは様々な所で役に立ちます。相手の言葉をオウム返しのように答えては意味がありません。自分の中で解釈した上で言い換える事は、視点を変えると言うことです。
しかし、これらの考え方や手法は、あくまで顧客と対話できるという前提です。現実として、ソフトウェア業界の下請け構造により、顧客との対話が出来ない事が多々あります。元請けと対話は出来ますが、元請けは顧客ではありませんので、要求を引き出す事はできません。また、顧客と異なり、元請けは中途半端にシステムを知っている事が多く、偏った対話になってしまいます。
ソフトウェア開発を行うならば、ほとんどの場合、顧客と対話し、要求を引き出す事は避けることのできないプロセスです。プログラマだからといって要件定義の知識を勉強しないことは怠慢でしょう。逆に要件定義のみしか業務として行わず、プログラミングは行わないというのも顧客に対して失礼な事です。今後、ソフトウェア業界はこれまでから比べればコンパクトになっていくことは避けられないと思います。したがって、要件定義からプログラミングまでトータルに行える事が、ソフトウェア開発者にもっと求められていくと思います。

プログラマが知るべき97のこと

プログラマが知るべき97のこと