コチラの記事は以下の人を対象としています、是非ご参考ください。
- 要件定義をこれからしようとしている方
- これからSEを目指そうとしている(仕事内容が知りたい)
- 要件定義の経験を積みたい
要件定義のはとても大切な工程であるが故に経験が少ない社員はほとんど任せられない作業です。
ここでは普段の業務から訓練を積むための要件定義のコツについてお伝えします。
今回はWebシステム開発プロジェクトを軸に説明させていただきます。
コチラはWebシステム開発Pjの1つになります。
まずは何を作るのか?
実際に作っても需要がありそうなシステム、ということで「自宅学習できる勉強用システム」を作ろうと思います。
ここで一番最初に重要なのは「要件定義」になります。
要件定義は様々なプロジェクトで必要不可欠ですが、僕は書き方に関してほとんど教わったことがありませんでした。会社の人に聞いて見ると本を読んだり、ネットを参考にしたりと、みなさんオリジナルだそうです(決まったフォーマットもないしね)。そこで、自分なりに正しい書き方をアレンジしていくことにしました。実際にそれを実践するうちに、会社からの信頼も築け、給与も着実に上昇していきました。今では会社のフォーマットとして採用されたほどです。
今回はこの経験から学んだことをシェアします。まずは要件定義がなぜ重要なのか、そして私が実際にどのようにアプローチしてきたのかを見ていきましょう。
「要件定義」は幅が広いのでシステム規模などによって全然変わります(例えば、完全にシステムを構築する場合は、開発環境をどうするのか?システム環境の構築は?などの情報が必要になります)今回説明する要件定義については、システム改修などで利用できる要件定義のやり方になります。
以下の本がメチャクチャ参考になりました。よろしければご一読ください
絶対に理解しておいてほしい「なぜ要件定義が重要なのか?」
プロジェクトの進行において、要件定義は工数を最も効果的に削減できる段階です。
例えば、トラックで荷物を運ぶ会社で大幅な工数削減のプロジェクトがあったと仮定してみましょう。これに対して最初に考えるのは何でしょうか?
- 運送スタッフのスキル向上?
- 積載方法の改善?
- 運送ルートの見直し?
これらのアイディアは確かに効果的な手段なのですが、これは要件定義以降の工程作業になります。
実は上記の方法の工数削減は元々あるものの工数削減でしかありません。『大幅な工数削減』の課題は非常に難しくなります。積載時間の改善を例にとると、仮に1時間かかっていたものが45分になっても15分しか削減できません。ですが「運送方法のそのものの変更」が可能であれば場合はどうでしょうか?トラックで移動していたものを貨物列車に変えれば?人間が積載していたものをロボットに変えれば?そんな方法をとれるのが要件定義、という工程になるのです。
また、今後の世の中は上流工程ができる人間が特に重宝される時代になると強く思っています。
その大きな理由は『ChatGPTの登場』です。難しいシステムでもChatGPTに依頼すれば簡単にコードを書いてくれます。私も一人でプロジェクトをしていたときは大半をChatGPTに記載してもらって、自分は少しの修正でシステムを仕上げていました。
要件定義はメリットも大きいですが失敗したときのデメリットも大きいので新人にはあまり任せてもらえない仕事です。要件定義の経験を積みたければ普段の作業から要件定義を書く練習をしておきましょう。
では要件定義を始めよう!!
それでは要件定義の方法の説明になります。
絵を描く
まず、システムの内容を聞いたあと、簡単な絵をExcelで書くようにしてください。
週単位でしかお客様に会えないケースや、お客様に提出するものであればもっと形式にこだわって作る必要がありますが、最初は形式にこだわらずに簡単なものを作るようにしてください、整書は後でで全然問題ありません。
モグラビト
実践工程
とりあえず、今回のプロジェクトに対してメチャクチャ簡単な要件定義書を作成(1P目のログイン画面)させていただきました。
お客様との関係性によってはべつに紙で書いてもOKですが、自分は悪筆+Excelで書くことにはあとで紹介する色々なメリットがあるので、説明に自信がないうちはExcelで書くのか吉です。
正直書くのに1~2時間あればできあがります。
わざわざExcelで作っているのは以下の点で利点があるので僕はそうしています。
- バックアップがとりやすい(これが一番のポイント)
- お客様への共有資料としても利用可能
- 後の画面設計書の作成へ流用可能
どんなモノでも必ずバックアップを取る、というのは習慣化してください!(ただし、セキュリティの都合上、取ってはいけないものがあるので上司に確認すること)失敗して消してしまうなどは新入社員が最初に必ず起こすミスです(自分も何度かやらかしましたw)
要件定義書の説明・使い方
最初にだいたいでいいのでイメージに対する疑問点を赤字で記載します。赤字で記載する理由は後述します。
打ち合わせの前に「質問する内容がわからない」という質問をよく聞きますが、それはシステムについてのイメージがついていないことが多いです。
簡単に絵を書いてみる、要件内容を箇条書きにする、試しに作ってみる、などを行うと自然と質問も沸いてきますよ。
いざ、打ち合わせ
上資料を見せれば質問内容もわかるし漏れることもありませんね。「全然違うよ!」と言われるケースでも上の資料があれば時間を無駄にすることはありません。
打ち合わせ後の資料は以下の通りです。
- お客様からお話をいただき、聞いた内容は赤字から黒字へ変更する
- 新規の指摘があればどこかに書いておく(別に吹き出しにする必要はありません)
- 打ち合わせ後に資料をお客様へ送る
別ページでよいので、いつ、誰と打ち合わせしておくとより良いと思います。
まとめ
今回は上流工程以降の工程でもできる要件定義の建て方を説明しましたが、いかがでしたでしょうか。今回説明した要件定義の書き方ですがあらゆる仕事で利用できるやり方です。要件定義を書いてから作業、のルーティーンが確立するようになってから仕事の質が格段に上がるようになります。これからシステム開発に取り組む方々にも、ぜひ要件定義の大切さを理解し、自身のアプローチを見つけていただければと思います。成功への第一歩、頑張ってください!
次回は実際のスケジュールの建て方について説明させていただきます。