TechReach

スクラム開発とは?開発手法やチーム編成の特徴、手順について解説

スクラム開発は、古くからある開発手法です。同じく古くからあるウォーターフォール開発という言葉もあり、その違いについて、よくわからない、という人も多いのではないでしょうか?

この記事ではスクラム開発とは何かについて、アジャイル開発との関連性や、ウォーターフォール開発との違いを交えながら解説するとともに、スクラム開発の特徴について初学者の人にもわかりやすく解説していますので、ぜひご覧ください。

 

自分のスキル年収どのくらい? /
予定年収を診断してみる

スクラム開発とは

1990代前半、ケン・シュウェイバー氏とジェフ・サザーランド氏により生み出された制作管理における手法(フレームワーク)のひとつです。

ウォーターフォール開発が主流だった当時、その進め方について、スピード感が遅く、手続きが官僚的であるといった批判の声もあり、素早い開発が求められる中、生み出されたのがスクラム開発です。

スクラム開発はアジャイル開発の一種で、プロジェクト完成に向けてタスクを全員で一つこなしていくため、チームワークとコミュニケーションが重視されています。

アジャイル開発との違い

アジャイル開発とは、顧客と開発チームが完成形であるプロダクトではなく、それよりも小さなプロダクトや、目的・ゴールなどを共有し、それに対して要件定義、開発、テストなど通常の開発を進めていき、さらにはミニマムリリースをおこなうという手順を踏む開発手法です。

ミニマムリリースをおこなうことで、より早い段階で、顧客がプロダクトに対して具体的なイメージを持ったり、評価をおこなったり、また実際にユーザーの反応を見たり、といったことが可能になり、開発の現場などでしばしば発生する納品後の「こんなはずじゃなかった」を避けるのに効果を発揮します。

スクラム開発とは、の項目で少し触れたように、スクラム開発は、多数に存在するアジャイルな(素早い)開発手法のひとつです。そのため、両者に違いがあるというより、スクラム開発は、アジャイル開発に含まれる、という関係性となっています。

ウォーターフォール開発との違い

ウォーターフォール開発とは、完成形であるプロダクトに対して、要件定義、開発、テストなど決められた順番どおりに開発を進めていき、プロダクトを完成形まで持っていってからリリースをおこなうという手順を踏む開発手法です。

全体の計画を立ててから、計画どおりに開発をおこなうため、あらかじめ全体の予算が決まっている場合や、納期が定められている場合などに、計画を立てやすいという特徴があります。

反面、エラーやトラブルがあったり、仕様の変更や機能追加などがあったり、などあらかじめ決められたとおりに進まなかった場合、予算の超過や、納期の遅れなどにつながる可能性が増大するのも特徴といえるでしょう。

スクラム開発とウォーターフォール開発の違いは、開発手法にあります。スクラム開発がミニマムリリースをおこなうのに対して、ウォーターフォール開発は完成形となる納品物をリリースします。

スクラム開発の特徴

スクラム開発の特徴について詳しく解説します。

開発チームは少人数で編成される

スクラム開発は、アジャイル開発の特徴で説明したミニマムリリースを目指します。ミニマムリリースに向けて、開発チームは、それぞれの専門領域を超えてコミュニケーションをおこない、協力し合います。また、アジャイルな(素早い)開発が求められるため、開発チームは少人数であることが推奨されます。

短期間のスプリントの繰り返しで開発を進行する

ミニマムリリースを繰り返していく工程を、「スプリント」といいます。要件定義、開発、テスト、ミニマムリリースなどの開発に必要な全行程を指します。ミニマムリリースの成果物は、顧客に説明(レビュー)されます。

このように、開発段階では、開発チームでコミュニケーションをおこない、リリース後は顧客とコミュニケーションをおこなう、といった一連の流れを繰り返しながら開発を進行していきます。

スクラム開発のチーム編成に必須の人材

スクラム開発のチーム編成について解説します。

スクラムマスター

