2009/01/13[プロジェクトマネジメント]はじめにシステム開発プロジェクトに携わっておられる皆さん。私たちは普段、様々な企業のお客様の元、主にシステム開発プロジェクトで、要件定義や開発の標準化、フレームワークの設計・開発などを行っています。他にも、プロジェクトマネジメント支援や、開発者に対する技術支援を行うこともあります。した業務を通して、これまで様々なプロジェクト管理にツールを使ってきました。中でもTracはシンプルな操作性・画面でありながら機能は強力で、とても使いやすいと感じていました。そんなときに、縁あってTracの入門・活用本を執筆する機会を得て、「Trac入門」を共同執筆しました。おかげさまで、売れ行き好調のようです。この記事では、そもそもTracのようなツールがなぜ必要なのかということを交えて「Trac入門」の内容を紹介させていただきます。「Trac入門」は、Tracというツールの機能や使い方を単に説明しているだけの本ではありません。みなさんがプロジェクトで日頃よく直面する困った状況を(多少の誇張はありますが)描き、Tracによってその状況がどのように改善されるのかを示しています。そもそもTracが登場したのはプロジェクト管理をサポートするためです。プロジェクト管理とは、「何のために」「何を」「どのように」管理するべきなのか、それが「誰にとって」「どう」うれしいのか、そしてTracは「何を」「どのように」サポートしてくれるのか、といった流れで解説しています。情報リテラシーという言葉がありますが、ソフトウェア開発においてもリテラシーの差が大きく出ます。私たちが支援させていただくプロジェクトでは、Tracのようなツールは使われていないことが多いのが実情です。構成管理ツールを導入していないところは少ないですが、問題管理ツールやプロジェクト管理ツールついては導入されていないか、されていたとしてもメンバー全員が使用できる状態になっていなかったり、マネージャーへの報告にはExcelシートをプリントアウトした従来のバグ票を使っていたりします。いう現場ではよく、毎日問題管理のためのミーティングが開催され、リーダーやメンバーの多くの時間が会議の進行のために費やされています。バグとソースコード修正作業の関係も不明確な状態のため、プロジェクトが非常に混乱します。Trac入門では、最初の章で上記のように問題が管理されていないプロジェクトの状況をイラストたっぷりに(下図のようにマンガも交えて)紹介しています。別ウインドウで拡大表示その上で、Tracで問題を管理するとどのような効果が得られるのかという事例を示しながら、Tracの機能を網羅的に紹介しています。Trac導入後のイメージでは、Tracで問題がどのように管理され、収束していくのか、スクリーンショットとともに見ていきましょう。Tracではチケットという単位で問題やタスクを管理します。mamezou(まめぞう)さんが報告したこのチケットには、タイトルと発生したバージョン、それにmamezouさんが判断した重要度が記載されています。期待する動作が書かれています(概要に書く内容はプロジェクトで決めましょう。問題発生時のエラーメッセージを添付しています(2)。リーダーのsugano(すがの)さんは問題の内容から判断して、優先度を「緊急」に引き上げ(3)、imada(いまだ)さんに作業を依頼しました(4)。imadaさんは自分の担当ではなさそうだと判断して担当から外れています。リーダーがメンバーの作業を把握できているわけではありません。担当に指名されたから――といって無理に作業するより適任がいるだろうという判断でしょう。suganoさんは、今度はsugimoto(すぎもと)さんに作業を依頼しています。先ほどはimadaさん、現在はsugimotoさん、誰がこのチケットを担当しているかを追跡できています。sugimotoさんは問題に着手します。これでチケットの状態がassignedになります(5)。その後、sugimotoさんは問題を無事解決したことを、チケットの状態をcloseに、解決方法を対応済みにすることで報告します(6)。修正したソースファイルも、チェンジセットのリンクを貼ることで知らせています(7)。今後このチケットを見た人は、「この問題がどのファイルを変更した」ことで修正されたかを把握できます。最後に報告者のmamezouさんは、このバグが修正されたバージョンで確認を行い、問題ないことを報告しています(8)。期待どおりに動作しないようであれば、このチケットは差し戻され、再度suganoさんの管理に戻るでしょう。そのやり取りも記録されることになります。1つのチケットにまつわる物語を読み取れたでしょうか?このようにTracでは、プロジェクトで発生する個々の問題を詳細に追跡することができます。プロジェクトにチケットが全体でどのくらいあるのか、未消化のチケットがどのくらい残っているのかなどが一目で分かる画面(ロードマップ)も用意されています。TracはSubversionなどの構成管理ツールと連携して使用することができるのも大きな特徴です。Tracが登場したときの一番のインパクトはここでした、この特徴は、Redmineなどの後発のツールも踏襲しており、プロジェクト管理ツールの標準機能として認識されつつあります。下の図は、Subversionのチェンジセットを示す画面ですが、直前のチェンジセットとの差分がグラフィカルに表示され、関連するチケットへのリンクも作成されています(図中の取消線がついた「#1」の部分)。その他、本書は、プロジェクト管理領域の解説とTracから受けられるサポートの解説、Tracを使いこなす上での心構え(プラクティス)や、便利なプラグインの紹介、構成管理ツールSubversionとの連携、やりたいことから機能を探せる「逆引き」、簡単なセットアップ方法など、Tracに入門するのに必要な情報が網羅されています。終わりに本書は、そもそもTracを使う予定がない場合でも、プロジェクト管理ができていない現場では、何をどのように管理すればいいのかという解説が役に立つのではないかと思います。現在の管理方法が面倒であれば、シンプルで強力なTracの利用を検討し、上司やメンバーを説得する材料にも使える内容となっています。「この本の1章読んどいて」と言えば大概の人にはTracの魅力が感じられるのではないでしょうか。4章くらいまで読めば、実際使わずにはいられないと思います。