はじめに
Webエンジニア1.25ヶ月の新人エンジニアです。
簡易的にいろんな知識をまとめてみたシリーズです。
誤りがありましたら、ご指摘お願いします!!
社内基幹系システムの改修業務に来期以降エンジニアがアサインされるかもしれない。改修業務ではあるが、システム利用者である役員やバックオフィスの方々との要件(要求・要望)すり合わせは必須だ。簡単に要件定義について調べてみたので、備忘録として記録する。
要件定義とは
システム構築において、システム利用者とシステム開発者が協力して行う最初の取り組み。要件定義とは「事業目標達成のために、システムに求めるものを洗い出し、その取り組み範囲を明らかにしていく」ことである。
ここで重要なことは、システム利用者はシステム構築に必要な技術知識を必ずしも持っていない、ということを理解して進めていくことである。その為システム利用者は漠然と「解決したい問題」を抱えているが、それをシステム開発者に正確に伝えられているシステム利用者は少ない。
要件定義を進めていくシステム開発者に必要なのは、「隠れた要求も上手くインタビューして、要件として掘り起こしていく能力」である。
システム開発工程
システムの開発工程はしばしばV字モデルで表される。ここでは「企画→定義→設計→実装」という流れを手戻りなく進めていくことを前提としている。(ウォーターフォールモデル)ここでの企画や定義が一般的には「上流工程」と呼ばれている工程である。後の実装を問題なく進めていくために、この早い段階からきっちりと作り込んでいく必要がある。
要件定義フェーズ
要件定義のフェーズは「下調べ、段取り、分析、定義、承認合意、管理維持」の6つに分かれる。ここで重要なことは「各フェーズは順番通りに一度ずつ実施される訳ではない」ということである。例えば各フェーズの後に承認合意フェーズが実施されることもあれば、段取りと分析、定義の後に承認合意フェーズが実施されることもある。
いずれにしても要件定義完了の時点でシステム規模の見積もりが完了しており、設計フェーズに必要な要件が展開できることを目指すべきである。