スクラムという手法をスムーズに進めるための進行役です。スクラムマスターは開発について直接管理することはありません。スクラムが有効に働いているか、ということに責任を持ち、有効に働いていない場合は、働くように調整する役割です。

例えば、スクラム開発を導入したばかりのチームなら、やり方についてコーチングをおこないます。スクラムの手法に困っているチームメンバーがいれば相談役になります。

スクラムマスターはスクラムが円滑にいくための努力を怠りません。

プロダクトオーナー

開発対象となるプロダクトの総責任者です。顧客と開発チームの間に立ち、顧客とはコミュニケーションをおこない、要望を要件に基づいたプロダクトの具体化につとめ、開発チームにはビジョンを共有し、方向性や作業の優先順位などを伝えます。

顧客のニーズと、実際の開発の間に差異がある場合も、コミュニケーションを通して調整し、双方の信頼関係を損なわないように進行します。どのような場合でも、プロダクトの価値の最大化につとめます。

開発チーム

「スプリント」と呼ばれるスクラムの開発工程を実施する現場の人たちのことです。構成メンバーは開発内容によって異なりますが、例えば、デザイナー、プログラマー、ライターなどさまざまなプロフェッショナルなスキルをもった人たちにより構成されます。

ステークホルダー

プロダクトを発注した顧客や、スポンサーや株主など、プロダクトによる利害関係にある人たちのことで、かつプロダクトにフィードバックをおこなう人たちのことです。

プロダクトオーナーによるプロダクトのレビューを受けて、ステークホルダーはフィードバックをおこないます。

その内容はスクラム開発において非常に重要なもので、新たな要件として、次のスプリントに向かいます。

スクラム開発のメリット

スクラム開発のメリットについて3つご紹介します。

顧客との認識のずれを減らせる

スクラム開発は、ミニマムリリースを繰り返しおこないプロジェクトの完成を目指します。開発をすべて終えてからリリースする場合と比較して、顧客のフィードバックを貰いながら開発をおこなえるため、顧客との認識のずれを減らすことができます。

問題発生後に迅速に対応可能

プロダクトにエラーや変更などがあり、手戻りが発生した場合、ひとつ前の工程に戻って、すべてをやりなおさなければならないときがあります。そのような場合も、ミニマムに開発をおこなっているため、大きく前に戻って作業をやり直さなければならないような開発に比べて、前の工程に戻って迅速にやり直すことが可能です。

計画が適時調整できる

スクラム開発は、スプリントという短く区切られた開発期間ごとに、その都度、企画、要件定義、開発、テスト、リリースといったサイクルを繰り返します。サイクルごとに計画の見直しや調整が可能です。

スクラム開発のデメリット

スクラム開発のデメリットについて3つご紹介します。

品質が左右されやすい

開発チームに、スクラムに慣れていないメンバーが加わったり、スキルレベルにばらつきがある場合、少数で開発をおこなうスクラムでは思ったとおりの成果が出せない場合があります。

プロジェクトの肥大化がしやすい

スクラム開発は、ミリマムリリースを繰り返し、フィードバックをおこないながら開発をしていきます。フィードバックや追加注文が繰り返されるうちに、方向性を見失い、プロジェクトが肥大化していく場合があります。

システム開発には不向き

顧客のニーズとして、高い信頼性や納期の遵守などが求められる傾向の高い、例えばバックオフィスなどのSoR(System of Record)のシステム開発などは、スクラム開発よりもウォーターフォール開発のほうが向いている場合もあります。

スクラム開発の頻出用語

スクラム開発を導入する場合や学習するうえで、押させておきたい頻出用語を確認します。

スプリント

スクラム開発では、短く区切られたミニマムリリースを繰り返します。その期間のことをスプリントといいます。ひとつひとつのスプリントの期間内では、企画(スクラム計画)、要件定義、テスト、リリースがおこなわれ、プロダクトについて顧客への説明(スプリントレビュー)がおこなわれます。

デイリースクラム

スクラム開発では、開発チームのメンバーによる15分以内のデイリーミーティングがおこなわれます。進捗報告をし、困難があればそのことも話し合います。

