要求分析はそれなりに楽しいと思い込むようにしよう

最近、要求分析だけは、しっかりやったほうが良いのかもしれない。と、思うようになってきた。
実際の仕事では、「コーディングだけでは解決できないけど、客が何をしたいのか、という点さえ理解できればあっさり解決するような問題」というのは、それなりの量があるように感じる。分野によるかもしれんけど。


んで、要求分析をやるモチベーションを維持するには、「要求分析を行うのには、非常に高い能力を必要とする」というふうに思い込むようにすればよいのではないかと思う。実際そうだろうし。

というか、要求分析するのに必要な能力は、コード書く能力と近いものがあるような気がしなくもない。それは、「顧客とコミュニケーションをとるうえで、技術知識は欠かせない」とか、そういうレベルではなく、もっと本質的に。(本質的て何だよ)


要求をもとに仕様を作るのは、以下のような作業になるはずだ。

最初に客から、「なんたら仕様書」というものが出てくる。まず、ここから、「客がやりたいことは、なんなのか」を、抜き出さないといけない。
そのためには、書いてある動作を脳内でシミュレートしないといけない。文として記述されている断片化した仕様、それを、脳内で繋げて、断片化しないシーケンシャルな動作へと変換する作業が必要になってくる。

さらに、最初に客から出てくる「なんたら仕様書」は大かれ少なかれ問題を抱えている。どっかで矛盾してるとか、巨大な仕様が一言で表現されてるとか、実現無理だとか。
そういうのを発見するためには、要求を抜き出すために行ったシミュレート結果を分解して、各機能の詳細について考えないといけない。シーケンシャルな動作から、独立した機能へと分解する作業が必要になる。


この一連の作業は、コードを読んだり書いたりするときの作業と結構近い。シーケンシャルな動作と、断片化されて並列に記述された機能との間の相互変換。

ここで、無理矢理、「要求分析がうまくできる人はコーディング能力が高い」というような理解をしておく。実際はどうかは知らない。けど、そう考えておけば、それなりにモチベーション維持に繋がるはずだ。人によるだろうけど。
要求分析が欠かせないものである以上、嫌々やらないようにするのは悪いことではないはず。