Web連載の第2回である本稿では、アジャイル開発におけるドキュメントの問題を取り上げる。いつ、どのようなドキュメントを記述し、利用していくかについて述べていく。
アジャイル開発に関する諸原則を定義したといわれる「アジャイルソフトウェア開発宣言」に、「ドキュメントよりも動くソフトウェアを重視する」という記述がある。このことから、「アジャイル開発ではドキュメントを作成しない」という誤解がいまだに存在している。これは大きな間違いである。あくまでもソフトウェア開発に貢献の少ない無駄なドキュメントを省略していく、というのがアジャイル開発が目指すスタイルだ。
もちろん、従来のウォーターフォール型開発におけるドキュメントとは違った考え方が必要になることは間違いない。基本となる考え方は次の3つである。
- コミュニケーションのために利用する
- 必要な事柄は正確に記述する
- 無駄なことはできるだけ省く
以下、アジャイル開発におけるドキュメントの注意点を述べていく。
コミュニケーションのためにドキュメントを利用する
アジャイル開発ではコミュニケーションを重視し、動作するソフトウェアを開発することを目的とする。ウォーターフォール型のように、契約によりフェーズごとにドキュメントを検収対象とし、その完成をもって終了するというわけではない。
アジャイル開発で必要となるドキュメントは、関係者間のコミュニケーションを円滑に進め、システムに関連する情報の理解を促進するために利用する役割を持つ。そのため、必要以上に形式的である必要はない。シンプルに作成し、見栄えよりも中身を重視する。
作成したドキュメントをたたき台として議論を進め、さらに必要な情報を盛り込んでいく。理解が難しい事柄については、ドキュメント化して共有する。共通認識が得られ、必要がなくなったドキュメントは省略する。開発と同じくドキュメント作成作業においても、当初の予定を順守するだけでなく、プロジェクトやチームの状況にあわせて作成方法を柔軟に変更していくことが重要になる。
必要なタイミングで必要なドキュメントを書く
ドキュメントは目的をもって作成するべきである。どんなタイミングでどのようなドキュメントを作成するのが適切か。これはプロジェクトのフェーズと深い関連がある(図1)。
システム企画において、システムの目的を共有し、ビジネス要求からユーザー要求、システム要求を抽出するフェーズで必要なドキュメントは、情報を共有し合意を得るためのものである。業務上認識されている課題を一覧にまとめ、課題を解決するためにどのような施策を実施するか、それによりいかなる効果が期待できるかを定義したシステム企画書を作成する。施策実現にあたり、システムに必要な機能を抽出しリストアップする。このような活動の結果である各種のドキュメントは、システムの目的や要求の優先順位をプロジェクトのステークホルダー間で理解し共有するために作成する。
次にシステム開発のフェーズでは、システム要求をより詳細化して機能仕様とし、開発者がプログラムを実装・テストして機能を構築する。このフェーズで記述するドキュメントは、システム機能の仕様についてユーザーに確認をとるために必要なものと、開発者がプログラムを実装するために必要な事柄が網羅されているものである。
ユーザーとの間では、開発する機能で何を実現するのかを打ち合わせる。入力情報をどのように登録するか、それをどのように加工するか、といった内容についてユーザーと合意する。ユーザーとの合意に基づき、設計者は画面構成や処理内容、データ構造に関する情報を開発者に伝達する。
最後の保守・運用のフェーズでは、システムを維持していくためのドキュメントが必要になる。追加開発の際に必要なアーキテクチャや機能の配置、APIに関するドキュメントなどがそれにあたる。利用者を教育するためのマニュアルも重要だ。
注意すべき点は、こうしたドキュメントを開発フェーズで作成しようとしないことである。開発フェーズでは、あくまで開発を進めるために必要最低限のドキュメントのみを作成する。保守・運用のために必要なドキュメントについては、それを作成するタスクを把握しておき、開発が落ち着いた段階で実施することが望ましい。
(次ページでは、 ドキュメントの分類や、モデル化の効能について解説!)
会員登録(無料)が必要です
- 1
- 2
- 次へ >
- ERP導入企業は34.8%、経営改革や業績管理に活用する動きも─ERP研究推進フォーラム/IT Leaders共同調査(2013/02/07)
- ツールの効果的活用で機能品質高め─テスト工程のあり方を見つめ直す(2013/01/29)
- IaaSを利用する際、これだけは押さえておきたいセキュリティのツボ(2012/10/18)
- これからIT部門が育てるべき人材像とは(2012/08/24)
- ベテラン社員に技術やノウハウが偏在、情報システム部門の技能継承が課題に(2012/07/19)