SEとしての現場経験が不足していると、要件定義工程で実装レベルのドキュメントを求められた際に、その対応に困惑することがあるでしょう。特に「もっと具体的に」という指示で、実装完了レベルの資料作成が求められる場面に遭遇することは少なくありません。このような状況について、どのように対応すれば良いのか、そしてこれは普通のことなのかについて解説します。
要件定義工程におけるドキュメント作成の目的
要件定義工程は、システム開発において重要な役割を果たすフェーズです。この工程では、システムが何をするべきかを明確にすることが目的であり、通常、設計や実装に関する詳細な内容を記載することはありません。しかし、現場によっては、より具体的な情報を求められることもあります。
要件定義の段階で、どのクラスやメソッドをどう修正するかという実装レベルのドキュメントを作成する場合、その目的は「事前にシステム設計を細かく詰めること」にあることが多いです。しかし、これはウォーターフォールモデルの一環であるため、あくまで事前にすべてを定義してから実装に移ることを求められる場合があります。
ウォーターフォールモデルとアジャイル開発の違い
ウォーターフォールモデルでは、各フェーズが順番に進んでいくため、要件定義段階でできるだけ具体的な内容を決めておこうとする傾向があります。このモデルでは、要件定義の後に設計、実装、テストと順番に進みます。そのため、要件定義の段階で詳細な実装内容を求められることがあります。
一方、アジャイル開発では、要件定義や設計を柔軟に変更できるため、実装段階での変更が容易です。このため、実装レベルの詳細を事前に決定する必要はありません。アジャイル開発を採用している現場では、要件定義をざっくりと行い、後で細かく設計・実装していくアプローチが取られます。
現場で求められる「もっと具体的に」の対応方法
「もっと具体的に」と言われた場合、その背景にある意図を理解することが重要です。もしウォーターフォールモデルに則った開発をしている場合、プロジェクトの全体像を先に明確にし、後の工程で迷いが生じないようにするために、詳細な設計を要求されることがあります。この場合、以下のように対応すると良いでしょう。
- 全体のアーキテクチャを把握: システム全体のアーキテクチャや設計を大枠で把握し、それに基づいて具体的な設計を行う。
- モジュール単位で設計を進める: 実装レベルでの具体的な作業内容が求められる場合、モジュールごとに設計を進め、どのクラスやメソッドにどのような変更を加えるかを記述する。
- コミュニケーションを取る: 詳細な指示が求められる背景や目的を上司やチームメンバーと共有し、実際にどの程度の詳細を決定すべきか確認する。
「最初から実装してしまえ」という気持ちへの対応
「最初から実装してしまえ」という気持ちも理解できますが、ウォーターフォールモデルを採用している場合、要件定義と実装を分けて行うことには重要な理由があります。事前にしっかりと要件を定義することで、後々の開発フェーズでの変更を防ぎ、システム全体の整合性を保つことができます。
実装を先に進めた場合、後で要件が変更された際に手戻りが大きくなる可能性が高いため、プロジェクト全体のリスクを低減させるためにも、要件定義をきちんと行うことが求められます。
まとめ
要件定義段階で実装レベルのドキュメント作成を求められることは、ウォーターフォールモデルを採用している現場では一般的なことです。具体的な設計内容を事前に詰めておくことで、後の作業がスムーズに進むことが期待されます。実装を先に進めたいという気持ちもわかりますが、プロジェクト全体の整合性を保つために、要件定義をしっかりと行うことが重要です。


コメント