はじめに
本記事はクラベス Advent Calendar 2024一日目の記事です(出遅れ)。
という訳で株式会社クラベスでエンジニアをやっているkazaと申します、初めまして!
自分は技術的なすごい話はなかなかできませんが、せっかくなので「要件定義を医者に例えることで、ハマりがちな落とし穴に気づきやすくしようぜ」という、イラストもいっぱいの気軽に見れる記事でいきたいなと思います。
落とし穴①チョロ過ぎて脳死パターン
例えば保守案件でちょっとした追加要件が発生した場合、お客様からこんな風に依頼されることはないでしょうか。
zzを△△にして欲しいんですけど、できますか?
具体的な対応内容が明示されており、言われた通り実装するのもぱっと出来そうです。
すごく楽勝な仕事に思えますね。
しかしこのまま対応してしまうと、実は良くない結果を招く恐れがあります。
それは何故でしょう?
そしてどんな結果を招いてしまうというのでしょうか?
お客様の要望をきちんと叶えているし、対応も迅速に行なっています。一見すると何も問題ないように思えますが……。
では、試しにこれをお医者様に例えてみましょう。
え、触診とかしないの? どんな風に痛むのか、どこら辺が痛むのかとか聞かなくて大丈夫?
と、心配になってしまいますよね。
例え患者さんが胃薬欲しいと言っていたとしても、本当に胃薬で治るのかはわかりません。もしかしたら原因は全く別で、胃薬は全く意味のない処方になってしまうかもしれません。
それにも関わらず、ただ言われるがまま胃薬出されても、本当に治るのかなあと不安に思ってしまいますよね。
きちんと吟味して、本当にそれが適切な処置かを検討して、その上で結果として胃薬が出るのであれば、患者さんとしても安心して薬を飲むことが出来るというもの。
例え結果として同じ結論になったとしても、きちんと「お客様が何に困っていて」「どうするのが一番いいんだろう」を整理してみる。
それがお客様との信頼関係に繋がるんですね。
落とし穴②お客様に言われるがままパターン
例えばお客様から下記のような依頼を受けたとしましょう。
zzを△△にして欲しい
落とし穴①に落ちるまいと思った貴方は理由を聞いてみました。
え、理由ですか? xxが〇〇になってしまうことに困っていまして。
なるほど。xxが〇〇になってしまうという理由に対して、確かにzzを△△にすれば問題は解消できそうです。
よし、今度こそ問題ないぜ、と突き進もうとすると、今度は別の落とし穴に落ちてしまうかもしれません。
では、こちらもお医者様に例えてみましょう。
確かに人間ドッグを受ければ、何らかの原因は突き止められるかもしれません。
しかしお客様の事情を聞く限り、果たしてそこまでの対応は必要なのでしょうか?
お客様が要望しているからと言って、何も考えずにお客様に言われるがまま対応してしまうと、結果的にお客様に不利益を発生させてしまうかもしれません。
「どうするのが一番いいんだろう」は、問題を解決できるかどうかだけでは評価できないんですね。
「お客様が何に困っていて」に対して、本当にそれをする必要があるのか、あるいは本当にそこまでする必要があるのかという視点が必要です。
どうしてITになると気づきにくくなるのだろう?
落とし穴二つを見ていただいて、んなアホな〜そんなん普通気づくやろ〜と思うかもしれません。
が、これがエンジニア目線になると途端に気づきにくくなるもんなんですよね……。
いったいそれは何故なんでしょう?
お医者様とシステムエンジニア。そこにはどんな違いがあるのでしょうか?
色々なご意見があるかと思いますが、自分としては下記が一番大きな要因かなと感じています。
お医者様:人体や病気など、患者が抱えている問題に関する専門家である
システムエンジニア:お客様のビジネスに関しては必ずしも専門家ではない
この差異により、エンジニアはついつい誤解してしまいます。
「お客様のことはお客様が一番よくわかっている」
「お客様がそう言うんだから間違いないだろう」
「お客様が望んでいる方法がきっとベストに違いない」
しかし、患者が自分自身の専門家だったとしても、自分自身の体の中まで覗き込むことはできないように、お客様はシステム開発のプロではないのです。
だからこそ専門家が寄り添って一緒に考えていく必要がある、ということを忘れないようにしたいですね。
まとめ
「お客様が何に困っていて」「どうするのが一番いいんだろう」
専門家としてきちんと考えてみる。
「何も考える必要がないぐらい簡単そう」
そんな時でも、決して思考を放棄せず、一度は自分で咀嚼して妥当性を評価する。
そういう姿勢を忘れないようにしていきたい、というお話でした。