はじめて使うJazz 第2回

  1. RTCのダウンロード
  2. RTCのインストール
  3. サーバーのセットアップ
  4. ユーザーの作成
  5. プロジェクトの作成
  6. クライアントのセットアップ
  7. Eclipseプロジェクトの共有

今回の記事は、特にプロジェクトにおけるリリース計画の策定から、反復計画(スプリント)の策定、タスクの実行の流れについてご紹介したいと思います。前回の記事で、プロジェクトを作成する際に、アジャイル開発プロセスの一つであるスクラムを基にしたスクラム・テンプレートを利用したため、今回の記事でも、スクラムの開発の流れに沿って、説明いたします。しかし、RTC自体は、特定の開発手法に依存しているわけではありません。

リリース計画の策定:

  1. リリースのためのスケジュール確立
  2. リリースバックログ(リリース計画)の作成
  3. ストーリー(製品機能)の追加

反復計画(スプリント)の策定:

  1. スプリントバックログ(反復計画)の作成
  2. タスクの追加
  3. チームメンバーの労働時間、不在予定の入力
  4. タスクの見積もりと割り当て
  5. チームへの割り当て状況確認

タスクの実行:

  1. タスクの受け入れ
  2. タスクのトラッキング
  3. ソースコードの変更
  4. タスクの完了

タスクのトレーサビリティ、プロジェクトの見える化:

  1. トレーサビリティの確認
  2. プロジェクト・ダッシュボードの確認

注釈: 使用バージョンのお報せと、最新バージョンのダウンロード方法前回の記事では、RTCのバージョン1.0.1.1M1を用いていますので、今回の記事でもM1を用いています。そのため、記事の手順はRTC V1.0.1.1 M1に対する手順であり、今後のリリースでは手順や日本語の表現が変更される場合があります。 2009年2月10日時点では新しいバージョンである1.0.1.1M2が出ており、M2では、M1使用の際に必要であった日本語のためのパッチも必要なく、日本語翻訳がより改善されています。

リリースのためのスケジュール確立

ではこれより、RTCを用いてプロジェクト計画を立てて行きたいと思います。今回の記事では、プロジェクト・テンプレートとして、アジャイル開発の一つであるスクラムを用いているので、ここでもスクラムのやり方に沿ってプロジェクト計画を立てることになります。プラニングをはじめるには、スクラム・マスターである必要がありますので、まずは、taroでログインしていることを確認しましょう。

alt

もしリポジトリー接続のユーザー名が違うユーザーなら、上記のtaro@localhostの部分を選択して、コンテキスト・メニューから[ログアウト]して、taroでログインしましょう。

チーム・エリアのコンテキスト・メニューから[開く]を選択し、チーム・エリア・エディターを開きます。

alt

すると、プロセス反復のエリアに、デフォルトで作成されている反復計画が見えます。リリース1.0、スプリント1などが見えますが、プロジェクト作成の際にスクラム・テンプレートを選択したため、すでに幾つかの反復がスプリントの形式にあわせて作成されているのです。スクラムでは、反復のことをスプリントと呼び、通常は一つのリリースの下に、複数のスプリントが計画されます。

alt

リリース1.0とスプリント1のところに小さな三角形のアイコンが見えますが、これが現在の位置している時点を示しています。(記事を書いている時点では、2月10日ですので、スプリント1が現在の反復ということになります)

では、このリリースのプロジェクト・スケジュールを変更してみましょう。リリース1.0を選択し、[プロパティの編集]をクリックします。反復の編集ダイアログが表示されますので、終了日を変えてみましょう。終了日を6週間後に設定します。終了日の横のカレンダーアイコンをクリックして、カレンダーの中から該当する日付を選択し、[OK]をクリックします。最後にダイアログで[OK]をクリックすれば終了です。

alt

ここで、反復をもう一個増やすことを考えてみます。全てのスプリントを2週間にして、6週間のリリースの中に、3回のスプリントが計画されるようにします。スプリントを追加するために、スプリント2を複製して、スプリント3を作成してみましょう。スプリント2を選択し、[複製]をクリックします。

