はじめに
前回は「学習ロードマップの可視化」をテーマに、ユーザーストーリーを用いて要求定義を整理しました。
今回はその成果物をインプットに、ユーザーストーリーマッピングを使って「何を作るべきか」を具体化し、MVP(Minimum Viable Product)を明確にしていきます。
最終的なアウトプットは機能一覧です。これは次回以降に作成するAPI一覧や画面遷移図へと直結する基盤になります。
要件定義とは何か
システム開発における「要件定義」とは、要求をどのような機能や仕組みで実現するかを明確化する作業です。
-
要求定義:ユーザーが「何をしたいか」を整理する
(例:学習計画を立てたい) -
要件定義:そのために「どんな機能を提供するか」を決める
(例:学習時間と期間を入力すると、自動で計画を生成する機能)
要求定義で描かれたニーズを、実装可能な仕様に落とし込むことで、開発中の迷いや手戻りを減らし、効率的に進められるようになります。
ユーザーストーリーマッピング、MECEとは?
要件定義を進めるにあたり、抜け漏れを防ぎつつ優先度を明確にできるフレームワークを活用します。
ユーザーストーリーマッピング
ユーザーストーリーをユーザーの行動順で横に並べて、その下にアクティビティや機能を配置する手法です。
-
ユーザーが何を目指し、どの順序で行動するかが見える化できる
-
上から下に切っていくことで、MVPを定義しやすい
今回のように「初心者が何をすればよいかわからない」ケースでは、アプリがユーザーを導く流れを整理するのに有効です。
MECE (Mutually Exclusive, Collectively Exhaustive)
「漏れなく、ダブりなく」情報を整理する考え方です。
ユーザーストーリーマッピングの中でも、機能を必須機能/追加機能/非機能要件と分類する際にMECEの観点を意識すると、実装計画がブレにくくなります。
ユーザーストーリーマッピングはブレストの手法でもあるため、一人で作業を進めていくには少々不向きということで今回はMECEを使って機能の抜け漏れや重複が無い状態にしていきます。
要件定義を進めてみる
前回は3種類のユーザーを想定しましたが、要件が膨らみ過ぎることを避けるため、今回は駆け出しエンジニアに絞ってストーリーマッピングを行いました。
このマッピングを基に、MECEの観点で機能の要不要を判断していきます。
整理の観点としては以下の2点を設定しました。
-
機能の価値
-
モチベーションへの寄与度
その結果を以下にまとめています。
観点 | モチベに寄与する | モチベに寄与しない |
---|---|---|
価値が高い | A ・学習計画の提示 ・スキルポイント付与機能 |
B ・スキルツリー描画 ・ノード詳細描画 |
価値が低い | C ・学習完了管理(スキルポイントの付与契機) ・学習状況更新 ・ノード達成率表示 ・ノードのクリア条件確認 |
D ・マスタデータ登録 ・アカウント削除 ・ユーザー情報更新 ・ログイン・ログアウト |
上の表からMVPを抽出しています。
-
AはMVPの必須機能とする
-
Bはアプリのコア機能にするので、実装する
-
Cは一部をMVPに含めます
- スキルポイントの付与機能を利用するための契機になるので、学習完了管理機能は実装する
- ノードのクリア条件確認機能もノードの詳細描画に関連するので実装する
-
DはMVPからは外したいが、ログイン・ログアウト・ユーザー情報管理はアプリとして最低限必要なので実装対象
まとめ
今回は、ユーザーストーリーマッピングとMECEを用いて、要求定義から要件定義へと落とし込みました。
フレームワークを用いることで、抜け漏れなく要件を整理できた
MVPとして最低限実装すべき機能を明確にできた
次回以降に繋がるAPI一覧・画面遷移図の基盤が整った
詳細な整理内容はNotionにまとめています。
要求から要件へ落とし込む作業は、自分にとって難しさを感じる部分でしたが、フレームワークを使うことでシステマチックに整理でき、チーム開発でも役立つプロセスを実践できたと思います。
次回は第3回として、「技術選定編」 を進めていきます。