PietriXPをこれから始めてみようと思っている人達は、開発部屋がどんな状態か興味を持っているはずです。(XPを知らない人は、この資料の後ろの方の用語集にある簡単な説明を見てください。ここでは、5人で九ヶ月かけたプロジェクトで撮影した写真を説明していきます。私達の顧客の機密に関わる部分は写真をぼかしてあります。質問や、もっと良い方法などの情報は筆者まで。最初の写真では、開発部屋におけるおもな機材に番号をふってみました。自然光を取入れ、机は木製にし、高い天井の部屋を選んだことで快適な労働環境を実現しています。写真からもわかるように、最も広い壁側にはプロジェクトに関する様々な情報が掲示されています。デュアルディスプレィ搭載。向かい合って2台配置。写っていませんが写真右側にはビルド&テストを行い続けるサーバあり。成功や失敗に応じてそれなりの音が演奏されます。開発チームからはちょっとだけ距離を置き、開発者チームたちを眺める確度で座っています。これにより、いつでも気軽に議論ができるようになります。声をかけ難い状態でも、彼の方をじっと5〜10秒みつめて手をふれば、大抵は気づいてくれます。推定推量による開発が大幅に減少する、ということを意味します。ホワイトボードを使って、その週に開発するものの状況をみんなが把握します。ダウンされていきます。Managerにみてもらいます。Managerがストーリーをレビューしてオッケーなら、開発に入ります。Managerが書き込んだ画面メッセージやエラーメッセージが記述されています。ホワイトボード左上にある小さな領域はバグ追跡情報です。見つかったら、その情報をここに書きこみます。プロジェクトを通して、バグが二つ以上同時に発生することはありませんでした。したその日のうちに解決しました。ゼロ」とかかれていました。色で囲んである部分はリリースメモが書き込まれます。これは次のリリースで必要な手順の説明です。何度も既存アプリをアップグレードするので、この部分は頻繁に変更が入りました。リリースを繰り替えすうちに、手順はだんだん向上していきました。関係ない作業もあります。不要になったコードの整理とか、リファクタリングとか、解決策を見つけていない設計実装上の問題などです。課題を忘れないように、ホワイトボードにストーリー領域とは異なる「技術屋さん宿題」領域を設けました。いてはここからそのまま削除したこともありました。各イタレーションは一週間の周期で、毎週金曜日の昼食の後にイタレーションの締めミーティング行い、新しいイタレーションを開始するようにしました。Managerがこの先にやってくるストーリーやプロジェクトのポイントなどをチェックします。その週の作業確認を行うこともありました。題の下には、各種実績値が掲示されています。これらの数値は必要以上に追わないようにしました。いって、特になにか対策をたてるようなこともしませんでした。じ行数で推移しました。問題点を特定するために、ふたつの実績値の追跡が途中で追加されました。一つは受け入れテストの記述がスケジュールより遅れていると気づき、その追跡を始めました。mangerの厳重なレビューを受けながら受け入れテスト開発を行いました。遅れを測定するために、受け入れテスト記述が済んでいないストーリーの件数を数えました。う一つの測定対象は、ベータ版サイトの利用率が低いと判断されたときに付け加えられました。このサイトの利用者によって生成されるコンテンツの量を測定している、と考えてください。掲示板システムでの投稿数のようなものです。汎用ホワイトボード分析や設計の際には、ホワイトボードを活用しました。一枚のホワイトボードでは充分だったとは言えません。プロジェクトがもっと長引いていたら、もっと多くのホワイトボードを追加購入していたでしょう。ストーリーカード掲示板この掲示板が、製品開発の議論をするベースとなりました。示板は3つの領域にわかれています。上三段には、最近完了したストーリーが掲示されます。その下の段左側には、スケジュールされているストーリ貼られます。各段に一週間分を掲示し、むこう9週間まで貼っておきます。右側には、いつやるか決まっていないストーリーが、顧客のビジネスにとっての重要度順に並べられています。リーの下には、「未計画のアイデアコーナー」があります。下には備品入れがあり、カードやポストイット、鉛筆などが入っています。カード作成時には以下のような色分けルールを活用しました。開発場所の中央に、このような大きい掲示板を設置することはとてもよかったと思っています。スケジュールについて何か悩んでいるときは、掲示板の前にやってくればよいわけです。カードを動かす、ということでいつも実のある議論が始まるようになりました。その辺にある日曜大工の店)で買えるような極普通の材料を集めて作ってくれました。横方向の木材は1.5インチ×1インチで、L字型プラスチックの板がついています。カードはこのプラスチック盤と木材の間にはさまるわけです。これらの材料がボルトと蝶ネジで固定されています。分解も簡単ですし、足元には台車もついているので、移動も簡単です。Jamesは一回作ったら懲りたようです。Pietriは、この手のものを作るのに興味を持っている大工さんを知っています。直接メールしてください。開発者ワークステーション開発ワークステーションは二台の1280x1024モニタが接続されています。キーボード、マウスはそれぞれ一つづつです。GUI、ファイルブラウザ、クラスブラウザ、シェルなど)は左側のディスプレイを使います。いずれもLinux環境の上で動かしました。机の上には筆記用具やメモ帳などを豊富に置いておきました。主掲示板のスペースを開けるために、開発して時間が経過したストーリカードはこちらの掲示板に移動しました。これにより、現在の開発対象や今後のテーマに集中しつつ、これまでの開発成果を視覚的に把握することができました。CVSに新しいバージョンのソースをチェックインする都度、CruisControlはその変更を検知し、自動ビルドを開始します。ビルドが成功すると、今度はユニットテストと受け入れテストが走り始めます。用語集Xpについて詳しくない人のために、簡単な用語解説をしておきます。詳しい情報はいろいろなサイトで得られます。XPのようなAgile開発手法を推し進めるコンサルタントとして、いつでも質問を喜んで受け付けます。.開発部屋は、プロジェクトルームあるいはタコ部屋とも呼ばれ、そのプロジェクト専用に使われる空間のことです。特別なミーティングを除いて、私達はプロジェクト全ての時間をここで過ごしました。siteでも見ることができます。ストーリーとは作業の基本単位で、おおざっぱに言えば「機能」と同じ粒度です。イタレーションとは、私達の場合は一週間の作業のことで、その週に開発されるストーリー一式が選ばれ、開発が始まり、完了するまでを指します。Manager)が選びます。各ストーリーは複雑度により、1〜3ポイントが付与されます。一週間で消化されるポイントの合計をベロシティと呼びます。ストーリーの開発に必要な期間を見積もれない場合があります。そのための調査やお試し開発をスパイクと呼びます。XPでいうところのペアプログラミングも採り入れました。4人の開発体制なのに机がふたつしかないのはそのためです。HomeはXP顧客およびUI設計を担当しました。素晴らしい掲示板などの工作を担当し、本資料にある写真を撮影してくれました。Pietriは本チームの発起人で、各担当者にXPを教育し、本資料を執筆しました。Slesinskyは素晴らしい仕事ぶりをみせ、本プロジェクトに多大な貢献をしました。Homeに帰属します。