近年「開発の見える化」が話題となっていますが、いざやろうとするとなかなか難しいものです。
模造紙を壁に張り付ける「タスク看板」などを利用してタスクの「見える化」を行っても、肝心のタスクの実行状況が見えなかったり……。そんなことはないでしょうか? 本当にチームメンバーのタスクを把握できているでしょうか?
そもそも「タスク」とは、コーディングやテストといった純然たる作業や、故障処理、管理、仕様変更などの副次的な作業も含みます。開発を見える化する際に基本となる1つの単位です。
今回紹介するMylynとTracを利用すると、タスク取得→コミット、タスク取得→コミット、……というリズムに乗った開発で、作業履歴(ログ)を残しながら各開発担当者の作業内容を明確にできます。最小限の管理コストで最大の見える化を。世にも不思議なMylynマジック、とくとご覧ください。
本稿では、MylynとTracを利用したタスクの見える化をご紹介します。MylynとはEclipse 3.3(Europa)から標準でEclipseのディストリビューションに新たに同梱されたタスク管理のためのプラグインです(詳細「Mylynとおともだち(Eclipse Plugin 開発勉強会)」)。
Eclipseディストリビューションに同梱されたことにより、今後のEclipseによるソフトウェア開発スタイルを変える肝となるプラグインとして注目されています。
Mylynは、個人のタスク管理に利用することもできますが、Bugzilla、JIRA、TracなどのBTS(Bug Tracking System)やITS(Incompatible Timesharing System)と連携すると、チームのタスク管理を効率的に行えるようになります。
本稿では、Tracとの連携を例に取って、Mylynによるタスク管理をご紹介します。TracやMylynの本質的なところはあまり紹介せずに、組み合わせるとどのように開発が変わるのかに重点を置いてご紹介します。
Tracとは、スウェーデンEdgewall Software社で開発され、Ruby on Rails(詳細は「Ruby on Railsのチームから学ぶ仕事術」)やSpring IDEなどで利用されているプロジェクト管理ツールです。Wikiや構成管理ツールであるSubversionと連携できるのが特徴となっています。
また、Eclipseのようなプラグイン・アーキテクチャを採用しており、ユーザーによって柔軟に拡張できるという特徴があり、数多くのプラグインが提供されています。オープンソースプロダクトのホスティングサイトであるsf.jpやGoogle CodeのWikiがTracのWikiと類似した構文を取るなど、オープンソースプロダクトに対するTracの影響は計り知れません。
最近の目新しいトピックとしては、ソースコード共有プロジェクトCodeReposで利用されています。OpenJDKプロジェクトでSubversionに代わって採用された分散型のSCMであるMercurialをTracで利用するプラグインが開発されるなど、オープンソースの先進的な取り組みにはTracが欠かせない存在となっています。
Edgewall Software社で配布されているTracは日本語には対応していませんが、インタアクト株式会社により日本語化されたtrac-jaが提供されています。また、trac-jaをベースにWindows上にTracを簡単にインストールするオールインワンパッケージとして、All In One TracやTrac月(後述)が提供されています。
拡張コンポーネントについては、trac-hacksや日本人の有志によりプラグイン開発を行っているShibuya.tracをご覧ください。
Tracを利用する際に、Tracのデフォルトの構成管理ツールであるSubversion(以下、SVNと記述)を利用します。SVNを利用するEclipseプラグインとしては、SubclipseとSubversiveがありますが、ここではSubversiveを利用します。Subversiveの詳細については、連載第15回「バージョン管理に便利なSubversiveプラグイン」をご覧ください。
筆者は、上記の記事を読まなくとも分かるように本稿を執筆したつもりですが、上記の解説をお読みいただくとより理解が深まるかと思います。
TracとMylynによるタスク管理の概要を図1に示します。ちなみに、タスクはMylyn上では「タスク」と表現されますが、Trac上では「チケット」と表現されます。ほかのツールでは、「ワークアイテム」と呼ばれることもあります。
ここでは、タスクを作成、確認するリーダーと、タスクを実施する開発担当者のロールに分けて説明します。便宜上、分かりやすくするためにロールを分けているだけで、実際の開発では、開発担当者が課題やバグをチケットとして作成することもありますし、リーダーもチケットに登録された作業を行うこともあるので、注意してください。
Mylynを利用した開発の流れは、リーダーによる【1】タスクの作成、開発担当者による【2】タスクの取得、【3】タスクの実行、【4】コミット、最後にリーダーによる【6】作業内容の確認とクローズとなります。それぞれ詳しく見ていきましょう。手順【1】〜【6】の作業例はセットアップ後に解説します。
リーダーは、タスクを作成しチケットとしてTracへ登録します。タスクの作成は、Mylynを利用してEclipse上で行うこともできますし、Webブラウザ上から作成することもできます。
Mylyn上からタスクを作成すると、作業に必要なファイルを「コンテキスト」としてタスクに割り当てることができます。コンテキストの詳細については、後ほど説明します。
開発担当者はタスクのリストを取得し、これから実行するタスクを活性化します。活性化すると、Mylynは開発担当者が現在行っているタスクを認識します。
タスクをEclipse上で実行します。実行中に編集したファイルはコンテキストに結び付けられ、そのタスクにおける作業内容として記録されます。
タスクを完了したら、コミットを行います。コミットを行うと、コミットログに活性化されたタスク情報が自動的に挿入されます。開発担当者は、作業内容をコミットログに追記しコミットします。
タスクに対応付けられたコミットログがTracのチケット(タスク)に追加されます。この作業はSVNのフックスクリプトにより自動的に実行されます。
リーダーは作業内容を確認し、タスクをクローズします。Tracのタスクの履歴としてコミットログと差分(チェンジセット)が記述されていますので、タスクの履歴とコミット内容を確認し、問題がなければクローズします。
問題があれば、開発担当者に修正するように指示を出し、開発担当者は手順【2】から繰り返すことになります。
TracとMylynによるタスク管理の最大の利点は作業内容をコミットログとして追加できることです。SubversiveやSubclipse単独でもコミットログをタスクとひも付けできますが、開発担当者がコミットする差分がどのタスクに対応付くのか確認し、コミットするときにタスクIDを入力する必要があります(図2赤字の部分)。
Mylynを利用すると、開発担当者はタスクを取得(活性化)してコミットするだけでよいので、コミット時にわざわざタスクにひも付ける必要がなくなるのです。
手動でひも付けると、タスクIDの入力漏れや写し間違いが発生しますが、Mylynを利用すれば自動的に挿入してくれるので、開発担当者の負担を減らすことができます。
また、タスクの作成をコンソールのログ出力から行えるようになり、バグなどでエラーメッセージが発生した場合、スムーズにバグを登録できます。
次のページでは、MylynとTracの環境を構築して大掃除に備えます。
Copyright © ITmedia, Inc. All Rights Reserved.