要件定義の橋掛け~失敗しないシステム開発の準備#2~

要件定義の橋掛け~失敗しないシステム開発の準備#2~

要件定義への橋掛け~失敗しないシステム開発の準備#1~でまとめたシステムの「目的」「対象」「効果」を基に、要求を明確化していきます。失敗しないシステム開発に役立てていただけたら幸いです。

システム化計画を基に作成した新ビジネスモデルと、ToBeモデルを参照し、要求を以下の3種類に分類して整理すると共に、ToBeモデルをブラッシュアップしていきます。3種の要求の意味は以下のとおりです。

・「ビジネス要求」=トップダウンの要求

・「業務要求」=業務レベルの要求

・「システム要求」=システムレベルの要求

そして新システムイメージを基に要求を抽出し、「ビジネス要求」「業務要求」「システム要求」に分類していき、にまとめ、併行してToBeモデルをブラッシュアップしていきます。

この時表にまとめておくことを推奨します。

要求のブレイクダウン

整理した要求をブレイクダウンしていきます。「ビジネス要求」に分類された項目をブレイクダウンしたものが「業務要求」や「システム要求」になりうるか、分析していきます。

  • 「ビジネス要求」→「業務要求」
  • 「業務要求」→「システム要求」

この①と②のトレースが可能な形にブレイクダウンするのが理想です。

例えば次のように定義します。

・ビジネス要求:マルチチャネルによる顧客接点の増加。それに伴う顧客及び売り上げ増加。必要となるリソースの配置(人·モノ·金)。

・業務要求:ユーザシナリオの確立。配置された少数精鋭のスタッフによる業務フローおよび業務プロセスの確立。

・システム要求:必要なデータ要件とプロセス要件の確立。プロセス要件を満たす機能およびUIの構築。

ここで気をつけなくてはならないのは、無理にブレイクダウンしないことです。無理して「ビジネス要求」を「システム要求」にブレイクダウンして整理するということは、本来システムで解決すべきでないビジネス課題に対して、強引にシステム化による解決を図ることを意味します。どうしてもブレイクダウンできない要求、かつ実現を要する要求に関しては、「ビジネス要求」→「ビジネス要件」「業務要求」→「業務要件」という形で、「システム要件」以外の要件として整理しておきます。また検討の中では、どうしても要件化できない要求が多々現れてきます。そういった要求は差し戻します。

つまり「先送り」の対象とします。この時点で、システム要求としてブレイクダウンされた要求と、システム以外の要件となりうる要求、そして差し戻し対象の要求の3つをきちんと分類することが重要です。エンタープライズ系システムでは、コンシューマー向けシステムに比べやや長めのシステムライフサイクル全体で、企業組織として要求がどうあるべきかを考える必要があります。コンシューマー向けシステムでは、ビジネス直結の俊敏性が求められることもあり、システム要求にプレイクダウンする項目の比率が高まります。

時間をかけて完成品をリリースするよりも、半完成品でもいいから早くお客様の目に触れさせ、評価されることにより、さらなる要件が生まれることがあります。きちんと要求が整理されているかを確認しましょう。「何がしたいのか」が不明確なら、そこから明確にしていきます。この時点で詳細に踏み込んで、必要以上に時間をかけるべきではありません。煮詰まったら、「概要でよい」くらいに割り切りましょう。現時点で把握可能なレベルできちんと押さえれば問題ありません。わからないものに時間かけるのは無駄です。方向性さえ見失わなければいいのです。例えば「業務要求」から「システム要求」にブレイクダウンする要求としては、通常の機能に関する要求以外に、ユーザビリティ、移行要求等が挙げられます。また前述したとおり、「ビジネス要求」から「業務要求」を通り越して「システム要求」にブレイクダウンする要求もあります。

要求と現実性

要求の中には、現在の技術では実現不可能なものも含まれます。やや荒唐無稽な話あるかもしれません。そういったものを「システム要求」として分類するのは危険です。但し、例外はあります。企業組織の経営判断により、「業界にかつてない仕組みを構築する」「世界最先端の仕組みを構築する」という強い意志があれば、システム要求にブレイクダウンし要件化すべきです。つまり「ビジネス要求」を「システム要求」として整理することになります。この場合、「人・モノ・金」といった経営リソースをどうやって調達するか考える必要があります。

そこまでの意思がないようなら、「技術的困難」を理由に、この時点で要求から除外します。そのほか、この要求の段階で既に明らかになっている時間やコスト(予算)の制約により、要求から除外せざるをえないものも多々あります。どうしても実施する場合には、期間やコストを追加する覚悟が必要です。

ToBeモデルのブラッシュアップ

改めて、要求を満たすモデルとしてのTOBEモデルを作成(修正)します。

・ビジネス要求→システム化企画含むビジネスモデル

・業務要求→要求に伴う制約まで明確になったプロセスモデル、データモデル