バックログ

スクラム開発では、プロダクトオーナーがバックログを管理します。バックログとは、顧客からの開発オーダーに優先順位を付けてリスト化し、開発の管理運用に役立てるためのものです。優先順位は、例えば、ビジネス的な価値の高いもの(より多くの売上がみこめるもの)などにより決定します。開発チームは、より優先順位の高いものから開発していき、未着手の状態から完了の状態にもっていく、という運用の仕方をします。スクラム開発では2つのバックログを用います。プロダクト全体のバックログと、各スプリント期間内で用いるバックログです。それぞれ、プロダクトバックログ、スプリントバックログといいます。

スプリントバックログは、プロダクトバックログより必要な分を取り出して活用します。

スクラム開発が向いている案件の特徴

スクラム開発が向いている案件の特徴をみていきます。

 

・ミニマムリリースが可能な案件

スクラム開発ならば、ミニマムなリリースをおこない、運用していきながらユーザーや市場のニーズや、顧客の希望などを反映した開発をおこなっていくことができます。例えば、SoE(System of Engagement)開発やソーシャルゲームのような開発にも向きます。

 

・仕様の変更見込まれる案件や、仕様に不透明な箇所がある案件

仕様に不明点や、いずれ変更が見込まれる点などがあると、全体の計画を立てることが困難になります。スクラム開発であれば、開発の優先順位を決め、ミニマムリリースを目指していくことで、それらに対応していくことができます。

 

・小規模で長期間運用していくような案件

スクラム開発は、少人数の開発チームにより、スプリントを繰り返しながら、長期間チームを維持していく体制を取ることが可能です。例えば、Webサイトやアプリケーションなどミニマムなリリースをおこない、ユーザーの反応をみながら開発を繰り返していくような運用に使用されます。

スクラム開発の手順

スクラム開発手順について解説します。

開発ゴールを決める

顧客とプロダクトオーナーでコミュニケーションをし、開発ゴール(スコープ)を定めます。プロダクトオーナーは、開発チームにビジョンとプロダクトバックログを共有します。

リリース計画を立てる

スクラムではミニマムリリースを目指します。作業を始める前に、プロダクトオーナーと開発チームとの間で、スプリント計画をたてます。

プロダクトバックログから、今回開発をおこなう項目を選択し、スプリントバックログを作成します。

スプリントバックログを起票する

スプリントバックログの作成は、開発チームの各人がおこないます。作業完了を定義するインクリメント(作業完了時のプロダクト)を定め、多くの場合、1日以下のタスクまで分解します。

開発~テストまでおこなう

開発はスプリントバックログの全てのタスクを未完了から完了にするように進めていき、デイリースクラムにより、進捗や課題を共有します。

そうして、スプリントにおけるすべての開発が完了した際に、スプリントレビューをおこないます。

デモンストレーションをおこなう

スプリントレビューは、プロダクトオーナーにより、ステークホルダーに対しておこなわれます。スプリントにより何が達成され、何ができるようになったのかを説明し、次に何をすべきか話し合います。

振り返りをおこなう

開発チーム内で、今回のスプリントについて振り返りをおこないます。個人としての動きや、チームの連携や、相互作用、過程、完了の定義の仕方などについて調査し、何が良かったか、何が悪かったか、などを話し合います。

 

参考:The 2020 Scrum Guide(Ken Schwaber & Jeff Sutherland)

まとめ

スクラム開発は、顧客とプロダクトオーナー、プロダクトオーナーと開発チームが密にコミュニケーションを取ることで、ビジョンとスコープを共有し、顧客との間に発生する「こんなはずじゃなかった」を避けるのに有効な開発手法です。

この記事を参考に、ぜひスクラム開発の導入を検討してみてください。

フリーランスの案件をお探しの方はTechReachにご相談ください。

TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。

そのため、高単価・高品質な数多くの案件紹介が可能です。

また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。

TechReachを活用して、理想の案件を見つけましょう!

関連記事

カテゴリ