5分で理解するアジャイル開発とスクラムの関係

5分で理解するアジャイル開発とスクラムの関係

システム開発の現場では様々な開発手法が用いられており、その中で特に人気が高いのが「アジャイル開発」及び「スクラム」です。近頃、耳にすることが多いこれらの開発手法には、どのような関係があるのか?あるいは、アジャイル開発とスクラムとはそもそも何なのか?本記事ではアジャイル開発とスクラムの概要と関係が知りたいという方のために、噛み砕いて分かりやすく解説しています。

従来型の開発はなぜいけない?

amela.co.jp news image 1 食材も調味料も、調理器具まで完璧に揃えたのに料理が思っている味にならなかったという経験はありませんか?システム開発でも同じようなことが多々発生します。いざ開発を始めても、途中で要件・仕様が変わったり、開発に時間がかかり過ぎてプロジェクト自体が意味をなさなくなってしまったり、こうしたトラブルは付き物です。 原因として、「従来通りの古いやり方」が上位を占めています。要件・仕様を定義しても、それが100%正確とは限りませんし、途中で変更になる可能性も多分にあります。その事実を無視して計画通りにプロジェクトを進めてみても、上手く行くことの方が少ないのは明らかです。そして次第に、多くのエンジニアの目がアジャイル開発やスクラムへと向くようになりました。

アジャイル開発とは結局何なのか?

amela.co.jp news image 2 アジャイル開発の明確な定義が誕生したのは2001年のことです。前述した従来型の開発に顕在している問題を解決するために、ソフトウェア工学の専門家が集結し、数多くの議論を行った結果として「アジャイルソフトウェア開発宣言」を発起します。その中で記されている12の原則を簡単にご紹介します。

  1. 顧客満足度を優先すること
  2. 要求の変化は当たり前のことと受け入れる
  3. 短期間でのリリースを目指す
  4. 開発者とビジネスパーソンは協力し合うこと
  5. チームメンバーを信頼する
  6. 対面でのコミュニケーションを大切にする
  7. 動くソフトウェアが最も重要である
  8. 一定のペースを持続すること
  9. 設計の細部までこだわる
  10. 常に効率化を追求する
  11. 最良はチームの結束から生まれる
  12. 定期的な振り返りでチームのやり方を最適にする

従来型の開発手法ではシステム開発に必要な工数と人員、それに伴うコストやプロジェクト期間などを明確に定めてから開発に進みます。一方、アジャイル開発ではシステム開発のプロジェクト期間と人員を決定したら、優先度の高い要件・仕様から開発に着手します。そして要件・仕様ごとに開発を完了し、ビジネス側のレビューを得ながらプロジェクトを進行していくのです。そうして重要な要件・仕様や開発に伴いリスクが高いものから作り込んでいくことで、ビジネス側が要求するシステムの完成形へより素早く近づくことが可能になります。

スクラムとアジャイル開発の関係性

amela.co.jp news image 3 2019年に日本で開催されたラグビーW杯により、「スクラム」という言葉の意味を知る人は多くなったでしょう。もちろんシステム開発におけるスクラムとは、大柄な男性数名が肩を組みながらボールを足で転がしていくわけではありませんが語源はここにあります。スクラムは数あるアジャイル開発手法の一種であり、「スクラムガイド(https://www.scrumguides.org/)」によってそのルールが決められています。 スクラムの特徴は技術的要素が排除され、「システム開発プロジェクトを成功させる仕組み」を追求したことです。このためシステム開発以外のプロジェクトにも適用できる部分が多く、最近では一般的なビジネスプロジェクトでも活用されています。スクラムでは「スプリント」と呼ばれる、1ヶ月以内の反復期間内で、以下の3点を実現することが最終的な目的です。

透明性

システム開発では、開発側とビジネス側の双方にとってプロジェクト全体が見えるようにする必要があります。透明性の低いプロジェクトと成果物はその価値を低下させ、リスクを高める意思決定へと繋がる可能性が高いためです。透明性が高いからこそ検査が可能になり、透明性が低いものは誤解と多くの無駄を生み出します。

検査

スクラムにおいてシステム開発のゴールに向けた進捗状況は、頻繁かつ入念に検査される必要があります。これにより、プロジェクトに潜在している望ましくない変化や問題を検知するためです。スクラムでは5つのイベントにより検査を支援し、検査を経て初めて適応が可能となります。スクラムの各イベントでは変化を引き起こすよう設計されており、メンバーは変化を受け入れることが大切です。

適応

システム開発において、開発側もしくはビジネス側の要求や許容範囲を逸脱している、あるいは成果物が受け入れられなかった時は、現時点で適用しているプロセスやシステムの構成要素を調整する必要があります。更なる逸脱を防ぐためには、可能な限り素早く調整しなければなりません。ただし、権限が与えられていない時、自己管理ができていない時は適応が難しくなります。スクラムでは検査を通じて新しい知見を得た瞬間に適応するのが望ましいため、チームメンバーごとに権限を明確にしておくことが重要です。 スクラムはその語源通り、チームで協力してシステム開発プロジェクトを進めていくことを非常に重視しています。このため、チームの入れ替わりが激しい環境では適さない開発手法ですが、固定的なチームによってシステム開発を進めていく場合、最大限の効果を発揮するものと言えるでしょう。

ビジネス側からもアジャイル開発、スクラムへの理解が欠かせない

あなたがビジネス側に立っている場合、システム開発手法を全く理解していなくても良いかというと、そうではありません。概要だけでもアジャイル開発とは何か?スクラムとは何か?を理解しておくと、プロジェクトへの関わり方は大きく変わります。アジャイル開発の項目でも解説しましたが、開発側とビジネス側の協力は不可欠です。これは今やアジャイル開発だけの話ではなく、システム開発全体を通じた常識になっています。システム開発会社へプロジェクトを丸投げする時代は終焉し、これからは双方向的な協力によって「より良いものを作っていこう」という、ものづくりにも精通した協力体制が大切になっていくでしょう。