alt

反復を重複ダイアログが表示されます。識別子と表示名を下記のように編集して[OK]をクリックします。

alt

下記のように、リリースの中に、スプリントが3回スケジュールされました。では、次は、リリースについてより詳細な情報を定義していく必要があるので、作成されたスケジュールに基づいて、リリースバックログ(リリース計画)を作成してみましょう。

alt

リリースバックログ(リリース計画)の作成

注釈: バックログには以下の3種類があります。

  1. 製品バックログ – ある時点での要求仕様のリポジトリー。製品のオーナーによる抽象的な要求であることが多い。
  2. リリースバックログ – 製品バックログを整理して優先順位付けし、次のリリースで実現するものを抜き出したもの。
  3. スプリントバックログ – スプリント(スクラムでは反復のことをスプリント、と呼ぶ)の開始時、そのスプリントで実現する仕様をまとめたもの。スプリントバックログはリリースバックログを管理可能な単位に細分化したもの。

: 参照: Wikipedia 「スクラム」)

リリース1.0の下に計画を作成します。チーム成果物ビューで、リリース1.0を選択して、コンテキスト・メニューから[新規] →[反復計画]を選択します。

alt

新規反復計画ダイアログが表示されるので、リリースバックログ 1.0と名前をつけて、[終了]をクリックします。

alt

反復計画エディターが表示されます。概要タブでは、Wikiスタイルでリリースバックログについての情報を編集することができ、ここで編集した情報はWebユーザー・インターフェースでも見ることができます。このリリースのゴール、範囲などを書いておくと良いでしょう。

alt

ストーリー(製品機能)の追加

では、このリリースの範囲で扱うストーリー(スクラムの用語で、ここでは、製品機能と考えてください)を考えて見ましょう。計画項目タブをクリックして、グループ化リストの中から、[フォルダー]を選択し、フォルダー・ビューに変更します。このビューは、新しいストーリーを追加していくのに非常に適しています。現状では、トップ項目フォルダーと、障害および機能強化フォルダーがありますが、必要に応じて、新しいフォルダーを付け加えることが可能です。

alt

では、新しいストーリーを追加してみましょう。トップ項目のコンテキスト・メニューから、[ワークアイテムの追加]→[ストーリー]で、ストーリーを作成します。

alt

トップ項目の下に、ボックスが表示されるので、そこで、ストーリーの名前として、JavaアプレットでHelloWorld、と入力します。Ctrl+Enterのショートカットを使って次々とストーリーを作っていくことが可能です。新しいストーリーを作った際は、右上の[保存]ボタンで保存すること忘れないようにしましょう。

alt

他にも幾つかストーリーを考えて入れてみましょう。

alt

ストーリーが追加されると、次にするべきことは、優先順位をつけることです。スクラム・テンプレートでは、1~10の優先順位をつけることが可能です。ドロップ・ダウン・リストを用いて、簡単に優先順位をつけることができます。全てのストーリーに優先順位をつけましょう。

alt

ストーリーをダブル・クリックすることで、エディターを開くことも可能です。ここでは、説明のところに、詳細な説明を書き加えています。必要に応じて、受け入れテストのタブに、受け入れテストのためのより詳細な情報を書き込むことも可能です。

alt

スプリントバックログ(反復計画)の作成

スクラムにおいては、全てのスプリント(反復)がはじまる際に、製品バックログのアイテムを全て見直し、どのストーリーを次期スプリントで取り組むべきか考えます。そして、次期スプリントに割り振られたストーリーに対してタスクを作成します。

では、ここでは、スプリントバックログを作成していきましょう。チーム成果物ビューから、スプリント 1を選択し、コンテキスト・メニューから[新規]→[反復計画]をクリックします。リリースバックログを作った際と同じ手順であることがわかります。

alt

新規反復計画ダイアログで、スプリントバックログ 1 と名前をつけましょう。[終了]をクリックします。

