アジャイルって何?(2)
アジャイルソフトウェア開発の手法「スクラム」のご紹介

postit

スクラム。

それは、ラグビーにおけるセットプレーの名称で、両チームの選手が試合再開の際に肩を並べて組み合うことを言います。その姿から、ラグビー以外の場面においても「スクラムを組む」という表現が使われることがあります。

ソフトウェア開発を成功に導くための重要な要素のひとつに、エンジニアをはじめとした関係者がいかに協力しあってプロジェクトを進めていけるか、というものがあります。そこで、関係者が肩を並べて組み合い、協力し合うことを最大の目的にして、ソフトウェア開発手法「スクラム」は誕生しました。

「スクラム」の原点~大手企業開発プロジェクト手法と、アジャイルソフトウェア開発宣言の発起人ジェフ・サザーランドの開発ツール群~

まずは、スクラムの歴史を簡単にご紹介します。

1986年、一橋大学の野中郁次郎と竹内弘高が『Harvard Business Review』誌に”The New New Product Development Game”というタイトルの論文を発表しました。この論文は、ゼロックス、ヒューレット・パッカード、キヤノン、本田技研工業、ブラザー、スリーエム、日本電気、セイコーエプソン等、大手企業の開発プロジェクトの現場において、当時採用されていた開発手法を分析したものでした。

論文の中で、キヤノンと本田技研工業の開発チームの様子を「ラグビーのようにボールを前後に回しながら、チームで一丸となってボールを運んでいる」と紹介し、このようなチームのことを「スクラム」と名付けて、特徴を6つ挙げました。

  1. 不安定な状態を保つ
  2. プロジェクトチームは自ら組織化する
  3. 開発フェーズを重複させる
  4. 「マルチ学習」
  5. 柔らかなマネジメント
  6. 学びを組織で共有する

これらの特徴は、現在ソフトウェア開発手法としてのスクラムに採用されているアイディアとほぼ同一でした。そのため、この論文は「スクラム開発の原点」とされています。

その後の1993年、アメリカのエンジニア、ジェフ・サザーランドらが、開発スピードを上げるために、反復型開発を中心としたソフトウェア開発ツール群を構築しました。これは、前述の論文のようにIT以外の製造の現場における開発手法を、ソフトウェア開発の現場に初めて応用したものと言えます。これが、ソフトウェア開発手法としてのスクラムの元となりました。ジェフ・サザーランドは後にアジャイルソフトウェア開発宣言の発起人に名を連ねることになります。

「スクラム」における3つの役割と、6つのプロセス

それでは、スクラムの実際を見ていきましょう。

はじめに、スクラムで登場する役割をご紹介します。

  1. チーム

スクラムでは、開発チームはスポーツのチームのように機能しなければならないとされています。メンバーが協力し合い、全体として同じゴールを目指すのです。スクラムでは、チームの人数は、5人から9人が適当とされており、全員が実装とテストの能力を持っています。チームは、作業プロセスと作業結果の責任も持ち、チーム内の管理を自身で行っていきます。

  1. プロダクトオーナー

製品の総責任者です。顧客の意思を代表する立場で、ビジネス視点からプロジェクトに問題がないことを保障し、顧客の要望をプロダクトバックログに優先順位を付けて反映させていく役割を担います。

  1. スクラムマスター

スクラムフレームワークが正しく適用されていることを保証する役割です。ただし、その権限は間接的なものとされています。主に、チーム内外の組織間でのファシリテーションと、外部からの妨害に対する対処を行います。多くは、プロジェクト・マネージャーがこの役割を担うことになりますが、スクラムにおいてはプロジェクトの管理そのものを実施するわけではありません。

(前述の通り、チーム自身が管理を行うため)

続いて、スクラム開発におけるプロセスをご説明します。

  1. デイリー・スクラム

毎朝チームメンバーが集まり、短時間で「前日に実施したこと」「当日やること」「障害となっていること」を「一人一人が報告、共有」します。これにより、チーム全員の状況と問題の共有がなされ、プロジェクト全体の見える化が実現できます。

  1. リリース・プランニング

プロジェクトの立ち上げ時に実施されます。どのようなプロダクトをどのような機能優先順で、どのくらいの期間で実施するか、チーム全員で検討します。もしも実態とのズレが大きくなってしまった場合は、随時見直します。プランニングした結果は、「プロダクトバックログ(機能一覧)」により管理されます。

  1. スプリント・プランニング

ある期間(最長4週間程度)において、プロダクトバックログの中からどの範囲の機能を実現するかをチーム全員で検討します。プランニングした結果は、「スプリントバックログ」という名称の機能一覧により管理されます。チームが各スプリント内でどのくらいのタスクを消化していけるかは毎回計測して精度を高めて行きます。

  1. スプリント・実施

開発を行います。チームのメンバーは事前に検討した通りにスプリント内で安定したプロダクトがリリースできるよう最善を尽くします。原則としてスプリント内の変更(機能の追加や変更、削除)は認められません。

  1. スプリント・レビュー

関係者を集め、スプリントで完成したプロダクトのデモを行います。チームメンバーが作成したプロダクトが安定して動くことをアピールし、かつ、要求の伝達ミス・抜け漏れがないことをチェックします。これにより、メンバー全員が正しい方向を向いて開発できているかを確認するのです。

  1. スプリント・レトロスペクティブ(振り返り)

スプリント終了時に行います。今回のスプリントの良かったことや、問題点、さらに今後挑戦してみたいことをメンバー全員で話し合います。スクラムをソフトウェア開発の現場に適用させることで、ソフトウェアの開発速度の大幅な向上や、開発に関わるチームメンバーのコミュニケーションの強化等、様々な効果が期待できます。しかし、その導入を知識なく実施するのは難しいことといえるでしょう。

多くのソフトウェア開発の現場での苦労の末に編み出された、アジャイルソフトウェア開発。

開発に携わるチームメンバーの仕事の仕方をより良いものとするために、貴方の開発現場にも、アジャイルソフトウェア開発手法を適用してみませんか。

著者プロフィール
氏名:新村 繁行
株式会社カグラ 代表取締役
2003年よりインフラSE・PMOスタッフとして数多くの大規模基幹システムのインフラ設計・構築・運用プロジェクトに従事。
2014年より現職、フロントエンドエンジニアチームのマネジメントと、海外シェアハウスでITx英語xビジネスを教える人材育成プロジェクト「アクトハウス」を企画・運営する傍ら、テック系ライターとして活動中。
世界各国から楽曲をリリースする音楽プロデューサー/DJとしての顔も持つ。
Pocket

コメント