見出し画像

【SwiftUI】(要件定義)iOSアプリ「優たいマー」開発PJ

企画フェーズが終わりまして、要件定義をしていきます。
今回の成果物は「要件定義書」と「WBS」になります。
では早速初めていきましょう。

1.要件定義

「要件定義書」としてますが、ドキュメントにまとめるのはめんどくさいので、noteにつらつら書く方式にします。
企画フェーズで決めましたが

株主優待リマインダー・株主優待タイマー

を作ろうと思っていますので、どのような要件・機能が必要なのかを洗い出して行こうかと思います。

・保有している株主優待を登録することができる
・株主優待は有効期限の設定が可能
・株主優待のジャンル(QUOカード、割引券、無料券等)が設定可能
・有効期限が近づいたら、プッシュ通知で教えてくれる(リマインド)
・プッシュ通知の頻度や期日については自らで設定可能
・株主優待のお気に入り登録が可能で、使用した場合や有効期限が切れた場合でも再検索を容易にする
・ソート機能(有効期限や、企業コードでソートできる機能)
・株主優待の検索機能 ← 追加機能
・企業(企業コード、企業名)の検索機能 ← 追加機能

よくありますが「追加機能」と書いてあるところは、初回リリース後に二次開発として改修して機能を増やしていく予定です。一回でたくさんのことをやってしまうと、リリースがどんどん伸びてしまうので、初回のリリースでどこまで作り込むのかをお客さんと話し合うのがとても重要な作業になります。

2.工数の見積もり

WBSを作成するために、なんの作業にどれくらいの時間がかかるのかを見積もります。※本当は手法などもありますが、個人開発なのでざっくり出していきます。
工数について詳しく知りたい人は以下を参照してください。

企画フェーズに洗い出したタスクに対して、工数を割り当てていきます。
見積もった結果は以下になります。

【フェーズごとに作成する成果物】
要件定義:WBS(1H)、要件定義書(1H)
概要設計:画面設計書(4H)及び機能設計書(4H)
製造:ソースコード(24H)
単体テスト:単体テスト仕様書(4H)
結合テスト:結合テスト仕様書(4H)
【その他作業】
・使用技術にある「広告」(2H)「リリース」(2H)の調査
・SwiftUIの公式チュートリアルの実施(2H)

Hとは「hour」のことで「1H」だと1時間ってことになります。今回見積もったのが、合計48Hなので48時間で完成できる予定ですね。
正直自分も見積もりはあまりやらないので、見当違いな値になっているかもしれませんが、最後完成した時に振り返ってどうだったのか確認して見ましょう。
noteのためにスクショなど情報まとめたりする必要があるので、もう少し時間がかかってしまうかもしれませんが・・・
頑張ってやっていきます。

3.WBSの作成

WBS(Work Breakdown Structure)とは、ざっくり説明すると、

タスクを細分化して、「誰が」「いつからいつまでに」「何を」

を管理するものです。予定を立てて、各タスクが完了した時点で、実績を入力していきます。
より詳しい情報は以下を確認してください。

実際に今回のプロジェクト用に作成しました。
「2.工数の見積もり」で工数を出したので、以下のルールで作成をしました。

①平日は1日につき2H作業ができるものとする
(5日間のうち1日を休憩日とする。それ以上予定を入れてしまった場合は別日にリカバリをする。)
②休日は1日につき8H作業ができるものとする
(休日分のリカバリは難しいので、予定がある日は4Hの作業として割り当て)

合計48Hを割り振ると以下のようなスケジュール計画となりました。

スクリーンショット 2020-10-20 21.28.11

スクリーンショット 2020-10-20 21.28.22

スクリーンショット 2020-10-20 21.37.14

スクリーンショット 2020-10-20 21.37.26

リリース予定日が2020年11月14日ですね。
こんな早くリリースできる自信は無いですが、頑張ってみます。

ちなみに今回、WBSの作成で使用したツールは「asana」といったツールになります。
basic版だと無料で使えますので、おすすめです。
「asana」については以下で記事にしてますので、合わせてご確認いただければと思います。

4.要件定義フェーズまとめ

今回は要件定義のフェーズを実施し、作るアプリの要件・機能、工数の見積もり、asanaを使用したWBSの作成を行いました。
次回からは概要設計フェーズに移行し、画面設計と機能設計を行っていきます。
上流工程を学びたい人は以下参考書がおすすめです。


最後まで見ていただきありがとうございます。いただいたサポートは毎日更新するための励みになります(^○^)