RTCを活用したアジャイル開発の実際
チームと仕事配分
前回までに、アジャイル開発を大規模で分散したチームによる製品開発に適用するためのプラクティスをまとめあげたEclipse Wayの全体像を解説してきました。Jazz.netで行われている開発の大きな流れもご紹介しました。
最終回の今回は、実際にRational Team Concert(以下RTC)の開発に参加している開発者の視点から、Jazz.net上での開発がどのようにして行われているかを、ツールの活用など具体例をいくつか取り上げてご紹介したいと思います。
この連載の第2回で、アジャイルではチームメンバーは“職能横断”で複数のチームにまたがって個人の専門性を生かしていく、という話をしました。実際にJazz.netに参加している多くのメンバーは複数のチームに参加しています。
例えばある開発者が2つのチームに参加し、それぞれのチームに対して50%ずつ自分の時間を使うことになったとしましょう。通常、このケースのように複数の仕事を掛け持つ場合には、それぞれのプロジェクトのリーダーとうまく話をしないと、最初のうちはちゃんと50%ずつで済んでいたものが、開発が進むにつれ、合計200%もの仕事量がいつの間にか割り当てられてしまっていた、などということもあるのではないでしょうか。
Jazz.net上での開発では、メンバーは参加するチームごとに仕事の配分をRTCのユーザー情報として宣言しておきます。RTCはメンバーの負荷の計算時などには、その配分を計算に入れて表示するようになっています。進ちょくや負荷はリアルタイムに計算されるため、今の各メンバーの負荷が一目瞭然(りょうぜん)にわかります。“職能横断”によって個人に負担が発生しないようにすることは、思うより簡単ではありません。ツールがそれを補佐してくれる1つの例と言えます。
反復計画
各マイルストーンの開始時には、そのマイルストーン内で行うことを決めていきます。第3回で述べたとおり、テーマや計画項目はリリースプランの策定時には宣言されています。各マイルストーンのプランニングでは、それらの中から今回行うアイテムを取り出し、必要に応じてストーリーやタスク(ワークアイテム)を追加していくことになります。
一般的な開発現場では、このような作業はエクセルなどを利用してアイテムを書き出し、それをメールで配布あるいはグループウェアで共有するなどすることが多いのではないかと思います。更新は週1回のミーティング時に行うか、あるいは毎日集まって1時間かけて更新するなどでしょうか。
Jazz.net上での開発では反復計画はRTCの提供する専用のエディター(反復計画エディター)を使って記述します(図1)。ここで重要なのは、その反復計画がサーバー上のリポジトリーの中に存在し、常に更新された最新のものをみんなが共有するということです。開発メンバーや関係者は、その反復計画をいつでも確認でき、現在の進ちょくや誰がどこまで終わっていて、残りが何なのかなどの情報をリアルタイムで見ることができます。しかも、個々の開発メンバーが自分のワークアイテムを更新すれば自動的に反復計画にも反映されるので、更新のためにミーティングを行う必要もありません。
このリアルタイム性によって、チーム全体のロードバランスなどを常に共有でき、チーム全体の健全性を高め、チームに降りかかるさまざまな変化に柔軟に対応できます。
-参考-
Jazz.net上で進んでいる開発の反復計画はJazz.netにWebブラウザーでアクセスすることにより、Jazz.netに登録した方なら誰でもアクセスすることができます。例えば、https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.apt.search&predef=current&tq=1239872174000 にアクセスすれば現行の反復計画の一覧を見ることができます。