1. アジャイルソフトウェア開発宣言
    1. プロセスやツールよりも個人と対話
    2. 包括的なドキュメントよりも動くソフトウェア
    3. 契約交渉よりも顧客との協調
    4. 計画に従うことよりも変化への対応
  2. スクラムとは
    1. プロセスの対比
      1. ウォーターフォール
        1. 予見的
      2. スクラム
        1. 経験的
        2. 未来を予見するのではない
        3. 反復によって測定に基づく知識を獲得
          1. 必要
          2. 透明性の確保
          3. 検査と適応の繰り返し
    2. 基本的なプロセス
      1. 反復
        1. 1週間~4週間に区切って開発
        2. 繰り返して製品を成長
        3. イテレーション
          1. アジャイル
        4. スプリント
          1. スクラム
          2. 30日が基本
        5. スプリントバックログ
          1. 実装
          2. 出荷可能に持っていく
      2. プロダクトバックログ
        1. 開発すべき製品の機能
      3. スプリントバックログ
        1. プロダクトバックログから抜き出す
        2. 今回のスプリントで開発する
    3. 全体像
      1. 役割
        1. スクラムチーム
          1. プロダクトオーナー
          2. ROIを最大化する責任
          3. 機能の定義
          4. 機能の順位付け
          5. プロダクトバックログの最終責任
          6. 一人が担当
          7. 合議性にはしない
          8. 開発チーム
          9. 様々な技能をもった人が集まる
          10. 製品を中心に自律的
          11. バックログ項目を完了させる
          12. 開発のやり方の決定
          13. 自律的
          14. 生産性を上げる鍵
          15. スクラムマスター
          16. ファシリテーター
          17. 自律的協を働促す
          18. コーチング
          19. チーム全体のマネジメント
          20. コントロール型ではない
          21. 支援型
          22. 外部の割り込みから守る
          23. 外部との交渉
          24. サーバント(奉仕型)リーダー
          25. プロダクトオーナー支援
          26. ビジョンづくり
          27. バックログ管理
      2. 成果物
        1. インクリメント
          1. 1回のスプリントの成果
          2. 出荷判断可能状態
        2. プロダクトバックログ
          1. 製品へ追加する機能リスト
          2. ユーザーの分かる言葉
          3. ユーザーストーリー
          4. プロダクトオーナー管理
          5. 順位付けされて並んでいる
          6. 高、中、低等をつける訳ではない
        3. スプリントバックログ
          1. 今回のスプリントで追加する機能
      3. イベント
        1. スプリント
          1. 反復の単位
          2. 1~4週間の時間枠(タイムボックス)
          3. 機能が完成できなくても延長されない
          4. スプリントバックログの開発に集中
          5. 動作する製品(インクリメント)を作り出す
        2. スプリント計画
          1. スプリント開始に先立つミーティング
          2. プロダクトバックログからスプリントバックログを抜き出す
          3. プロダクトオーナーが抜き出す
          4. チーム全体で理解
          5. 見積
          6. タスクへの落とし込み
        3. デイリースクラム(朝会)
          1. チームが全員の活動状況を共有
          2. 実績と予定の確認
          3. 昨日やったこと
          4. 今日やること
          5. 障害となっていること
          6. チームが解決できない障害
          7. スクラムマスターが取り除く
        4. スプリントレビュー
          1. スプリント終了時
          2. 製品のデモ
        5. レトロスペクティブ(ふりかえり)
          1. 今回のスプリントを振り返る
          2. 検査と適応
          3. チーム学習
          4. チーム改善
  3. 活動(プラクティス)
    1. ユーザーストーリー
      1. 機能の説明
        1. ユーザーの言葉
        2. 要求仕様書を置き換え
      2. アナログ推奨
        1. 紙のカード
        2. 会話で伝える
      3. 従来の問題
        1. 完璧な仕様書で伝達しようとする
          1. 大きな仕様書
          2. 分析麻痺
          3. 書き終える頃には要求が変化
      4. 内容
        1. 簡潔にカードに要求を書く
          1. 会話のきっかけ
          2. フォーマット提案
          3. 〇〇として
        2. 対面で内容を伝える
        3. 必要に応じユーザーから詳細を聞く
    2. プランニングポーカー
      1. バックログの規模見積を全員で行う手法のひとつ
    3. 朝会(デイリースクラム)
      1. 情報共有ミーティング
        1. 文書による進捗報告では代替不可
        2. 開発チームのためのもの
        3. 上司への進捗報告会ではない
      2. 毎朝
      3. 報告
        1. 昨日やったこと
        2. 今日やること
        3. 障害となっていること
    4. レトロスペクティブ
      1. 本音で話し合う
        1. 良かったこと
        2. 悪かったこと
        3. 改善点
      2. 主目的
        1. 気付きの共有
        2. 今後に生かす
        3. 責任追求や課題解決リストを作ることではない
      3. やり方
        1. KPT
          1. ラベル付け
          2. Keep(継続)
          3. やってみて有効、今後も続けたい
          4. Probrem(問題)
          5. Try(試す)
          6. 改善として次回にやってみたい
    5. タスクかんばん
      1. 現在チームが実施している作業を可視化
        1. カードに書き出す
          1. 朝会で、自らタスクにサインアップ
        2. 壁に貼る
          1. 区画
          2. Todo
          3. Doing
          4. Done
      2. 自分達で活動を改善して行く
        1. 管理者をおいて監視するよりも
          1. 生産性があがる
          2. モチベーションが上がる
        2. 100%の解決策を求めず、多くの場合うまく行くやり方を見つけ、実行する
    6. バーンダウンチャート
      1. スプリント内で残作業を確認し進捗を知る
      2. 作業量の単位(ポイント)
        1. 理想時間
          1. 割り込みが全くない状態での必要工数
      3. 見える化
        1. 行動を喚起する可視化
      4. 残量の集計
        1. 完了のためにあと何ポイント必要か
        2. あと残作業がどれだけか
      5. 開発チームがスプリントで達成したポイント数
        1. ベロシティ(開発速度)
    7. ペアプログラミング
      1. XPのプラクティスの一つ
      2. プログラミング
        1. クリエイティブ
        2. ミスが起こりやすい
          1. リスクが高い作業をペアで行う
          2. パイロット
          3. スキューバダイビング
        3. ペア開発
          1. クリエイティブやリスクのある作業では効果的
      3. 効果
        1. リアルタイムレビュー
        2. 知識の共有
      4. 役割
        1. キーボードを打つ
          1. ドライバー
        2. 助言や質問を投げる
          1. ナビゲーター
    8. テスト駆動開発(TDD:Tset Driven Development)
      1. 動くソフトウェアを重視
        1. 動いているかはテストで把握
        2. テストされていないコードは仕掛品
        3. テスト自動化
          1. 既に統合したコードもどんどん変更するので必須
      2. 種類
        1. ユーザーテスト
          1. 受入テスト
        2. 開発者テスト
          1. ユニットテスト
        3. 品質保証テスト
      3. リファクタリング
        1. 今まで動いている部分も変更する
        2. 常に自動テストされていること
    9. 継続的インテグレーション(CI:Continuous Integration)
      1. 動くソフトウェアを常時結合する
  4. なぜアジャイル開発なのか
    1. ソフトウェア
      1. ビジネスとつながっている
        1. ゴールが分断
          1. ビジネス
          2. 開発投資にみあう効果
          3. IT
          4. 契約を満たす
          5. 仕様通りのシステム納品
        2. 開発期間
          1. 市場調査から投入までのラグ
          2. 要求の変化
    2. アジャイルが目指すビジネス
      1. ゴールを共有
        1. ITのゴール
          1. ビジネスとしての効果をあげる
          2. 短期リリース
          3. 1週間から1ヶ月
          4. 実際に動作
          5. 市場反応を見る
    3. 従来手法(ウォーターフォール)の問題点
      1. 特徴
        1. 利点
          1. 非常に論理的
          2. 作る前に十分検討
          3. 全てを文書化
          4. 計画に従い体系的に管理
        2. 欠点
          1. 唯一の欠点
          2. プロセスに「人間」が関与
          3. 多くの問題
          4. 人の創造性を奪う
          5. 途中で計画外の良いやり方が見つかっても採用出来ない
          6. イノベーションの機会を奪う
          7. 最後に見つかった素晴らしいアイディアは幸運ではなく脅威
          8. 文章によるコミュニケーションには限界がある
          9. 詳細に記述された仕様書
          10. なかなか読まれない
          11. 間違いや誤解が含まれる
          12. 悪いタイミング
          13. 重要なひらめきは製品開発の最後の段階で起こる
          14. 変更が一番高価なタイミング
          15. 未来は予測できない