alt

スプリントバックログ 1のためのエディターが開きますが、先ほどのプロダクトバックログのエディターに戻って、ストーリーの割り振りを行いましょう。JavaアプレットでのHelloWorldストーリーを右クリックして、コンテキスト・メニューから、[計画対象]→スプリント 1 を選択します。

alt

ストーリーの左横に小さな矢印が表示されますが、これは保存されるのを待っている状態です。右上の[保存]ボタン、もしくは、Ctrl+Sで保存しましょう。すると、スプリントバックログ 1 のほうに、割り当てられたストーリーが移動します。通常の開発では、複数のストーリーを一つのスプリントで行えますが、この例では、スプリント1では、このストーリーのみを開発する、ということになります。

タスクの追加

では、ストーリーをスプリント1で開発していくわけですが、このストーリーの実装を行うために、幾つかのより詳細なタスクに分けて管理します。例えば、JavaアプレットでのHelloWorldを実現するための幾つかのタスクを考えてみると、まずは、現在のHelloJazzWorldクラスをアプレット対応にしたり、アプレットを表示するためのHTMLファイルを作成したり、というタスクが少なくとも必要となります。場合によってはより細かく分けていくこともあるでしょう。

では、スプリントバックログ1のエディターに戻って、タスクを追加していきましょう。コンテキスト・メニューから、[ワークアイテムの追加]によりタスクを追加していくことも可能ですが、複数のタスクを追加するときには、Ctrl+Enterでのショートカットが便利なので、まずは、コンテキスト・メニューから、[ワークアイテムの追加]→[デフォルトの設定]をクリックします。

alt

ワークアイテム・タイプの選択ダイアログが表示されるので、タスクを選択し、[OK]をクリックします。これで、Ctrl+Enterのショートカットにより、新規のタスクが簡単に追加できるようになります。

alt

ストーリーを選択して、Ctrl+Enterで、タスクが追加されますので、HelloJazzWorldクラスをアプレット対応にする、アプレットを表示するためのHTMLファイルを作成、などをタスクとして追加しましょう。

alt

しかし、お気づきのように、ストーリーの下にタスクは出来たものの、ストーリーの子として、タスクが紐付いていません。タスクを選択して、Tabを押すことにより、ストーリーの子に紐付けることができます。またShift+Tabでレベルを一つ上にすることも可能です。作成した2つのタスクを、ストーリーの下の子にしておきましょう。

alt

チームメンバーの労働時間、不在予定の入力

ストーリーのタスクが定義されたので、タスクを見積もり、メンバーをアサインをする必要があります。しかし、チーム内のメンバーのワークロードのバランスを適切にとるために、まずはチームメンバーの労働時間や不在予定などを設定しておきましょう。チーム成果物ビュー中で、[マイ・チーム・エリア]→[HelloJazzWorldチーム]→[taro]をダブル・クリックして、ユーザー・エディターを開きます。

alt

下部のタブより、作業環境タブを選択します。ここで、作業をする場所や、作業日数、などを設定することができます。

alt

今回は、taroは他のチームの作業でも忙しいということにして、25パーセントしかこのチームに避けないことに仮定しましょう。作業割り当ての中で、HelloJazzWorldチームを選択して、[変更]ボタンをクリックします。

alt

割り当ての変更ダイアログの中で、25パーセントを入力し、[OK]をクリックします。

alt

また、不在予定を入力しておくこともできます。不在予定タブの中で、不在予定を新規作成します。[新規]ボタンをクリックし、不在予定ダイアログが表示されるので、不在の概要と、開始日、終了日を入力します。

alt

タスクの見積もりと割り当て

では、タスクが定義され、チームメンバーの労働時間も設定されたので、タスクの見積もりをはじめましょう。スクラムの場合は、一般的にチームメンバーにタスクをアサインして、そのままチームメンバーが見積もりを立てる、というケースが多いのですが、今回は、taroがチームメンバーと相談の上、全てを決めてしまうことにします。

