私はプライベートでも所属している会社でも、よくプログラミングしています。複数人でプログラムを書く時に重要なのが、進行管理やバージョン管理です。今回は、プロジェクトをうまく進めるために利用しているソフトウエア開発の管理方法をご紹介しましょう。

 ソースコードの管理でよく使うのは、マイクロソフトの「Visual SourceSafe」やオープンソースの「Subversion」、古いシステムでは「CVS」(Concurrent Versions System)です。変更履歴を見たり、バージョン情報を管理できたりするので、複数人で同時にプログラミングする時に便利です。

 もっとも、プログラミング後のソース管理だけならこれらのソフトでよいのですが、「どんな機能を開発するか」「どんな要望があるか」といった開発内容も含めて管理したほうが便利です。通常は、文書などで開発内容をまとめることが多いと思いますが、そもそもこれらの文書を管理するのが大変になってしまいます。そこで私たちが開発内容も含めて管理しているのが、「BTS」(Bug Tracking System:バグトラッキングシステム)と呼ぶソフトウエアです。

開発内容や要望をバグとまとめて管理

 そもそもBTSは、バグ管理のために使うソフトです。あらかじめバグを登録すれば、修正状況を見られます。このBTSに私は、実際のバグだけでなく、開発すべき内容や要望もバグとして登録します。開発内容も解決すべきバグとして登録し、作業を続けます。こうすると、主に三つの利点があります。

 まず一つ目は、開発すべき内容からバグまで、全情報を一つの管理ソフトでまとめられることです。重要な文書が行方不明になることもありませんし、情報同士を関連づけられます。二つ目は、残り作業がひと目で見えることです。「全体で430個のバグがあり、そのうち280個が終わり残りは150個だ」「開発すべきプログラムはあと5つだ」など残りの作業の件数が見えると、残りの作業をがんばろうと思います。また、BTSに一つずつ完了チェックを付けていくと、やる気が出てきます。

 三つ目は、バグ情報の収集が容易になることです。私は個人でオープンソースプロジェクトを運営していますが、使っているユーザーからバグを報告してもらう時にとても便利です。例えばメールでバグ報告を受ける場合、フォーマットが違うとリストとして管理するのが大変な作業になります。ここで、WebシステムをベースにしたBTSを使えば、簡単に一元化できるのです。

 では、実際にどのようなBTSを使っているかを紹介しましょう。有名なBTSには、「影舞」、「Trac」などがあります。ただし、影舞は古くなりつつあるので、私は利用していません。Tracはとても人気があるオープンソースのソフトで、とても便利に使っています。ただし、私自身があまり好きではない「Python」というプログラミング言語で書かれています。オープンソースなのでプログラムを書けば機能を追加できるのですが、Pythonなので自分で書きにくいのが難点です。

 そこで私は、自分が好きなプログラミング言語「Ruby」で書かれているBTSを探してみました。見つけたのが「Redmine」と「Retrospectiva」です。これらのツールは今話題のRuby on Railsで作られています。私はこのうちRetrospectivaを使うことにしました。

 最後に、BTSを使っている私のプロジェクトを紹介します。まず、Tracはこの連載でも前に紹介した「Pragger」のサイトで利用しています。また、私の新しいプロジェクトである「SMTProxy」では、Retrospectivaを使い始めました。SMTProxyについては次回詳しく説明します。

写真●筑波大学本部棟食堂のランチ   写真●筑波大学本部棟食堂のランチ
学生はおらず、大学職員の方が大勢いました。ちなみに筑波大学内には学食が数十カ所あり、すべての学食に行った人はいなそうです。
[画像のクリックで拡大表示]