今回は、文書管理の効果的な手法とその手法を具体的に支援するオープンソースツールを紹介する。つねに更新される成果物や文書を系統立てて、なおかつ時系列に沿って管理するにはどうすればいいのだろう。
プロジェクトマネージャ(=PM)の石出さんは今日も悩んでいます。
石出さん談――。
「成果物はどこにあるのだろう。レビューしないといけないけどできあがっていないように思える。でもできたといっていた。どこにあるのだろう。あっ、これか。あれっ、この間の指摘が反映されていない。メールをしたらバージョンが違っていましたという回答が返ってきた。これが最新なのか。確かに反映されている。これで内容をチェックして、これでオッケーと。この文書については100%の進ちょくとしてよいだろう。あっ、先日お客の山田さんが仕様のここを変更してほしいといっていたな。担当に伝えておかないとどれが影響を受けるのだろう。修正をしてもらってと。成果物は全部でいくつあればいいんだ? チームによってファイルの分割がばらばらでいくつあればいいのか分からない。これも問い合わせないと……。探してばかり、確認してばかりで思うように管理できないな」
なるほど、石出さんは成果物の管理について、かなり深刻に悩んでいるようです。この悩みを解決するにはどうすればいいのでしょうか。まずは、なぜ成果物を管理するのかという点から考えていきましょう。
成果物を管理する目的は作成する成果物を明確にし、作成した成果物を格納した場所を明確にして、その成果物の変更を維持管理することです。いい換えると、
という3点を満たすことができるようにプロジェクトをコントロールするともいえます。
1つ目はプロジェクト計画によって規定し、2つ目、3つ目は構成管理の手法を利用することで実現できます。
プロジェクトにおいて、成果物を明確にして記述方法、フォーマット、記述の粒度を決定することは重要なことです。このような決定を行っていくことがプロジェクトを混乱させにくくします。
また、プロジェクトではPMやプロジェクトメンバーが成果物を参照します。この成果物を探す・問い合わせるという作業を行うと、参照する人間の全員が行うことになり、プロジェクトにムダを生み出します。レビューや変更修正をする際にどのバージョンの成果物に対して作業すればよいのかを確認する作業を毎回するのもムダです。
変更の影響を理解するためには、成果物間の関係を明確に記録することが重要です。例えば、ある作業を行うために参照した成果物とその作業によって作成した成果物の関係などです。この関係を作成することでトレーサビリティ(追跡可能性)を確保できます。変更の影響はこのトレーサビリティによって調べることができます。
それでは計画と構成管理の手法を具体的に説明します。
成果物を管理するうえでも、まずは計画を立てましょう。計画時に決めないといけないのは成果物の種類、成果物の記述方法・フォーマット・粒度、成果物のベースライン、成果物の格納方法です。
例えば、要件定義書、基本設計書、ソースコードなどが成果物です。プロジェクトによっては管理用の成果物を作成することもあるでしょうし、文書を減らしてソースコードだけを成果物とすることもあるでしょう。何を成果物とするかはプロジェクトの体制やリスクなどによって決まります。
プロジェクトを計画する際に、プロセスモデル(ウォーターフォール、イテレーティブ、アジャイル)、体制(要件から設計し実装までできる人の集団、オフショアによるコスト削減)、リスクへの対応(高品質を要求されるので第三者品質評価を行う)などを考慮に入れて成果物の種類を決定します。
成果物を決めたら、その成果物の記述方法、フォーマット、粒度を決定します。記述方法とはテキストファイル、Wordファイル、Excelファイル、Visioファイル、CASEツールなどの形式とその内容(文書で書くのか、ダイヤグラムで書くのか、個条書き、一覧で書くのか)を表します。
フォーマットは、その成果物の章・節、レイアウトなどを表し、テンプレートによって記述されます。粒度とは、成果物の内容を分割して作業できる単位を表します。成果物を、この単位ごとに分割しファイルに分けることも検討します。ファイルに分割することで並行に作業を行うことができ、排他制御による待ちや調整をせずに済みます。
一方、成果物全体を通じてレビューや管理をしたい場合があるため、分割した結果を統合して全体を1つとする手順も明確にする必要があります。Word文書限定ですが、分割と統合をWordの機能によって行うことができるので以下のコラムで紹介します。
[コラム:Wordのグループ文書・サブ文書機能]
Wordには、1つのファイル内容を複数のファイルに分割して統合する機能が提供されています。この機能をグループ文書機能といいます。詳細はWordのヘルプを参照してください。ここでは概要が分かるように実際にグループ文書を作成する過程を説明します。最初に成果物のアウトラインをアウトラインモードで表示します。例えば、要件定義書であれば以下のように作成します(この内容は例です。プロジェクトによって要件定義書のアウトラインを決定してください)。
この場合、機能要件に当たる部分を各サブシステムとしてファイルを分割し、チームにアサインすることを考えます。
サブシステムのアウトラインを選択し、以下の図の一番左のボタンを押します。
こうすることで、サブシステムごとに機能要件を並行に作業しながら、要件定義書として1つにまとめることができます。サブ文書を更新すると以下のようにグループ文書にも反映されます。
第1回目(「デスマーチを止める進ちょく管理の現実解」)で成果物をベースに進ちょくを測る方法を紹介しましたが、それと同様に成果物に対してベースラインを決定します。ベースラインとは、成果物に対して、プロジェクトにおいて手続きが定義されているバージョンのことをいいます。ベースラインの詳細については以下の記事を参照してください。
このようにベースラインを管理することによって、「作成した成果物の最新バージョンあるいはあるタイミングのもの(これがベースラインです)をメンバーが探すことなく参照できる」ようになります。最新バージョンは通常、特殊なベースラインです。
成果物をどのように格納するかを決定します。格納方法には、ファイルシステム、文書管理システム、構成管理ツールなどが考えられます。
・ファイルシステム
OSが提供するファイルシステムを利用して、ファイルサーバに成果物を格納することができます。ファイルサーバで共有することで最小限の共有を行うことができます。一方でファイルのリビジョン、文書タイプ(文書の内容を概要を記述したもの)を定義することができません。当たり前ですがトレーサビリティを確保することはできません。
・文書管理システム
Webインターフェイスによって文書を管理できるツールです。文書ファイルをブラウザからアップロードし、登録した文書をタイプ別に分類したり管理情報(登録日付)などを登録することができます。管理情報にステータスなどを持たすことで第1回で説明した成果物をベースとする進ちょくの基準とすることができます。このステータスが変更されたログまで取られているとプロジェクト記録として有効な情報になります。例えば、あるステータスからステータスに変化するまでの平均時間を得ることで、次のプロジェクトでこのステータス間作業の見積もりの参考とすることができます。ツールによっては文書間のリンクを作成できます。この機能を利用してトレーサビリティを確保することができます。
ツールによっては文書ファイルのリビジョンを管理できるものもあります。リビジョンを組み合わせたバージョン管理は、文書管理システムにはないことがほとんどです。バージョンを利用したい場合は後述する構成管理ツールを利用する必要があります。
・構成管理ツール
リビジョン、バージョン管理を行う構成管理ツールによって成果物を管理することができます。構成管理ツールはリビジョンの差異を比較することを基本としているため、テキストファイルの管理に向いています。成果物で考えると「ソースコード」を管理するのに向いているといえます。構成管理ツールによっては各アイテム(成果物)間の関係やプロパティを定義できる機能があります。この機能を利用することでトレーサビリティを確保することができます。
構成管理ツールはもともと構成管理を行うためのツールです。構成管理の詳細については以下の連載を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.