スクラム
オリエンテーション資料
アジャイルとは?

ぶっちゃけ、「アジャイルサムライ」読め!

今回はスクラムを行う

 短い期間「スプリント」で開発サイクルを区
 切って、優先度の高い機能からどんどんリリー
 スしてお客さんに見てもらい、改善していく
スクラムの登場人物
スクラムマスタ:開発メンバーをまとめるPM

チームメンバ:開発メンバ

 開発メンバの役割は体制次第

 それぞれがどうアジャイルなメンバになるかはPJ
 の特性を考慮して考えよう!

プロダクトオーナー:お客さん
スプリント?
  小さなマイルストーンだと思ってくれればいい

  スプリント期間でつくるものを、皆で見積もっ
  て、皆で責任もって遂行する!

        検索機能!           詳細閲覧機能!


       スプリント1          スプリント2          ・・・・
7/15            7/29            8/12
全体の流れ

計画フェーズ

スプリントの実施

 すべての機能を作るまでこの繰り返し!

結合試験(ここからは今までと同じ!)
計画フェーズ
プロダクトオーナーの要件を聞いて、ストーリー
(ユースケース)を洗い出す

各ストーリーのストーリーポイントを設定する

ストーリーのバーンダウンチャートを作成する

ストーリーの一覧と、バーンダウンについて、プロ
ダクトオーナーと合意を取る
ストーリーポイント
ストーリーに対する開発規模を、相対的に表した数値


大概はフィボナッチで表現(1,2,3,5,8,13,21...)


      ストーリー           ストーリーポイント

顧客が商品を検索できる                3

顧客が商品を注文できる                8

顧客が注文をキャンセルできる             5

顧客が出荷状況を確認できる              8
ストーリーのバーンダウン
      横軸は日付(スプリント)、縦軸はストーリーポイント
      例えば、全ストーリーポイント110で、6スプリントあるなら、1スプリント
      で18.3ストーリーポイント完了するのが理想
                             理想線     実績
120

 90

 60

 30

 0
開始(7/17)      Sp2(8/13)   Sp4(9/18)   Sp6(10/15)
スプリントの実施
           (計画)
開始時に、スプリントの計画を皆でやる

 スプリントでやるストーリーを決める

 開発タスクを皆で見積もる

   何をするのか、どのくらい時間がかかるのか?

 見積もったタスクの総時間に対して、スプリントのバーンダウンチャー
 トを作成する

 その他、期間内で達成したいことなどあれば、決める

   例えば、チーム目標や個人目標とか
タスクの時間を見積もる
ストーリーに対するタスクを洗い出して、作業時間を見積もる

   作業時間の見積り方: プランニングポーカーなど

数時間で終わる単位で作るのが理想

        タスク          作業時間(h)

商品モデルの検索メソッドを作る         2

検索画面のerbテンプレートを作る       2

検索画面の初期表示コントローラを作る      1

検索画面の検索実行コントローラを作る      4
スプリントのバーンダウン
      横軸は日付、縦軸はタスクの総作業予定時間
      今回の例なら、(2ペア+1パラ) x (7.5h) x (9日) = 202.5h のタスクを見積もる


                                     理想線        実績
240

180

120

 60

  0
   開始     7/17 7/18 7/19 7/20 7/23 7/24 7/25 7/26 7/27
スプリントの実施
    (日々のお仕事)
皆でタスクを消化していく

 スプリント内のタスクは、チーム全員のタスクである

タスクの終了とは、リリース可能な状態まで作り上げる事!

 動かないコード、テストがないコード、機能を満たさな
 いコードは終わったとは言えない!

終了したタスクのぶん、バーンダウンはどんどん下がってい
く!(気持ちいい!)
スプリントの実施
(スプリント期間最終日)
スプリントを振り返る

 どこが良かったか?目標は達成できたか?

タスクの整理

 終わらなかったタスクの持ち越し
スプリントが終わったら
スクラムマスターは、お客さんにストーリーの消化具合を報告する

 ぶっちゃけ、ストーリーのバーンダウンチャートを見せればOK

リリースした機能をお客さんに触ってもらい、フィードバックをも
らう

 フィードバックをもらった事で、対応も必要になる。

 我々のミッションは、お客様の業務を改善すること!フィード
 バックをもらうのはプロとして喜ばしいこと!がんばろう!
スクラムをすすめるための
    ベストプラクティス
テストファースト

  機能を明文化(テストケースを書く)してから作る

  単体で動作が保証できるものを作りあげていく

ペアプログラミング

  開発する手が止まらないようになる

  凡ミスや個人の認識ミスによる誤実装が減る

  ペアを1日に2,3回交代することで、機能の属人化がなくなる

  プログラミングをうまくやるためのチェックリスト

     http://web.archive.org/web/20110613064530/http:/
     lab.cirius.co.jp/blog/2008/09/post-8.php

スクラム説明