近年、IT業界だけでなく様々な業界で、DXを推進する動きが始まりました。
その中で特に、「アジャイル開発が必要」という話をよく耳にしますが、アジャイル開発といっても色々な種類があるのをご存じでしょうか。
本記事では、「アジャイルは聞いたことがあるけど、まだあまりよくわかっていない方」に向けて、アジャイル開発の中でも有名なスクラム開発の基本について解説いたします。
アジャイル開発とスクラム開発の違い
アジャイル(Agile)は、「すばやい」「俊敏な」という意味の言葉です。
アジャイル開発は、ソフトウェア開発において、小単位での開発とテストをすばやく繰り返すことで開発フローを進めていきます。
アジャイル開発にはたくさんの手法があります。
「スクラム開発」はそのアジャイル開発の1種で、チームを組んで役割やタスクを分散しつつ、コミュニケーションを取りながら開発を進めるという特徴があります。
「スクラム開発」以外でも、「かんばん」「XP」など、様々な開発手法があります
が、どれも「アジャイルの思想」を目指して生まれた開発手法です。
次章からは、スクラム開発の詳細の解説の前に、アジャイル開発の基本についてご紹介いたします。
アジャイル開発とは
アジャイル開発は、機能ごとに小規模な「要件定義・設計・開発・実装・テスト・運用」のサイクルを繰り返していく開発手法です。
小規模なサイクルを繰り返すので、急な顧客要望の反映などの、柔軟な対応が可能です。
アジャイル開発のメリットは柔軟な対応が可能で、開発スピードが早いことです。
アジャイル開発の流れ
チームを組んで「要件定義→設計→開発→テスト→リリース(運用)」といった開発工程を、1つの機能を単位とした小さいサイクルで繰り返します。このような小さいサイクルを繰り返すことで、個々の機能の開発が独立して完結するため、開発期間中の仕様変更の発生に強く、リスクを最小化させることが可能です。
アジャイル開発とウォーターフォール型開発の違い
アジャイル開発を解説する上で、よく対比とされるものは、「ウォーターフォール開発」です。ウォーターフォール(Water Fall)は直訳すると滝です。
ウォーターフォール開発は、滝のように一つひとつの開発工程を上から順に完了させて進めていく、システム開発モデルです。
各工程を確実に終わらせるので手戻りは発生しにくく、大規模な開発でよく用いられる手法です。
ウォーターフォール開発の最大のメリットは、「プロジェクト全体の計画を立てやすいこと」です。ウォーターフォール開発は、上流工程から確実に開発を進めていく手法になるため、人員やコストの管理もしやすいのです。
逆に、デメリットは、手戻りが発生すると工数が増えることです。ウォーターフォールの場合、機能別ではなく工程別で全機能横断的に進んでいくため、後工程での変更が行いづらく、変更の工数が大きくなってしまうことがあります。
またそういった特性があるので、「クライアントの仕様変更に柔軟に対応できない」といったこともデメリットとして挙げられます。
アジャイル開発はこのようなウォーターフォールの欠点を克服するための手法・フレームワークです。
アジャイル開発とウォーターフォール開発の関係については、以下のブログでより詳細に触れています。
アジャイル開発とウォーターフォール開発の違いとは?失敗しない開発手法を決定するために、それぞれの特徴やメリットについて理解しよう
スクラム開発とは
スクラム開発とは、スクラムガイドによって定義されているアジャイルの開発手法のフレームワークです。
ラグビーの「Scrum」(セットプレーの一つ)が語源とされています。
スクラム開発は、サービス/プロダクト開発スピードを高め、変化に強い柔軟さが特徴の手法です。
スクラム開発の特徴① 2種類のバックログ
スクラム開発には、2種類のバックログがあります。
バックログとは、チームにとっての「達成すべき目標」や「実現するべき機能」などを意味し、チームにとっての作業計画の元となるものです。
プロダクト・バックログ
プロダクト・バックログは、機能や改善要素などをリスト化したものです。
定期的にステークホルダー全員で共有し、プロダクトの現在の状況を共有、把握します。
スプリント・バックログ
スプリント・バックログは、プロダクト・バックログをスプリントごとに切り分けた、タスクリストのようなものです。
「スプリント」とは、2週間や一ヶ月間などの時間枠のことです。プロダクト・バックログから、決められた期限内に対応できるタスクを切り出し、スプリント・バックログを作成するイメージです。
スプリント・バックログでは、タスクに優先順位が決められており、チーム内で優先順位が高いものから取り組むようになっています。
作業進捗によって、タスクの追加や削除も、スクラムガイドでは許容されています。
スクラム開発の特徴② チーム主体のロール
スクラム開発では、チーム主体のロールがあります。
スクラム開発では、リーダーやマネージャーに責任を押し付けずに、チームで一丸となってマネジメントを行うことが、スクラムチームの在り方になります。
そのため、メンバー間のコミュニケーションがとても重要視されます。
スクラム開発のメリット
スクラム開発におけるメリットは、大きく分けて3つあります。
①顧客との認識のズレをなくし、具体的なイメージを提示できる
スクラム開発では、短い期間で顧客にシステムを提示することができます。
そのため、もし顧客要望と乖離しているものを開発してしまったとしても、開発途中での軌道修正が容易にできます。
②問題が起きても、迅速に対応することができる
スクラム開発では、毎日チームでミーティングを行い、進捗報告や課題、困っていることを報告する機会が設けられます。
それによって、メンバー間で課題解決・問題解決に取り組むことができるため、プロジェクトを予定通りに進めることができます。
③機能単位で工数を見積もることができ、計画がより現実に近いものになる
スクラム開発では、機能単位で工数を見積もりながら開発を進めていきます。
そのため、「以前に似たような機能を開発したときに、○人日かかった」「この機能を製造するのに〇人日かかったから、この機能は〇人日くらいだろう」といったように、以前の経験を蓄積することができます。
その経験を、新機能製造の際の計画見積時に参考にできるため、よりリアルな数字で計画を立てることが可能となります。
スクラム開発の流れ・イベント
スクラム開発の特徴とメリットがわかったところで、次に実際の流れやイベントを見ていきましょう。
①バックログの作成
スクラム開発では、まずバックログを作成するところから始まります。
システムを開発する上で、必要となる機能の一覧を洗い出し、作成する必要があるためです。
ここでは、プロダクト・バックログを作成します。
②スプリントプランニングミーティングの開催
作成したバックログを基に、スプリントで実装する機能を選択します。
スクラム開発では、優先順位の高いものから実装していく特徴があります。
ここでは、スプリント内で取り組むバックログ(スプリント・バックログ)を作成します。
③デイリースクラムミーティング
1日に一回、決められた時間に15分程度のミーティングを行います。
メンバー間で、進捗報告や昨日やったこと、今日やることや問題などを共有します。
イメージとしては「朝会」のようなものです。
決められた時間内で、課題が解決しない場合は、関係者だけを集めて、デイリースクラムとは別に会議の設定を実施します。
④スプリントレビュー
実装した機能についての、レビューを行います。
スプリントレビューでは、チームメンバーだけでなく、ステークホルダーにも参加してもらいます。
基本的には、スプリントレビューは、スプリントの最終日に行われます。
⑤スプリントレトロスペクティブ
ここでは、スプリントの振り返りのミーティングを行います。
スクラム開発では、スプリントを数回、繰り返し行うことになるので、各スプリントの最終日ごとにレトロスペクティブが行われます。
レトロスペクティブで見つかった課題や問題を、次のスプリントでは発生しないようにするのが狙いです。
アジャイル開発とスクラム開発の関係性と手法
スクラム開発は、「コミュニケーション」をとても重視して、短期間での開発を行っていくアジャイル開発の代表的な手法です。
スクラム開発は、ウォーターフォール開発とは異なり、毎日決められた時間にミーティング(デイリースクラム)を行い、短期間での開発やテスト、レビューなどを繰り返す点が特徴です。
スクラム開発とよく比較される開発手法では、XP(エクストリーム・プログラミング)という開発手法もあります。
XPも、アジャイル開発の数ある手法のひとつです。
XPでは、「ペアプログラミング」を実施することが、スクラム開発と違う大きな特徴です。「ペアプログラミング」とは、1台のPCで2人のプログラマーが共同で開発を行う手法です。
XPでは、スクラム開発より短い期間で開発するのも特徴です。
まとめ
アジャイル開発は、機能ごとに小規模な「要件定義・設計・開発・実装・テスト・運用」のサイクルを繰り返します。
スクラム開発は、アジャイル開発の数ある手法の一つです。
スクラム開発では、コミュニケーションをとても重要視します。
スクラム開発には、5つのイベントが存在し、開発を成功させる手助けをしてくれます。
目的やプロジェクトの規模などに合わせて、最も適した開発手法を選択することが、プロジェクトを成功させるためには、重要です。
過去に開催したウェブセミナー「アジャイル開発のプロジェクト管理手法」(講師:弊社社長梅田)の講演資料を公開していますので、課題をお持ちの方はこちらもぜひご覧ください。
- カテゴリ: