1.要件定義ってなに?
ざっくり言うと、「どんなアプリを(What)、誰の為に(Who)、いつまでに(When)どのように(How)作るかをハッキリさせる作業」。また、「なぜ作るのか(Why)」も重要。
2.要件定義のステップ
前提として、作るアプリは「Todoリスト」、使う人物は作成者本人とする。つまり、「誰の為に(Who)= 自分」である。
ステップ1.まず「なぜ作るのか」を決める
なるべく簡潔にまとめる。開発時に立ち戻れるように、目的を見失わないようにするため。
なぜ作るのか?
→大学の課題や試験、個人勉強、サークルにおける事務仕事のタスクをまとめて管理して、やり忘れや期限切れをなくしたいから。
ステップ2.誰がどう使うか(ユーザーと利用シーン)
想定ユーザー
- 自分(20代の大学生)
- スマホメイン、たまにPC(ブラウザ)で確認
利用シーン
- 朝:今日やることを軽く確認
- 日中:こまめにタスクチェック。意識を向ける。
- 夜:タスク完了にし、翌日のタスク決め
ステップ3.やりたいことを「機能」に落とし込む
「こうしたい」を具体的な機能のリストにする。
必須機能(MVP機能)
- タスク追加
- タスク完了/未完了の切り替え
- タスク削除
あったらうれしい機能
- カテゴリごとのフィルタ機能
- タスク検索
- 期限付け
- ダークモード
- ログイン機能マルチデバイス対応
非機能要件
性能やUIなど、「どう動いてほしいか」の条件
◎対応端末
- スマホがメイン
- PCブラウザでも崩れない程度のUI
◎速度
- 画面表示は1秒程度(ストレスを感じない程度に)
◎データ保存方法
- バックエンド+DB(FastAPI+PostgreSQL)に発展させたい
◎UIの雰囲気
- シンプルで見やすさ重視
- クリック場所が直感的
ステップ5.制約をはっきりさせる(技術&時間)
自分の今の技術とスケジュールを確認する。
技術スタック
◎フロント
- HTML
- CSS
- JavaScript
- (React)
◎バックエンド
- Python
- FastAPI
◎デプロイ
1.ローカルで動かす
2.時間があればVercelなどにデプロイ
時間
- 「最低限使えるアプリケーション」
- 使っているうちに必要だなと思った機能やほしい機能を追加
3.要件定義書を作成
一旦メモなどに残しておくことにした。