ソフトウェア開発201の鉄則 原理43:要求:なぜこの要求項目が含まれたかを記憶せよ

要旨

* 要件は、いくつもの活動が積み増さなって決定されるものだ
* そのようないくつもの活動と、その結果を、一つの要件の背景として記録すること 
* 後に要件変更が発生した時に、その要件を決定するに至った過程と整合性をとルためである
* 決定のために参照した文献へのポインタ、議論の議事録といったものを記録すること。これが、一つの「進化する」要件のために必要な活動である

解説

「あれ、これ、誰が決めたんだけ?」と後から首を捻る要件、ありますね。

この原理の「要求」の項目にいくつも記述があるが、要求は、難しいものである。一つの要求を決めるのに、たくさんの活動とたくさんの決定を要するものだ。

ヒアリング、議論、調査、アンケート、プロトタイプ。様々な活動から導き出されるものである。

それぞれの結果は、矛盾するものもあるだろう。

「起動時間がX秒以内であること」その以内が必要という意見と、いや、そのための実装なら他の機能が必要という意見。その度に、なんらかの理由をつけて、いったんその時点での最新の仮決定をするはずだ。

そんなことの繰り返しだから、きっと、そんな理由、後にきっと、忘れるだろう。

なので、その一つ一つに、どこで、誰が、どのような過程を経て決めたのか、を記録しておこう、ということ。

要件を決めるのに一番大事なのは、「決める」ことだ。大体、決まらない。

あまりいい言い方ではないが、「強引でもいいから、決める」姿勢の方がいいように思う。その決定が全て仮決定で、のちの議論で変更してもいい、という前提で。

決まっていない、より、仮ですが、こうしています、といった方が、のちの活動がずっと進むはずだ。

そして、その時に、その「仮」をどうやって決めたか、が添えられていると、その一つ一つの仮の意味合いが増し、より効果的だろう。

なお、よくこの手で、「上役に決める」というケースがある。社長のツルの一言、といったもの。

この手は、要件活動の最初からツルの一言があるのであれば、仕方ない。最初からそれは割り切って進めればいいので。

散々議論やプロトを繰り返して、最終段で上長がそれを覆すようであれば、そんなプロジェクトは、抜けた方がいい。上長のために開発やってるんじゃないから、ネ。


この記事が気に入ったらサポートをしてみませんか?