XPプロジェクトの進め方概要

このエントリーをはてなブックマークに追加
はてなブックマーク - XPプロジェクトの進め方概要
Share on Facebook

アート・オブ・アジャイル デベロップメントの中身を実践するにあたり、XPのチームの組み方と、イテレーション毎にやることをまとめました。

XPチーム

役割の説明

  • オンサイト顧客(または単に「顧客」)
    • プロダクトマネージャー(別名プロダクトオーナー): プロダクトビジョンの維持、推進
    • ドメイン専門家: システムの対象領域に関する専門知識を有する
    • インタラクションデザイナ: UIの定義、レビュー
    • ビジネスアナリスト: 顧客と開発者の連絡係
  • プログラマー(=すべての開発者)
  • テスター
  • コーチ
    • プログラマーコーチ: プログラマーの技術的なプラクティスを手助けする
    • プロジェクトマネージャー: プログラミングとは無関係のプラクティスをコーチする
  • プロジェクトコミュニティ
    • ステークホルダー: エンドユーザー、購入者、経営者、経営幹部など
    • エグゼクティブスポンサー: プロジェクトにお金を出す、究極の顧客
  • メンター: 困ったときアドバイスをくれる人(チームにいる)

構成

ロール名 人数 備考
オンサイト顧客、顧客 1-2 オンサイト顧客1 + プロダクトマネージャー1が理想
プログラマー 4-10 ペアプロのため、偶数が望ましい
テスター 0- いない場合、顧客かPGで代用
プログラマコーチ 0-
プロジェクトマネージャー 0- 顧客が兼務することがある
メンター 0-
ステークホルダー 0-
エグゼクティブスポンサー 0-
  • プログラマー3名につき顧客2名が望ましい
  • プログラマー4名に付きテスター1名が良い
  • 最小のチームは5名
    • プログラマー4名(うち1名はコーチ)+顧客(プロダクトマネージャー)1名
    • 熟練プログラマー1 + プロダクトマネージャー1 のチームも可能だが、全面的にXPを採用するには無理がある
  • 最大でプログラマー10名、顧客6名、テスター3名、プロジェクトマネージャー1名(合計20名)
    • これ以上大きなXPチームは特別なプラクティスが必要
  • 掛け持ちアサイン(複数のプロジェクトに同時にアサイン)は効率を大幅に落とすので厳禁

新規XPプロジェクトの進め方

イテレーション0

そもそもプロジェクトができる前の状態。

期間

不定

やること

  • 顧客(ビジョナリー)はビジョンを用意しておく
  • イテレーション1にアサインするメンバーを集める

イテレーション1

期間

  • 1週間
    • 3日前後の短い期間で素早くフィードバックを集めるのも良い

やること

  • 計画づくり
  • エンジニアリングタスク
    • 分析
    • 設計
    • コーディング
    • テスティング
  • 導入

備考

  • 最初の計画づくりセッションで10~20個のストーリーを引き出し、見積もる
    • 見積もりはいいかげんで構わない
  • 数個のストーリーだけに取り組む
  • 万事をインクリメンタルに行う
    • 最初の1週間でリリースできるものを作る
    • 技術的基盤
      • イテレーション計画の際に専用のエンジニアリングタスクを作成しておくと良い
  • 最初のMTGで、チームとして仕事をする上での合意事項をドキュメント化する
  • プログラマーがストーリーに取り組んでいる間、顧客とテスターはビジョンとリリース計画の策定に取り組む

イテレーション2~4

期間

  • チームが成長するまでは1週間

やること

  • イテレーション1と同じ
  • コーディング標準第1版の作成
  • ビジョンの完成

イテレーション5~

期間

  • ベロシティが安定してきたら2~3週間もOK

やること

  • イテレーション1と同じ

いくつかの注意

  • XPでは要件定義を目的とした前払いの分析フェーズを設けない
  • 既存のプロジェクトのXPを適用する方法は書籍内で別途紹介している

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>