スプリントバックログ1のエディターに戻ります。まずは見積もりを入力しましょう。ドロップ・ダウン・リストを使うことで簡単に見積もりを入力することができます。

alt

次に、タスクのチームメンバーへの割り当てもドロップ・ダウン・リストを使って行いましょう。終了したら保存を忘れないでください。

alt

チームへの割り当て状況確認

このようにタスクを割り当てていった際に、チームメンバーが現在どれくらいワークを抱えているのか確認するには、チーム・セントラル・ビューのチーム・ロードを見ると一目で分かります。taroはこのスプリントで22時間働けますが、現在、8時間分のタスクを抱えている、ということが分かるでしょう。

: この環境ではチャット機能の設定で全員の写真をセットアップしていないので、写真が出てきていませんが、通常は、こちらに写真一覧で並びます。

alt

さて、ここまでで、反復計画の策定が完了しました。まずは、スプリントバックログを作り、タスクをこのスプリントに割り当てました。そして、チームメンバーの労働時間・不在予定を整理した上で、タスクの見積もりを割り当てました。最後にチームへの割り当て状況を確認して、十分にこのスプリントはまわせることを確認しました。まだまだチーム全体では作業に余裕があるので、新しいストーリー、タスクを割り振っても良いのですが、今回は例ということでこのままいきましょう。

タスクの受け入れ

では、taroの視点から、実際にタスクを受け入れて、作業をしていく場面を考えて見ましょう。

一番簡単に自分へのタスクの割り当てを確認するには、マイ・ワーク・ビューの現行作業を確認するのが良いでしょう。HTML作成のタスクがみえます。しかし、今後の作業を見てみると、見たことのないタスクが沢山並んでいます。これは、プロジェクトが作成されたときに、スクラム・テンプレートに基づいて自動的に作成されたタスクです。taroはスクラム・マスターなので、それらのタスクの所有者はtaroになっていますが、現在どのスプリントにもリリースにも割り振られていないので、今後の作業のところに出ています。

alt

さて、ちょっと視点を変えて、taroをログアウトし、jiroでログインしてみましょう。

alt

jiroの立場で、マイ・ワーク・ビューを確認すると、インボックスの中に、jiroに割り振られたタスクが入っているのが分かります。作業を開始する前に、これらを受け入れる必要があります。[すべての作業を受託]すると、インボックス内の全てのタスクを受け入れることができます。先ほど、taroが割り当てたタスクがjiroのもとに確実に届いていることが分かりました。

alt

では、もう一度、taroでログインしなおしましょう。

マイ・ワーク・ビューの他にも、自分に割り当てられたタスクを確認する方法があります。チーム成果物ビューの中で、ワークアイテムを展開します。この中には、タスクを見るための様々なクエリーが用意されています。もちろん、自分でクエリーを作成することも可能です。ここでは、[自分に割り当てられた項目(未完了)]クエリーをダブル・クリックして実行すると、ワークアイテムビューの中に、taroに割り当てられたタスクが一覧で表示されます。

alt

では、先ほど割り当てたアプレットのためのHTMLタスクの作業を開始しましょう。ワークアイテムビューで、HTMLファイル作成タスクを選択し、右クリックでコンテキスト・メニューから、[作業開始]を選択します。もちろん、さきほどのマイ・ワーク・ビューから作業開始を行うことも可能です。

alt

また、タスクをダブル・クリックして、タスク・エディターの中の、ドロップ・ダウン・リストから作業開始を行うこともできます。

alt

タスクのトラッキング

taroはタスクについて働きはじめたので、ワークを行った際に、実際に費やした時間を入力していき、作業が完了すると、完了報告を行います。

例えば、4時間分の作業が進んだとすると、下記のように、4時間と入力します。

: 日本語訳として残り時間となっていますが、ここでは消費した時間を入力してください。この記事を書いている時点ではマイルストーン1なので、まだ適切でない翻訳がみられますが、今後修正されていくでしょう。

alt

