はじめに
多くの人が、自分の作業の生産性を高めるためにタスクリストを使っています。タスクリストの形式はさまざまで、携帯情報端末を使っている場合もあれば、OutlookやEvolutionなどのデスクトップソフトウェア、あるいはもっと単純にメモ用紙を使っている場合もあるでしょうが、いずれにしても単純なTo-doリスト(作業リスト)は作業効率の向上に大いに役立ちます。たとえば、未完了のタスクをスキャンし、すぐ目につくところに置いておき、それが完了したとき(または何らかの事情で先に進めなくなったとき)に次のタスクを適切に選択するといったことができます。
開発者という仕事をしていれば、個人用To-doリストに登録できる(または登録すべき)タスクは山ほどあるでしょう。コーディングすべき機能、修正すべきバグ、リファクタリングすべきクラス、記述すべきテスト、手直しすべきビルドスクリプトなど、挙げればきりがありません。もしEclipseを使用していれば、こうしたタスク管理の部分で少し楽をすることができます。最新のEclipse Europaリリースには、タスク管理に役立つMylyn(旧名称:Mylar)という独自のツールが付属しているからです。これは単なるタスク管理ツールとは一線を画すもので、作業の効率化に貢献します。
Mylynの重要な長所の1つは、膨大になりがちなタスクリストのうち、その時点で特に重要なものだけに注目できるということです。Mylynを使用すると、個人用のTo-doリストをEclipse内で直接管理できます。また、MylynはJIRA、Bugzilla、Tracなどの問題管理システムにスムーズに統合できるほか、(少なくとも最新のテスト段階のものは)アジャイルプロジェクト管理ツールであるXplannerにも統合できます。
学習機能を持ったタスク管理ツール
しかしながら、Mylynは単なるTo-doリストの補助ツールではありません。Mylynは、特定のタスクに対するユーザーの作業状況を観察し、そのタスクの影響を受けるファイルや、タスクに必要なビューなどを徐々に学習する機能を備えており、この学習機能こそがMylynの真価であると言えます。この機能により、目下のタスクとは関係ないプロジェクトの95%の部分が隠されるので、ユーザーは現在のタスクに関係のある少数のファイルに集中することができます。
また、Mylynを使用するとタスク切り替えの時間を大幅に節約できます。新しいタスクを選択するとすぐに、そのタスクに関係するファイルとビューが前回作業を終了した状態のままでワークスペースに表示されます。
さらに、Mylynでは、タスクごとにどのくらい時間を費やしたかが記録されます。したがって、組み込みの時間追跡ツールとして利用でき、週ごとのタイムシートを作成するときに非常に便利です。
前置きはこのくらいにして、Mylynを実際に操作してみましょう。
Mylynのインストール
Mylynは、最新のEclipse Europaリリースに付属しています。最初の状態ではBugzillaしかサポートしていませんが、Mylynはそれ以外のツールにも統合できます。JIRAやTracのサポート、あるいはテスト段階のXplannerサポートを利用するには、次のMylyn開発アップデートサイトをEclipse構成に追加する必要があります。
なお、Eclipseのサイトには、「Dev builds are production quality, but subject to UI changes.」(開発ビルドは製品レベルの品質を実現しているが、UIは変更の可能性がある)とあります。これらのアップデートを標準のEclipse手順に従ってインストールします(図1を参照)。
Mylynでのタスク管理
Mylynでユーザーがまず使用するのは、タスクおよび問題の追跡機能です。最も基本的なところでは、Eclipse内でタスクリストビューを使用して独自の個人用To-doリストを管理できます(図2を参照)。このビューでは、コンテキストメニューを使用して新しいタスクを作成できます。
Mylynのタスク画面には、優先度、ステータス、期限、見積時間など、便利なフィールドが多数あります。また、Mylynのタスクリストビュー(図3を参照)は、豊富なビジュアルキューのおかげで大変使い勝手がよくなっており、その時点の最重要タスクに焦点を当てることができます。たとえば、完了済みタスクはグレー表示されます(完全に隠すことも可能です)。また、期限が過ぎたタスクには赤の時計アイコン、優先度が高いタスクには感嘆符など、さまざまなアイコンでタスクの状態が示されます。現在の週だけに注目したり、優先度の高いタスクだけを表示させたりすることもできます。
タスクの管理も簡単です。右クリックするとコンテキストメニューが表示され、タスクのスケジュールを変更したり、完了済みとしてマークしたりできます。
Mylynと外部システムの統合
タスクにはバグフィックスや変更要求などさまざまな形式があり、外部ソースからもたらされるタスクもよくあります(プロジェクトマネージャから割り当てられるタスクなど)。これらの多様なタスクに対応するために、MylynはBugzilla、JIRA、Tracなど各種の問題管理システムとの優れた統合性を実現しています。開発バージョンのMylynも、Webベースのアジャイルプロジェクト管理ツールであるXplannerをサポートしています。
Mylynの統合機能はタスクリポジトリという概念に基づいており、この設定はタスクリポジトリビューで管理します。タスクリポジトリは、問題やタスクを提供する外部のソースごとに個別のものを追加します。たとえば、プロジェクトごとに異なるリポジトリに接続しなければならないかもしれません。また、標準の問題追跡システムの他にXplannerサーバーへの接続が必要になることもあります。
リポジトリを追加したら、実際の問題またはタスクを表示するためのクエリを作成する必要があります。たとえば、自分に割り当てられたすべての問題を返すJIRAのクエリや、現在のイテレーションに含まれるすべてのタスクを返すXplannerのクエリを作成する場合があります。実際のクエリ画面の内容は使用する問題管理システムによって異なりますが、どの問題管理システムの画面にも、クエリ条件やオプションが多数用意されています(図4はTracリポジトリの例です)。
クエリの作成後、そのクエリを実行して取得した問題を表示したり、問題の内容を変更したりできます。Mylynを使えば、元のアプリケーションと同じくらい柔軟かつパワフルに、Eclipse内で問題を更新できます。Mylynは定期的にリポジトリと自動同期され、新しい問題が発生したときは、インスタントメッセージ形式のポップアップウィンドウでリアルタイムに通知されます。
コンテキストの管理とフィルタリング
Mylynで外部の問題を取り扱う際には、前述のEclipse内で問題を直接編集する機能に加えて、コンテキストフィルタリングという強力な機能を利用できます。コンテキストフィルタリング機能を使用すると、現在のタスクとは無関係のファイルやビューを隠すことができます。
この機能は、内部のタスクでも外部のタスクでも同じように動作します。タスクの作業を開始するときには、Mylynタスクリストのコンテキストメニューを使ってそのタスクをアクティブにする必要があります。これに慣れるには少し時間がかかりますが、すぐに習慣になるでしょう。
タスクをアクティブにすると、Mylynはユーザーの操作を観察し、どのビュー、ファイル、あるいはファイルのどの部分が目下のタスクに関係しているかを学習します。その後、ツールバー上のボタン(有名なネズミのキャラクターによく似た形の青いアイコン)を使ってコンテキストフィルタリングを有効にすると、Mylynを使って無関係な情報を非表示にし、重要度の高い情報を強調表示できるようになります。他のファイルが必要になった場合は、同じボタンを使ってフィルタリングを無効にすれば、目的のファイルを開くことができます。このファイルも、自動的にタスクのコンテキストに追加されます。
コンテキストフィルタリングは、ワークスペースのほぼすべての場所で適用されます(図5を参照)。関係のないコードは折りたたまれ、必要ないファイルは非表示になります。
図5 Mylarコンテキストフィルタリングを有効にした状態
プロジェクトエクスプローラビューには関係のあるクラスのみが表示され、そのクラス内では、クラスのメソッドのサブセットのみが表示されます。さらに、一部のメソッドは太字で表示されたり、青い小さな三角の記号が付いて表示されたりします。この三角の記号が付いたメソッドは「ランドマーク」メソッドと呼ばれ、タスクの処理の大半が行われるメソッドを表します。コード入力支援のメニューでも、最も関連のある項目が最初に示されます。
コンテキストフィルタリング機能は柔軟性にも優れています。たとえば、あるファイルについてMylynの判断が正しくないと思ったら、コンテキストメニューを使って現在のコンテキストからそれを簡単に削除できます。コンテキストをコピーできる点もメリットの1つです。新しい関連タスクに切り替える場合は、現在のタスクコンテキストを新しいタスクにコピーできます。
Mylynは、「コンテキスト内」か「コンテキスト外」かという二者択一の概念には制限されていません。図5のワークスペースをよく見てみると、エクスプローラビューでは、ファイルが薄いグレー、濃いグレー、黒など、さまざまな明るさで表示されているのが分かります。色が薄いほど、現在のコンテキストとの関連性が低いファイルであると見なされています。
時間を節約し、生産性を高めるプラグイン
Mylynは一見、簡素なTo-doリスト管理システムのように見えますが、実際は生産性アップに大きく貢献する非常に強力なツールで、現在普及している最も革新的なEclipseプラグインの1つと言えます。すべてのタスクとTo-doリストをEclipse内で直接表示して操作できるため、時間節約にもつながります。また、関係ない情報を積極的に隠し、重要な情報のみを強調することで、目下の作業に集中しやすくなり、すばやく効率的にタスクを完了させることができます。