[トップページへ] [なぜスクラムなのか?] [スクラムのリンク集]

SCRUM(スクラム) とは

アジャイルソフトウェア開発方法論の一つです。
アジャイル方法論としては、XP(eXtreme Programing)が有名ですが、XPが開発者の視野に立ちプログラム開発の効率を最大化するためのプラクティスを多く揃えている(ペアプログラミングとか)のに対して、SCRUM(スクラム)はプロジェクトの目線に立ち、プロジェクトが達成しうる価値を最大化することに重きを置いています。

このページでは少しずつSCRUM(スクラム)について書いていきたいと思います。

SCRUMの進め方

SCRUMの登場人物

  • プロダクトオーナー
    • スクラムチームの外の人々から要件を吸い上げ、ビジネス上の優先順位を調整する
    • 通常は顧客サイド、もしくはユーザーサイドの人
    • 開発するアプリケーション、システムの要件をもっており、これから開発するシステム機能に対して、ビジネス上の観点から優先順位をつける人
    • スクラムチームは基本的にこの人の指示しか受けないし、この人の判断しか仰がない
  • スクラムマスター
    • スクラムの原理、原則にのっとりプロジェクトを進めることに責任を持つ
    • スクラムチームのメンバーを外界の雑音や妨害から守り、プロジェクトワークに集中させることに責任を持つ
    • 例えていうなら黒子、羊の群れを守る牧羊犬
    • 旧来のプロジェクト管理者とはまったく異なる役割であることに注意
  • メンバー
    • チームメンバーとかスクラムメンバーとかいわれる
    • 一定期間(スプリントという)スクラムチームに参画しチーム目標を達成するための作業に従事する
    • スプリント期間中チームに100%参画することが求められる(0.5とか0.8とかは基本的にNG)
    • チームの目標にコミットすることが求められる
    • 自分で考え、自分で行動することが求められる
  • その他の人
    • 上述したスクラムチーム以外の人
    • スクラムでよく紹介される「ブタとニワトリ」という説話において、ニワトリと称される人
      • スクラムチームの人はブタと称される
      • その昔、ブタとニワトリが一緒に商売をしようという話になり、ニワトリがスクランブルエッグを出す店を開こうと提案した時に、ブタは次のように言って間髪いれずに断ったという。「それだと君は卵を提供するだけでいいけど、僕は命を削ってベーコンを提供しなければいけないからいやだよ!」
    • つまり、口を出そうが、出すまいがスクラムチームの人と異なりプロジェクトの成否に利害関係を持たない人という意味

SCRUMのプロセス

  • プロダクトバックログ作成
    • 作成対象のアプリケーション、システムに対する要件を実現したい優先順位にもとづいて並べたもの=プロダクトバックログを作成する
    • 作成にかかわるのは、プロダクトオーナー、スクラムマスター、スクラムメンバー
    • プロダクトバックログはプロダクトオーナーがオーナーシップを持つ
  • スプリント計画ミーティング
    • 次のスプリント(設計・開発・テスト・リリースからなる、スクラムの基本活動単位。通常は1か月)で実施する内容を決定するミーティング
    • 各スプリントは出荷可能な製品(shippable product)(つまりプロトタイプではない)を作り上げることを目標とする必要がある
    • スプリント計画ミーティングは、前半と後半に分けて実施する、経験上の数値として、前半を4時間、後半を4時間~8時間で実施するのが適切といわれている
    • 前半
      • プロダクトオーナー、スクラムマスター、スクラムメンバーが参加し、プロダクトバックログ上に記載された、各要件に対するビジネス上の優先順序=実装の優先順序を決定する
      • スプリント計画ミーティングに先立って、スクラムマスターとスクラムメンバーは、プロダクトバックログ上の要件の実装の重み(工数)や難易度をざっくりと見積もっておき、次のスプリント期間内で実現できる範囲をプロダクトオーナーにコミットする
    • 後半
      • スクラムマスター、スクラムメンバーが参加し、スプリント計画ミーティングの前半で、プロダクトオーナーにコミットした内容を実現するための作業リスト=スプリントバックログを作成する
      • スプリントバックログの作成には、スクラムマスターおよびスクラムメンバーの全員が必ず参加しなければいけない
        • スプリントバックログを全員参加で作成することにより、次のスプリントで実施する作業の全容を全メンバーが把握することが可能となる
  • スプリント実施
    • 日次スプリントミーティング
      • 毎朝スクラムマスター、スクラムメンバーが集まり短時間のミーティングを行う
      • 日次スプリントミーティングでは、スクラムマスターが各スクラムメンバーに下記3点に関してのみ確認を行う
        • 昨日から今日までに行ったこと
        • 今日から明日までに行うこと
        • 作業を進める上での課題、問題点、心配事
      • スクラムメンバーはスプリントバックログの中から自分が行う作業を自主的に選択する
      • ディスカッションやブレインストーミングが必要な場合は、日次スプリントミーティングでは行わず、別途時間を取り実施する
    • スプリント期間中は毎朝スプリントミーティングを実施し、完了した作業、その日の作業予定を確認しながら粛々と開発作業を実施する
      • バーンダウンチャート
        • 横軸にスプリント経過日数、縦軸に残タスク数(もしくは作業完了までの見積り時間の総和)をプロットしたグラフ
        • スクラムでは日々バーンダウンチャートをメンテナンスすることにより、作業の進捗状況や完了までの見通しを可視化する
  • スプリントレビュー
    • スプリント終了後、できあがった成果物(shippable product)をプロダクトオーナーおよびユーザーにお披露目する
    • レビューの結果、成果物がリリース可能な状態にあると判定された場合、チームは成果物をリリースする
  • スプリント反省会
    • スプリント終了後、チームメンバー内で以下のテーマに関して話し合う
      • このスプリントでは何が上手くいったか
      • このスプリントで上手くいかなかったことは何か
      • 次のスプリントを上手く行うために改善できる点はあるか
      • スプリントを通して、自分はhappyだったか

上記の一連のプロセスを通して、一回のスプリントが終了し、shippable productがリリースされる。
このプロセスを繰り返し実施し、インクリメンタルに開発を継続していくのがスクラムである。

SCRUMにおける価値、原理原則

前述のプロセスを見ると判るとおり、スクラムは普遍的な価値、原理原則に基づいた方法論である

  • コミットすること
  • 集中すること
  • オープンであること
  • 敬意を払うこと
  • 勇気を出すこと

[トップページへ] [なぜスクラムなのか?] [スクラムのリンク集]