TRACERYプロダクトマネージャーの haru です。
要件定義の難しさ - TRACERY Lab.(トレラボ)では、要件定義がなぜ難しいのか、という説明をしました。
今回の記事は、要件定義を成功させるために必要なスキルと、そのスキルの身につけ方について説明します。
要件定義に求められる3つのスキル
『要件定義』に求められるスキルは、以下の3つです。
- ニーズをまとめるスキル
- 開発から運用までをイメージするスキル
- 全体を捉えるスキル
それぞれのスキルについて説明します。
ニーズをまとめるスキル
システムにはさまざまなステークホルダー(利害関係者)が関わり、それぞれがシステムに対して要望を持っています。
例えば、経営者はシステムの活用によって売上が上がるか、費用が下がるか、従業員の満足度が上がるかなど、経営的な側面から要望を出します。
業務担当者は、業務で成果が上がることや効率化を求める要望を持っています。
顧客は、自分の仕事の成果が上がるか、やりたいことができるかという要望を持っています。
開発担当者は、日々開発がしやすいか、保守がしやすいかといった要望を持っています。
現実的にはこれらの要望に全て応えることはできません。
あるステークホルダーの要望を満たすと、他のステークホルダーにマイナスの影響が生じることもあります。
これらのさまざまな要望をヒアリングし、文書化、モデリング、プロトタイピングなどを行うことで認識をすり合わせていきます。
そして、要望を取捨選択し、要件としてまとめ、最終的にステークホルダー間で合意を形成する必要があります。
このように、要件定義を行うためには、多種多様でばらばらな要望を整理し、要件の合意に導く力が求められます。
開発から運用までをイメージするスキル
要件定義をする際には、開発工程から完成、運用までを一貫してイメージするスキルが必要です。
このスキルや知識は2つから成り立っています。
1つは、開発のインプットにどのような情報が必要かを理解していることです。
要件定義でまとめた要件(上図の青)は開発プロセス(上図の緑:設計、実装、テスト)のインプットになります。
たとえば、設計と実装は要件定義の情報を基に進められ、テストでは要件を基にシナリオテストなどのテストケースが作成されます。
そのため、どのような情報が開発プロセス(設計、実装、テスト)にとって必要十分かを把握することが求められます。
そうでないと、開発中に何度も要件の確認が必要となり、手戻りやタイムラグが発生し、開発の遅延につながる可能性があります。
2つは、要件を実現するためにどれくらいの工数がかかるかをイメージすることです。
開発の設計プロセスでは、画面設計やシステムの背後にあるアーキテクチャ、データベースの設計が行われます。
定義された要件を満たすために無理な設計になったり、必要以上の実装工数がかかると、工数増加や他のトラブルにつながることがあります。
そのため、要件定義の段階で、要件定義者はその要件を満たす画面や背後の仕組みがどのようなものになるかをイメージし、工数的にも妥当な設計や実装ができるような要件を定義する必要があります。
要件定義担当者が十分にイメージできない場合は、開発者と協力し、設計や実装にとって妥当な要件かどうかを確認しながら進めると良いでしょう。
エコシステム全体を捉えるスキル
要件定義に必要なスキルの3つ目はシステムだけではなくエコシステムを含めた全体を捉えるスキルです。ここでいうエコシステムはビジネスの流れ(人、物、金、情報の循環)を表します。
ビジネスの観点から業務に必要なシステムの要件定義を進める中で、エコシステムにも目を向ける必要があります。
事業に関連する業務が全て自社で完結するわけではありません。
たとえば、物流については専門の会社に依頼する方がよいかもしれません。倉庫での管理については、倉庫を借り、管理をする人員を専門事業を行っている会社から雇うか、自社で確保するかを選ぶ必要があります。
このような観点から、自社内だけではなくエコシステム全体を考慮し、必要か不必要かを選択する必要があります。
外部の力を借りることが費用対効果に優れている場合、独自のシステムを新たに開発する必要はありません。
自社だけでなく、人、物、金、情報がスムーズに循環し、時間が経つにつれて発展していくエコシステムを持つことが良いビジネスだと言えます。
事業およびエコシステム全体を捉えた上で、必要なシステムやその中のソフトウェアを考慮し、要件定義を行います。
システムの外側を意識しないと、事業を実現するためのシステムにはなりにくいと言えます。
必要なスキルを身に着けるために『型』を学ぶ
要件定義に必要なスキルはどのように身につけるのでしょうか。
それは、要件定義の『型』を学び、身につけることです。
ここでいう要件定義の『型』とは、広く深い思考を促す手法や思考プロセスのこととします。
要件定義で必要なスキルとして、①ニーズをまとめるスキル、②開発から運用までをイメージするスキル、③全体を捉えるスキルがあると、説明しました。
たとえば、要件定義手法のRDRA *1にならうと、これらを高めるための手助けをしてくれます。
詳しくは、今後書いていく別の記事で説明していきたいと思います。
『型』に倣い、身につけることのメリットは、考えることが減ること
要件定義を進めるにあたって、「ニーズをどのようにまとめるか?」「開発から運用までをどうイメージしながら進めるか?」「全体をどのように捉えるか?」など、進め方を自分で考えるとすると、相当な時間がかかります。
その方法が適切であればまだしも、誤っていれば余計なコストが発生します。
本当に必要なのは、具体的な要件定義の進め方ではなく、成果物(何を作るかを示すもの)とステークホルダーの合意です。
「型」に倣い、それを身につけることで、要件定義の結果として必要なものを作り出すことに集中できます。
『型』は万能ではない
ここで注意してほしいのは、「型」が万能ではないということです。
「型」はスキルを高めるための方向づけを提供しますが、価値あるものを創出できるかどうかは最終的に関わる人々の力量に依存します。
また、「型」はシンプルさを追求するために、本当に必要ではないものを削除しスコープ外とすることが多いです。そのため、他の方法で補う必要がある場合もあります。
まとめ
要件定義に必要なスキルとして、以下の3つを挙げました。
- ニーズをまとめるスキル
- 開発から運用までをイメージするスキル
- 全体を捉えるスキル
これらの「型」を学び、倣うことで、これらのスキルは向上し、要件定義の結果として望むもの、つまり要件定義の成果物(何を作るかを示したもの)の創出とステークホルダーの合意を形成することを効果的に進められます。
*1:Relationship Driven Requirement Analysis:ラドラ。モデルベースの要件定義手法。アイコン同士を線でつないだシンプルなモデルによって業務とシステムの構成要素の関係(Relationship)を構造化し、要件をかたちにしていく