💰

個人開発の要件定義で役に立ったツール

2023/11/26に公開

家計簿って続かないんですよね。

高校からずっと10個くらいのアプリを使ってきましたが、どれも続きませんでした。
しかし、いつの間にかお金が口座から消えている経験があるので、続けたい思いはあるんです。

そのため、転職に向けたポートフォリオ作成を兼ねて、続けられる家計簿アプリを開発してみることにし、要件定義から始めました。

この記事では、要件定義に初挑戦した筆者が役立ったと感じた参考資料を紹介します。

バックエンドをドメイン駆動開発で開発することは要件定義前に決めてました。
そのため要件定義中にバックエンドの設計手法を決めたい人は部分的に参考にしてください。
アプリはベータ版から始まり多数のバージョンアップを経てリリースする予定でしたので、保守・改修がしやすいドメイン駆動開発を選びました。

全体の方向性作成

まず個人開発での要件定義の全体像を調べました。
https://eh-career.com/engineerhub/entry/2021/09/24/110000

この記事ではn=1という要件定義手法が紹介されています。
メインユーザーを1人に限定することにより、特化したアプリを作成できると説明されています。

個人開発は自分ひとりではなく、色んな人にとって役に立つアプリでなければならないと考えていたので衝撃的でした。

この記事を読み、まずは自分をペルソナにして開発することを決めました。

ユーザー決まったあとにやることは?

さて、ペルソナが決まったあと、ユーザーストーリーの作成を行いました。
ユーザーストーリーは、そのペルソナがアプリをどのように使用し、その結果としてどのような変化が起こるかを定義するものです。

ユーザーストーリーの作成で役に立ったサービス

ユーザーストーリーの作成ですが、以下のサービスが素晴らしかったです。

ユーザーストーリー生成特化のベアプロ的チャットサービス
ChatUSG
https://chat-usg.vercel.app/

このサービスを利用することでアプリの概要、またユーザーと開発者に与える利益が明確になりました。
(どんうさぎくんが可愛いのもよき)

これでアプリ全体のユーザーストーリーが決定したので、次に各機能に対するユーザーストーリーを検討しました。
なお細かい書き方などは以下の記事を参考にしました。
https://www.cybermedian.com/ja/capturing-functional-requirements-with-use-cases-and-user-stories

ユースケース図の作成

ユースケース図の作成には、以下の講座が大いに役立ちました。

https://www.udemy.com/course/learning-application-architecture-with-reversi/
この講座でハンズオンで要件定義からアーキテクチャ設計・開発まで学べました。(ハンズオンで要件定義を学べるUdemy講座は珍しいのでおすすめです。)

ドメインモデル図の作成

ユーザーストーリーとユースケースを元にドメインモデル図を作成しました。
集約という概念が難しすぎて全然分からなくなりましたが、以下書籍を読んだところスッキリ理解できました。
集約だけでなく、他のつまづきポイントに対してもわかりやすく本質的に答えてくれています。
初めてドメイン駆動開発を行う人は一読することをおすすめします。
今回の記事で一番オススメです!
https://booth.pm/ja/items/1835632

機能一覧の作成

ユースケース図の作成と同じ以下の講座を参考にして機能一覧を作成しました。
CRUD単位レベルの粒度でユースケースを分解するので、実装イメージが明確になりますね。


https://www.udemy.com/course/learning-application-architecture-with-reversi/

まとめ

要件定義は初めての経験でしたが、適切な知識の収集によって、何とか具体的な形にまとめることができました。
ユーザーストーリーの作成を通して、ユーザーと開発者に対するゴールが明確になり、機能一覧・ドメインモデルの作成を通じて実装イメージも明確になりました。
これで迷うことなく基本設計に取り組めそうです!
まだまだ改善点はあると思うので、要件定義書を定期的に見返してブラッシュアップしていきます。

Discussion