問題の背景:
長期間の開発サイクルを持つITプロジェクトでは、要件が頻繁に変更され、文書がすぐに古くなります。これにより、開発者と顧客との間に不一致が生じ、サポートコストが増加し、変更の実装が難しくなります。
問題:
不正確、不完全、または古くなった要件の説明が原因で、チーム内での誤解やエラー、技術的負債の増加、QAの効率の低下が発生します。
解決策:
システムアナリストは、ライブドキュメントとアーティファクトの定期的な見直しのプロセスを導入します。以下のようなアプローチを使用しています: Documentation as Code(Gitリポジトリ内のドキュメント)、タスクツール(Jira、Confluence)との緊密な統合、要件とタスクおよびテストケースを結びつける自動化、ドキュメントレビューと要件見直しのためのミーティングの設定。すべての利害関係者にとって「真実の唯一の源」を育むことが重要です。
主な特徴:
ライブドキュメント(Living Documentation)は、単に良い仕様書と何が違いますか?
ライブドキュメントは、単に最新であるだけでなく、開発ツール(例えば、BDDテストが自動的に最新のドキュメントを生成するなど)との統合、自動的な変更確認、履歴の簡易監査を含みます。
ユーザーストーリーとバックログチケットのみを使用して、正式な文書を完全に排除できますか?
いいえ、ユーザーストーリーは、統合インターフェース、ビジネスルールの詳細やエッジケースのシナリオを十分にカバーしていません。仕様の簡潔さと完全性の間に調和が必要です。
要件が変更された場合、Confluenceのテキストを更新するだけで十分ですか?
いいえ、この更新をテストケース、タスク、データモデルなどすべての関連アーティファクトと同期させることが重要です。これらのリンクを自動化することが良いプラクティスであり、さもなければ非同期とエラーが発生します。
ネガティブケース:
大規模なフィンテックプロジェクトでは、要件がWord文書に保持され、メールで配信され、単一の履歴を持ちませんでした。リリース後、一部の機能が顧客の期待と一致せず、一部のバグが仕様に反映されませんでした。
利点:
欠点:
ポジティブケース:
別のプロジェクトでは、文書がコードと同じリポジトリ(Asciidoc + Gitlab)に保持され、すべての変更はコードレビューを通過しました。要件、テストケース、タスクとのリンクされた関連を設定しました。
利点:
欠点: