アジャイル開発のいち手法、「スクラム」の特徴を解説します

アジャイル開発のいち手法、「スクラム」の特徴を解説します

日本でもその名が広く知られつつある「アジャイル開発」。その中でも代表的なマネジメントフレームワークの一つに「スクラム」があります。弊社でも実際のプロジェクトで頻繁に採用しているフレームワークですが、その実態や概要、メリットについては詳しく理解できていない方もいるのではないでしょうか。

発注者としても開発者としても、ポピュラーなフレームワークであるスクラムについては、深く理解しておきたいところ。そこで、今回はスクラムについて、その概要、実際の流れと特徴、メリット・デメリットを解説していきます。

スクラムとは

先述したとおり、ソフトウェア開発の文脈における「スクラム」とは、有名なプロジェクト管理フレームワークの1つです。スクラムでは、一定の期間毎にプロダクトを作成して、そのプロダクトとチームの取り組みに対してフィードバックを与えるという一連の流れを、1つの開発サイクルと見なします。スクラムとは、これを何度も繰り返すことで、プロジェクトを継続的に改善しようとするプロジェクト管理の枠組み、およびそれを用いた開発手法を指します。

アジャイル開発に取り組む現場で広く採用されることが多く、メジャーなフレームワークとして知られています。

スクラムとは、もともとラグビーで各チーム8名ずつの選手が肩を組んでぶつかり合うフォーメーションを指す言葉で、その名の通り、チームの統制やコミュニケーションを重視するフレームワークとなっています。

スクラムの定義

なお、スクラムという概念・フレームワークの原典としては、「スクラムガイド」(https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf )という文書が知られています。

===引用===

スクラムの定義

スクラム(名詞):複雑で変化の激しい問題に対応するためのフレームワークであり、可能な限り価値の高いプロダクトを生産的かつ創造的に届けるためのものである。

(中略)

スクラムの用途

当初、スクラムはプロダクトの開発と管理のために開発された。1990 年代初頭から使用され、今では以下のように世界中で広く利用されている。

1. 有望な市場・技術・プロダクトの研究および特定

2. プロダクトや追加機能の開発

3. プロダクトや追加機能のリリース(1 日に何度もリリースされる)

4. プロダクトが使用するクラウド(オンライン、セキュア、オンデマンド)やその他運用環境の開発と保守

5. プロダクトの保守や刷新

スクラムは、ソフトウェア、ハードウェア、組込みソフトウェア、機能同士を接続するネットワーク、自動運転車などの開発から、学校、政府、マーケティング、組織運営マネジメントに至るまで、個人や社会が日常的に使用するあらゆるものに使用されている。

======

スクラムの本質は、複雑な生産活動におけるプロジェクト管理の枠組みなので、「スクラム公式ガイド」には上記のように広い用途に用いることができるとされていますが、一般的にはソフトウェア開発の文脈で使用されることが多くなっています。

この「スクラム公式ガイド」は、米国の技術者であるKen Schwaber氏とJeff Sutherland氏によって執筆されたもので、2010年2月に発行されて以来、改訂を重ねられています。彼らは1990年前半ごろからスクラムを実践し導入を提唱してきた人物として知られています。

アジャイル開発とスクラム

スクラムはアジャイル開発に取り組む現場で広く採用されることが多く、2000年代以降の産業の変化に伴ってアジャイル開発が注目を集めたこともあり、スクラムも同時に広く知られるようになってきました。

そこにはどのような背景があるのでしょうか。スクラムという手法の特徴をさらに深く理解するために、アジャイル開発とスクラムの関係性を追っていきましょう。

以下ではまず、アジャイル開発の概要について紹介します。

アジャイル開発とは

アジャイル開発とはソフトウェア開発におけるプロジェクト開発手法の一種です。その特徴は、個々の機能などの細かい単位にシステムを区切り、チームごとに「設計→実装→テスト→リリース」という一連の開発サイクルを何度も繰り返すこと。これによって、優先度の高い機能からシステムを構築することができ、変化に対応しやすいという点がメリットです。アジャイルとは英語で「機敏な」「素早い」という意味を持つ言葉で、このような柔軟かつ機敏な対応ができる特徴が、その名の由来となっています。

