こんにちは。じゅに(@Jyu210_engineer)です。
前回は個人開発関係記事の一発目として「まず最初にやったこと」を書き、採用する(したい)技術と何を作るかというところが決まりました。

何を作りたいか決まったところで、とりあえず要件定義書を作成してみました。
個人開発で要件定義書まで書くかどうかは分かりませんが、スキルキャッチアップだけでなく、自分が別で運営しているブログ「カバンの中身ラボ」のためになるようなアプリ(サービス)を目指しているので、欲しい機能などを明確にしたいと思いから要件定義書を作成することに決めました。
ということで、今回は要件定義書にどういう内容を盛り込んだかを書いていきます。
要件定義書とは
まずはそもそも要件定義書とはというところから。
要件定義書とは開発するシステムやアプリ、サービスが「何を作って、何を実現するか」を定めたドキュメントになります。
要件定義書を作ることにより「何を作るか」といったような事が明確になり、開発のゴールを見定めることができるようになります。
その結果、後工程(設計や開発、テスト)での手戻りを防いでくれる重要なドキュメントです。
あとは受託案件などであれば、お客様を含めたステークホルダーと開発内容を合意し、認識のズレを防ぐことができます。
ステークホルダーとの合意については、個人開発では自分自身がOKであれば良いのでここはあまり気にする観点ではないと思います。
それでも要件定義書を作ろうときめたのはやはり「何を作って、何を実現するか」を明確にしたいから。
自分の中で考えがフワフワしていると、それこそ後々手戻りが発生するのを防ぎたいという気持ちが強かったからです。
要件定義書のフォーマット(ファイル形式)
要件定義書のフォーマット(ファイル形式)は作成する人や企業、チームによって異なりますが、Wordで作成されることが多いと思います。
要件を一覧にしたい場合などはエクセルが効果的ではありますが、文章としての体裁を重視したい場合はWordに軍配があがる感じですかね。
と言いつつも自分はPowerPointでしか書いたことがありませんが…。
(前職が何でもPowerPoint文化だったので)
では今回はどうするか?
とりあえずMicrosoft Officeのライセンスは持っていないので、Googleドキュメントかスライドか、はたまたスプレッドシートにするか。
と悩んでたところで本業で現在携わっているプロジェクトで設計書をMarkdownで作成してほしいという話しがあっていたのを思い出しました。
記事作成段階でフォロワーさん200人ちょいなのに、めちゃくちゃいいねもらってビビってます…。
でもそれだけ設計書をMarkdownで作成するということは注目されていることなのかなと実感しました。
Markdownで作成するメリットとして以下のようなことが考えられます。
- Gitでの差分管理が行いやすい
- 専用ソフトが不要でテキストエディタ(サクラエディタやVSCodeなど)で編集できる
- ファイルが軽量
- 記法が複雑でなく、手軽に作成できる
- 様々なフォーマット(ファイル形式)に変換できる
- AIに投げやすい(.mdファイル自体をアップロード or チャット欄に内容コピペ)
この中でも「Gitで管理できる」ということや、「AIに投げやすい」といったところが大きいのかなと。
これらを踏まえて今回の個人開発では要件定義書からMarkdownで作成することに決めました。
ちなみにツールはVSCodeを使いました。
要件定義書の構成
要件定義書の構成や粒度も人や企業、チームによって様々ですが、今回は以下のような構成で作成してみました。
- 背景
- 目的
- システムの対象ユーザー
- 提供価値
- 機能要件
- 非機能要件
- 技術スタック
要件定義書とはとか先に書いてはみましたが、それぞれの章でどのよなことを記載するかは色々なところに転がっていますし、AIに聞いても構成の説明や作成などはしてくれるので、特に詳細の説明は行ないません。
(じゃあそもそも、要件定義書とはとかもそうしろよというのは置いておいてください)
今回はMarkdownで作成したので強いて言うのであれば、「要件定義書」であることを見出し1として、上記の構成をそれぞれ見出し2で記載したというぐらいでしょうか。
それ以下は見出し3でより細分化するなり、箇条書きで書くなりは好みによるかなと。
とはいえ、WorkやExcel、PowerPointのように図を使って自由自在に表現ということはできないので、文章でシンプルに仕上げることになります。
まとめ
今回は「要件定義書」について「個人開発なのになぜ作成しようと思ったか」「どのフォーマット作ったか」「構成」などをどのように考え、実行したかを書きました。
前回に引き続き、思うがままに書いているのまとまりのない文章になっているかと思いますがご容赦ください。
あくまで目的は個人開発をやり切ることであり、ブログで過程をアウトプットすることではないので。
(ここ重要!)
とはいえ、自分のように個人開発に初チャレンジするような方の参考になるように今後も個人開発の過程を残していこうと思いますので、よろしくお願いします。
コメント