個人開発

要件定義を作成してみた、大変だった。

document 個人開発

ごきげんよう、Zei(ゼイ)です。
個人開発をするにあたって、「個人開発ではありながらも、しっかりとシステム開発のプロセスを踏んで形にしていこう」と決意しました。
今回は、システム開発9つの工程の2番目【要件定義】を実際に作成してみました。

要件定義を説明している記事↓
【依頼者も開発者も大事な工程】要件定義は何をすればいいの?

一番大事な要件定義の部分を深堀している記事↓
IPAの資料を読みながら要求定義を深堀してみた

以前の決意した記事↓
超個人的なWEBアプリを作りたい

システム開発の工程全体を説明している記事↓
システム開発の流れと開発手法を知ろう

記事概要

実際に要件定義を作ってみた感想になります。

実際に個人開発として作成予定のシステムになってきますので、具体的な内容を記載するというよりは、作成するにあたって感じたことなどを記載していきます事ご承知おきください。


今回は、自分で作成した要求定義のテンプレートを使用し、要求定義がある前提で要件定義を作成していきました。

初期要求(ニーズ)を明確にする

ここに対しては要求定義を学び、システム化する目的(Why)と何がしたいのか(What)をはっきりさせていたので特に困ることはありませんでした。
あと新規プロジェクトなのでそこまで困らなかったのかもしれません。
現在の業務を効率化するシステムなどの開発の方がここは難しいのかもしれません。

ステークホルダを洗い出す

ここに関しても、個人開発なので自分とユーザーしかいなかったのでそこまで深く決めるということはなかったです。ユーザーもユーザーで”いつか現れるユーザー”ですが・・・。
ただ、大きなシステムや他部署まで関わってくるシステムなどは、誰が関係者か洗い出し、かつ要求を集めるのは本当にすごく大変そうだなと感じました。

要求の妥当性検証

今回の個人開発はスモールスタートで考えているので、最低限の機能しか固めていません。リリース後に徐々に機能を追加していく予定なので、今のところはここもそこまで困りはしませんでした。
ただ、夢はそこそこあるので、ゆくゆくは今頭に描いているアレコレを精査する必要があるのだろうなと思っています。
大きなシステムはどこを削るか、かなり難航しそうだなと感じました。

制約・前提条件を明確にする

個人開発なのでかなり決め打ちな所(フレームワークや本番環境のサーバーなど)が多いですが、本来ならしっかり決めないとまとめていないと確かにダメだよねと感じました。

要求の優先順位付け

今回はスモールスタートで本当に必要最低限の機能のみを実装予定なのでここも問題なしでした。
すべての機能が必須機能で優先順位はすべて1位です笑

ステークホルダと合意形成する

ステークホルダは私くらいなので割愛。
しかし現実はとっても大変そうですよね、ステークホルダへ合意形成をとるための時間を考えながら進めないといけないらしいので・・・。

仕様として定義

今回、一番頭を抱えたのはここでした。

要件定義書は何を用意するの?【作成するもの】をまとめていた際に用意するものが多く、実際に決めること、まとめることが多くてかなり時間を使いました。
「え、そんなことも今の時点で決めておくの?」「え、これも?え、あれも?」とびっくりしながら作成しました。
ですが、おかげでシステム開発時にそこまで迷わないのではないかなと思えたことと、確かに依頼者とここまで詰められたら後戻りや食い違いを起こさなそうだなと感じたので、すごく大事なことだなと感じました。

感想

要件定義の作成はとっても大変でした。
おそらく個人開発ならさっさとコードを書き始め、動くものを作ってしまいポートフォリとして用意し、自走もできるし実装もできるというアピールができる方がいいのでしょうが、私はこの工程をしっかり踏めて良かったです。
このままいきなりコードを書いていたらきっと視野が狭くなってしまって、後々あの機能つけなきゃ、この機能つけなきゃと、グダグダになってしまっていたのではないかと思います(バリデーションチェックなんてものは実装しそびれていたんじゃないかと・・・)。
今の時点である程度まとまり、何をやらないといけないのかが明確になったのでコードを書く時に悩むことが少なくなる気がしてます。
あと実際の業務でしたらいきなりコードを書くことはないと思うので、システムを作るとは何か。という意味でちゃんと工程を踏めて良かったと思います。

そして要件定義はシステム開発を理解し、かつコミュニケーションがしっかりできる人が上手に進められそうだと感じました。開発の知識がないとそもそもシステムを開発できないですが、しっかりとコミュニケーションを取らないと依頼者の要求をヒアリングできないし、提案、共有もできないので、どちらのスキルも大事なので両方を磨いていけたらと思いました。

そしてドキュメント作成センスも必要ですね!!!ドキュメントに関しては目で見るコミュニケーションだと思うので、誰が見ても何を言っているのか分かるものにする必要があるので、それも磨けたらなと感じました。

要件定義、すごいスキルですね。

コメント

タイトルとURLをコピーしました