アジャイル開発についての解説記事はこちら

アジャイルの課題とスクラム

ただし、アジャイル開発にもデメリットとなりうるポイントはあり、その中でも大きなものとしては、「開発の方向性が定まっていないとリスクが大きい」点が挙げられます。

アジャイル開発では、当初の計画を厳密に作成せず、開発者の自主性を重んじてプロジェクトを進めるので、開発における全体の方向性が定まっていないと、個々の機能はうまく実装されているものの、一貫性に欠けるサービスやシステムができてしまうリスクがあります。エラーのように明らかに目に見える不具合ではないので、この問題には気づきにくく、しばらく開発が続いた後に修正する場合、工数が大きくなってしまいます。

上記のような問題を解決するために、アジャイル開発を取り入れようとする開発チームで多く採用されている作業管理フレームワークが、スクラムです。スクラムは複雑な生産活動におけるプロジェクト管理の枠組みであり、チームの統制やコミュニケーションを重視するフレームワークなので、アジャイルの最大の特徴である柔軟性・自由さを保ちながらも、チームとしての意識を統一した上でプロジェクトに取り組みやすくなるという利点があります。

スクラムの特徴と流れ

スクラムの位置づけについて理解したところで、具体的にスクラムの流れについて以下で説明しましょう。

ロール(役割)がある

まず、スクラムの特徴として挙げられるのは、ロールと呼ばれる役割がスクラムチームのメンバーに割り振られるということです。

スクラムでは、以下の3つのロールにあたる人物を置くことが定められています。

プロダクトオーナー:作成するプロダクトの責任者です。プロダクトで必要となる機能を考え、プロジェクトの遂行のための優先順位を決定し、それを元に他のメンバーに作業の指示を出します。また、スケジュールや予算の管理もおこないます。

開発チーム:プロダクトオーナーの意図や想いから見える「実現したいこと」を元に、実際に開発をおこなう集団です。各メンバーには、プロジェクト計画・管理・進行、設計、ドキュメント作成、コーディング、テスト、運用といった一通りのスキルを保有していることが求められます。

スクラムマスター: プロジェクトを円滑に進めるための支援役です。スクラムのルールや進め方をプロダクトオーナーに協力し開発メンバーに伝えたり、開発メンバーからのフィードバックをプロダクトオーナーに共有して開発がスムーズに進むように支援をするのが主な仕事となります。スクラムマスターは専任、もしくは開発メンバーとの兼任となります。

スプリントという開発サイクルを繰り返す

アジャイル開発のイテレーションと同じように、スクラムにはスプリントと呼ばれる開発サイクルがあります。1回のスプリントは1週間から4週間ほどで、その間に目標設定、開発、評価をおこないます。これを継続的に繰り返すことで、プロダクトを作成・改善することとなります。

一般的なスプリントのステップは以下のとおりです。

バックログを作成する

プロダクトに必要な機能をすべて書き出し、一覧化したドキュメントをプロダクト・バックログと呼びます。スプリントのスタート時には、その中からそのスプリント内で実装すべき目標(スプリント目標)を選び、より詳細なタスクに分解したスプリント・バックログを作成します。

デイリースクラムを開催する

開発メンバーは、スプリント・バックログによって割り振られたタスクに取り組みます。この期間に、毎日、作業開始前に開催されるミーティングがデイリースクラムです。

一般的には15分程度の短いミーティングで、内容としては進捗状況の確認や情報共有が主となります。

スプリントレビューをおこなう

スプリントの最終日には、スプリントレビューと呼ばれる、プロダクトオーナーやステークホルダーが成果物を確認するミーティングを設けます。この結果を受けて、プロダクト・バックログの内容を整理したり、新規項目を作成したりして、次回のスプリント開始時に備えることとなります。