・システム要求→ UI、機能/非機能

可能な限り整合性を保ちつつ、モデル化していきます。

 

まとめ ~要求明確化の手順~

要求明確化の手順要求の明確化は以下の手順に沿って行います。

Step 1 ビジネス要求、業務要求を把握する

まず、システム化企画、ToBeモデルから、要求のうち「ビジネス要求」となりうるものを改めて抽出します。現場をないがしろにしてはいけませんが、トップダウンの「意思」を優先します。「ビジネス要求」を整理した上で、「ビジネス要求」から「業務要求」へのブレイクダウン(落とし込み)を行います。この段階で各部署や現場の要求を取り込みます。ブレイクダウンした業務要求は、ToBeモデル、プロセスモデル、データモデルに反映させます。

Step 2 要求の発生源を明確にする

現場からの要求度合いが強い「業務要求」について、発生部門と担当者を明確にします。その際、その要求を満たすことが経営課題の解決につながるものを、優先事項としてチェックしておきます。つまり、業務要求から遡りビジネス要求との整合性をチェックし、ビジネス要求たりうるものを優先とするのです。

Step 3 要求の背景にある課題·問題点を明確にする

上記の1、2で把握した要求の背景をきちんと認識し、課題や問題点を明確にしていきます。「ビジネス要求」と「業務要求」について、それらの要求が発生した原因や理由を明らかにします。

Step 4 システム要求への落とし込み

「ビジネス要求」と「業務要求」のうち、優先順位を参考にして「システム要求」への落とし込みを行います。この作業は経営視点、現場視点、システム視点といった多方面からの検討を経た後に行います。システム要求を基に必要なUI、機能/非機能への対応を検討します。

Step 5 要求のランク付け

「システム要求」として洗い出した時点で、ひとまず以下の評価基準に照らして、それぞれの重要度合いを5段階にランク付けしていきます。重要度の高い方から順に5、4、3、2、1の数値を与えます。

・経営およびビジネスに与える影響の大きさ

・緊急度

・課題解決に要する規模など

これらの点を考慮し、総合的なランクを決めていきます。ランク後、改めて、優先順位の高い要求のUI、機能/非機能について多面的に検討します。

Step 6 要求の階層化を整理する

要求が「ビジネス要求」「業務要求」「システム要求」としてきちんと分類されているか、「ビジネス要求」から「業務要求」、「業務要求」から「システム要求」ヘブレイクダウンした事項が整合性を保っているか。そしてブレイクダウンした経緯とともに、トレーザビリティ可能になっているかを確認します。併せて、ToBeモデルが各要求を反映しているかを確認します。

基本的には、エンタープライズ系システムでもコンシューマー向けシステムでも、要求の洗い出し方法は変わりません。但し、コンシューマー向けシステムの方が、リリースまでの時間短縮を求められる場合が多いため、必要最低限の要求をスピーディに開発まで持っていく必要があります。また、ビジネス要求は不変であり、業務要求レベル、システム要求レベルの修正の場合、ビジネス要求との整合性をとりつつ、速やかにシステム要求を明確化していきます。

 

実施作業の場合分け

以上の作業項目を下記の場合分けに応じて、適宜、実施していきます。

エンタープライズ系システム→新規➊→修正③

コンシューマー向けシステム→新規❷→修正④

➊の場合、具体的手順を全て行います。❷の場合、時間をかけずに要求の洗い出しを行います。緊急度が高い場合、優先順位付けを考えるよりも、要件化を併行して行うことで実装までの時間を短縮します。③の場合、ビジネス要求でサブシステム単位の修正ならば、システム全体の目的からブレていないかを確認した上で整理します。業務要求でプロセス単位の修正ならば、システム全体との整合性を意識して追加·修正対象のプロセス、データの要求を明確にします。

システム要求で機能レベルの修正ならば、想定機能の位置付けのみ整理します。④の場合、コンシューマー向けシステムでは、ある程度のプロセス機能のまとまりの単位に、ビジネス要求レベルの大幅な修正が入る場合は、③と同様の整理を行います。業務要求でプロセスレベルの修正ならば、ある程度の規模の場合に限り、エンタープライズ系システムと同様の整理をします。システム要求で機能レベルの修正ならば、想定機能の位置付けのみ整理します。

 

【広告】Librus Tech Communityのお知らせ

Librus株式会社が運営する、システムエンジニアやプロジェクトマネージャーの方向けに展開するコミュニティにぜひご参加ください。「互いに助け合い、学び合う空間」をコンセプトに、システム開発に関するセミナーや勉強会をはじめ、案件や転職先のご紹介、相談対応も行います。エンジニア初心者の方や起業、現在フリーランスをされている方、フリーランスを目指している方も大歓迎です。

▼Slackコミュニティ入会フォーム
https://forms.gle/1D5duKwVJhm1vFb18

テックカテゴリの最新記事