ディスカッション機能を用いて、作業時に出てきた関連情報を全て記録しておくことができます。

alt

また、リンクタブでは、必要に応じて、スクリーンショットを添付する、または、ドキュメントを添付することも可能です。

alt

ソースコードの変更

ではここから、実際、アプレットを表示するためのHTMLを作成しましょう。Javaパースペクティブに切り替えて、パッケージ・エクスプローラーから、HelloJazzWorldを選択し、コンテキスト・メニューから[新規]→[ファイル]を選択します。

alt

新規ファイルダイアログで、ファイル名として、HelloJazzWorldApplet.htmlを入力し、[終了]をクリックします。

alt

作成されたhtmlファイルを右クリックし、コンテキスト・メニューから[アプリケーションから開く]をクリックし、[テキスト・エディター]を選択します。テキスト・エディター上で、適当に内容を入力します。例えば、下記で構いません。

<applet
code="HelloJazzWorld.class"
width=200 height=100>
</applet>

alt

テキスト・エディターで入力して保存を行うと、自動的に保留中の変更ビューにて、変更されたものが検知されます。下記の、右上のボタン「すべての保留中のローカル変更のチェックイン」をクリックして、まずは個人用のリポジトリーに、チェックインを行います。

alt

そうすると、自動的に現在ワーク中のタスクに紐づいて個人用リポジトリーにチェックされたことが分かります。

alt

発信を選択して、右クリックし、コンテキスト・メニューから、[提出]を選択します。これでチームのリポジトリーに提出することができます。

alt

タスクの完了

では、タスク・エディターに戻って、タスクの状態を[解決]に変更しましょう。これで、このタスクは完了です。

alt

トレーサビリティの確認

ここで、タスクと変更セットの履歴がRTCの中でどう管理されているか、つまりトレーサビリティを確認してみましょう。タスク・エディターの中で、下部のリンクのエリアを見てみると、変更セットが、自動的にこのタスクに関連づけられていることが分かります。変更セットの下の、HelloJazzWorldチーム デフォルト・コンポーネントの変更をダブル・クリックしましょう。

alt

変更エクスプローラーの中に、この変更セットによって、どのファイルが変更されたか一覧で表示されます。今回の場合、一つのファイルのみですが、複数個のファイルが変更された場合はそれらが全て表示されます。ここで、HelloJazzWorldApplet.htmlをダブル・クリックします。

alt

そうすると、比較エディターが開きますので、実際にコードのどの部分を変更したかが明確に表示されます。これによって、どのタスクがどの変更セットを引き起こし、また、その変更セットによって、どのファイルのどの部分が変更されたのかが一目瞭然で分かります。

alt

また、タスクのヒストリーをチェックすると、誰が、何を、いつ、変えたのかが全て記録されています。ディスカッションや添付ファイルとあわせることによって、何故変えたのかもより明確に分かります。

alt

プロジェクト・ダッシュボードの確認

Webユーザー・インターフェースにて、バーンダウンチャートを確認してみましょう。ブラウザを起動して、URLにhttps://localhost:9443/jazz/と入力し、taroでログインします。プロジェクト・エリアから、HelloJazzWorldプロジェクトを選択し、ダッシュボードを見ます。バーンダウンチャートに注目すると、今回は、初日に見積もりまで終わらすことができなかったので、初日のデータが適切ではありませんが、見積もり終了後、タスク終了後でバーンダウンチャートが自動的に更新されていることが分かると思います。このように、RTCで一元的に管理されている情報から、バーンダウンチャートのようなグラフが自動的に生成されるため、プロジェクトの見える化がより簡単に可能であることが分かります。

alt

今回の記事では、プロジェクトにおけるリリース計画の策定から、反復計画(スプリント)の策定、タスクの実行の流れを紹介し、最後にトレーサビリティの確認、プロジェクトのダッシュボードの確認を行いました。今後の記事では、ソースコード管理、ビルド管理についてより詳しくご紹介していきたいと思います。どうぞお楽しみに!