スプリントレトロスペクティブをおこなう

スプリントレトロスペクティブは、次のスプリントの改善計画を作成するミーティングです。一般的にはスプリントの最終日に開催され、スプリントを振り返りながら、良かった点や改善点を話し合い、次回のスプリントの運営に活かします。

スクラムのメリット・デメリット

上記のようなフローで進行されるスクラムですが、どのようなメリット・デメリットがあるのでしょうか。

スクラムにより期待されるメリット

開発者が責任を持ってタスクに取り組める

スクラムでは、ウォーターフォール開発のように事前に取り組むタスクが決まっているわけではなく、開発途中でも仕様が変更されることを前提にしているうえに、チームで話し合ってプロダクト・バックログのタスクを割り振って解消していく体制を取ります。

開発者一人ひとりが自分ごととしてタスクに向き合うため、プロダクトに対する責任感が増し、成果物へのコミット(確約)を強く意識して開発に取り組むことができます。

プロジェクトの見通しが明確になる

機能ごとに要件定義・設計・開発をおこなうので、スクラムでは大きな手戻りが発生することはありません。

一方で開発者の自主性に依存しすぎることなく、チームの統制やコミュニケーションを重視するので、プロジェクトの見通しが明確になります。柔軟性と計画性を両立した開発ができる点もスクラムの魅力と言えるでしょう。

スクラムにおけるデメリットやリスク

習得コストが高い

スクラムは学習コストが低い反面、習得にはコストが掛かります。先述したとおり、スクラムにはロールとスプリント、それに付随するスプリントイベント(スプリントレビュー・スプリントレトロスペクティブなど)などのルールがあり、これらの目的についての理解が浅いとプロジェクトが上手く機能しなくなってしまいます。

スクラムについての学習機会を用意する、試験的にスクラムを取り入れる期間を設けるなどの方法で対策は可能ですが、習得コストがかかること自体は避けられません。そのため、スクラムを導入する効用と、採用した際にかかるコストを天秤にかけて判断する必要があるでしょう。

多能工であることが求められる

スクラムでは、開発チーム全体の効率を最適化するために、開発チームのメンバーに比較的大きな権限・裁量が与えられています。しかし、その分だけ一人ひとりにかかる責任は大きく、各メンバーには、少なくとも、設計、ドキュメント作成、コーディング、テスト、運用といった一通りのスキルを保有していることが求められます。

このように個人が負担するスキルの幅が広いので、メンバー間のスキルレベルに差があると、作業量に偏りが生まれ、特定のメンバーにタスクが集中することで、開発のボトルネックになってしまうことがあります。この場合は、うまくタスクを割り振って調整したり、チーム内のメンバーで相互に作業をフォローしたりすることで、適宜対策を取る必要があるでしょう。

開発プロセスの効率化にはスクラムの導入がおすすめ

スクラムは、サービスの開発効率を高めながら、変化に強い柔軟さも得ることのできる手法です。スクラムを習得するまでは難しさを感じることもあるかと思いますが、トライ&エラーを繰り返すことで、安定して高い成果を残せるチームとなるでしょう。

業務の改善によって開発プロセスの効率化を目指す際には、ぜひスクラムの導入も検討してみてください。

記事監修:早坂貴大(メンバーズエッジカンパニー)

スクラム開発について詳しく知りたい方は、こちらの記事もご覧ください。
アジャイル、スクラムの基本知識と、アジャイルを成功させるために大切な3つのこと
スクラムチームが意識すべき投資対効果とは
スクラムマスターがスクラムチームを立ち上げる時に意識すること

採用情報

メンバーズエッジで最高のチームで最高のプロダクトを作りませんか?

最高のプロダクトをつくる 最高のチームで働く

在宅でも、地方でも、首都圏でも。多様な働き方で最高のチームをつくり、お客様のプロダクトパートナーを目指します。アジャイル開発を通じ、開発現場の第一線で活躍し続けたいエンジニアを募集しています。