アジャイル開発のスクラムとは?進め方、失敗しないポイントを解説!
新しいサービスをアジャイル開発で開発したいがどの手法で開発するのが良いのかわからず困っている方は、こんな事で悩まれているのではないでしょうか?
「アジャイル開発をしようとしたがスクラムという言葉が出てきてわからない。スクラムって何かな? 」
「アジャイル開発のスクラムは他のアジャイル開発手法と何が違うの? 」
その他にもそもそもアジャイル開発のなかのスクラムとは、アジャイル開発 スクラムとほかの開発手法との違い、アジャイル開発 スクラム手法のメリットやデメリット、といった点も知っておきたいですよね。
今回は、これさえ読めばアジャイル開発のスクラム手法に関する全てがわかるようにを紹介します。
この記事を読んで、自分の開発が、時間的にも経済的にもより効率的にすすめられるようになれば幸いです。
では、それぞれ見ていきましょう!
目次
アジャイル開発とは?
アジャイル開発のアジャイル(agile)という単語の意味は「素早い」「機敏な」であり、その意味の通り迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称をいいます。
アジャイル開発は2001年にアメリカ合衆国でアジャイルソフトウェア開発手法の分野において名声のある17人によって「アジャイルソフトウェア開発宣言」として提唱され、現在もソフトウェア開発とそれに基づく12の原則を定義したアジャイル開発の公式文書として広く認知されています。
アジャイル開発自体については以下で詳しく解説しておりますので、そちらをご覧ください。
アジャイル開発におけるスクラムの特徴は?
スクラムは、アジャイル開発手法の中の1つです。
アジャイル開発のなかでも最も有名な開発手法で、開発を進めるためのフレームワークのことを指します。その名の通りラグビーの「スクラム」のように、ワンチームががっちりと連携し合ってコミュニケーションを取りながら開発を進めていくことが特徴です。
チームは自らで計画を立案して、イテレーション(反復期間)毎に開発の状況や進め方、開発途中の機能の品質などについて精査を行います。
逆にコミュニケーションが滞ってしまうと、スクラムは失敗します。
このように逐次確認し合いを行い情報共有をはかることが非常に大切なスクラムでは、日々の中で定例朝会などのミーティングをはじめ、コミュニケーションの機会を増やすことが非常に重要になるのです。
それではスクラムの特徴をもう少し詳しくご紹介していきます。
スクラム開発の特徴1:バックログが2種類ある
スクラム開発は、まずはバックログを作成するところから始まります。バックログには「プロダクトバックログ」と「スプリントバックログ」の2種類があります。
ブロダクトバックログ
まずプロダクトバックログとは、製品の機能や要求、要望、修正などプロダクトに必要なものを抽出し、実現されたときに得られる価値やリスク、必要性などによって整理して上下関係で優先順位を順番に並べ替えたリストです。
プロダクトバックログでは、順番が上位のものから開発します。そのため上位の項目ほど内容が具体的で詳細なものになります。
さらに、計画の際に利用するためにそれぞれの項目(とくにリストの上位の項目)は見積もられている必要があり、その見積もり値は作業の量を相対的にあらわした値(相対難易度)がよく使われています。
プロダクトバックログは、一度作って順番に並べ替えたら完成ではありません。要求変更や新たな要求が追加に加え開発する順番も状況に合わせて変わります。
すなわちプロダクトバックログを更新していくことで、製品は常に適切で競争力をもち便利な方向へ開発を進められるというわけです。
スプリントバックログ
次にスプリントバックログとは、プロダクトバックログを管理可能な単位に細分化したものです。
具体的には選択したプロダクトバックログ項目ごとに、具体的な作業を洗い出すなどして作業計画を立てます。その選択したプロダクトバックログ項目と作業の一覧を合わせて、スプリントバックログと呼びます。
つまり、スプリントバックログは開発チームの作業計画であり、スプリント期間中も自由に作業を追加したり削除したりすることができます。
また、個々の作業は1日以内で終わるように分割するのが一般的です。
スクラム開発の特徴2:プロジェクトメンバーにロール(役割)を与える
2つ目の特徴は開発チームのプロジェクトメンバーにロール(役割)を与え、実際に開発を進めていくことです。
そのためには、まずプロダクトバックログの管理責任者であるプロダクトオーナーが、顧客の要望(ユーザーストーリーと言われます)をプロダクトバックログに優先順位を付けて反映させる必要があります。
そして開発チームは、プロダクトオーナーが順位づけしたプロダクトバックログの項目を順番に開発していくという流れになります。
アジャイル開発のチーム人数は5人から9人が最適
開発チームは通常5人から9人までが適当とされています。極端な少人数の場合は、お互いの相互作用が少なかったり、個人のスキルに依存する場合が多くなったりするため、開発チームとして活動した効果が出にくくなります。
逆に10人以上の場合は、コミュニケーションコストが増えることによって開発の効率が落ちるため、開発チームを分割してサイズを適切にすることが一般的です。
開発チームは、要求の分析や設計への落とし込みであったり、サーバを構築やテストなどプロダクトを作るために必要なすべての作業が、開発チームとして責任を持って主体的に作業を進めなければいけません。
開発チーム内での仕事の進め方は、開発チームのメンバーの合意のもとで決められ、外部から仕事の進め方を指示されることはないからです。
スクラム開発の特徴3:スプリントと呼ばれるサイクルを繰り返す
実際の開発作業は、スプリントと呼ばれるサイクルを繰り返し実行して完成をさせていきます。
スプリントは、要件定義・分析・設計・実装・テスト・リリースまでが1サイクルです。通常1スプリントあたりの期間は、1週間から4週間が設定されます。
しかし、たとえスプリントの最終日に作業が残っていても、基本的にスプリントは終了し、期間は延長しません。したがって、実際にはスプリントの期間はプロダクトの規模や開発チームの人数や成熟度、ビジネスの状況などを踏まえて決定します。
開発チームはこの期間の中で、プロダクトバックログ項目を完成させるのに必要な作業すべてを行います。
なお、状況の変化によって現在のスプリントでの作業の意味がなくなった場合は、プロダクトオーナーの判断によってのみスプリント自体を途中で中止することができます。
スクラム開発のメリット
スクラム開発は、最初から厳密な計画を立てて進めていくウォーターフォールモデルの開発手法とは異なり、チームでコミュニケーションを取りながら臨機応変にプロジェクトを進めていく手法です。
それではスクラム開発には具体的にどのようなメリットがあるのでしょうか?スクラム開発手法のメリットを紹介します。
スクラム開発のメリット1:問題に早く気付けて失敗を防げる
スクラム開発には3つの柱があると言われています。それは「透明性」「検査」「適応」です。
スクラム開発では、「透明性」によりチーム全体に現状が正しく共有され、製品が頻繁に「検査」されることで異常が素早く見つかり、それに「適応」して製品・プロセスが修正されることを期待されています。
これが実現できれば開発チームへ経験が蓄積し、製品はより良い方向へ向かうことになるからです。
もう少し簡単にいうと、日々チーム内で議論や確認が行われることにより、自然と問題の検知を早く行うことができ、それにともない軌道修正もスムーズに行うことができるということです。
つまり問題に早く気付けて失敗を未然に防げるといったメリットがスクラム開発にはあります。
スクラム開発のメリット2:実装工数を正確に見積もることが可能
スクラム開発では正確な作業の工数見積もりができるというメリットがあります。
スクラム開発はウォーターフォールモデルと違って大まかなスケジュールで開発を進める手法ですが、スクラム開発でも工数見積もりは必須です。
スクラム開発では「1スプリントでどれだけの開発を行うか」によって見積もることになるため、そこを押さえれば正確な見積もりが可能になります。
この1スプリントでどれだけの開発を行うかのことを「ベロシティ」といい、スクラム開発を見積もる上で重要な指標の一つになります。
スプリントごとにドキュメントを残すことも大事
それ以外にも、アジャイル開発の見積もりで過去の資料やドキュメントは大きな財産になります。
アジャイル開発では前述したように、スプリントの繰り返しで開発が進みます。そのため各スプリントごとに見れば似たような作業工程が出てくるでしょう。
このように過去に同じような開発をしていたり、似たようなタスクをしたのであれば、実際にかかった工数や、どのような問題が発生しどれくらいスケジュールに影響が生じたのかを参考にできるはずです。
そのためにも、スクラム開発におけるスプリントは大変な作業ではありますが、同時に非常に重要な工程になりますので頑張って進めていきましょう。
スクラム開発のメリット3:自走するチームを作ることができる
スクラム開発はチームでコミュニケーションを取りながら臨機応変にプロジェクトを進めていく手法であることをご説明させていただきましたが、このことはもう一つメリットを生みます。
それは「自走するチームを作ることができる」ということです。
具体的には、1スプリントは長くても4週間という短いサイクルですので、スピーディーにPDCAをプロダクトに纏わるプロセス全体で回す組織にならないといけません。
ではどうやってPDCAを全体で回すことのできるチームができるのかと疑問を持たれる方もいらっしゃるかもしれません。
ここで重要なことが、日々行われるチーム内での密なコミュニケーションです。
それによってDesigner, Developer, QA等の専門性を持つメンバーが同じ目標に向かって一丸となって取り組む体制が出来上がってくるのです。
そうなるとメンバー同士で協力して問題を解決するようになり、要求された時点より良いものを作ろうとするマインドが生まれ、メンバーの努力により徐々に「自走する組織」が出来上がっていくことになります。
アジャイル開発におけるスクラムの進め方
ここまでスクラム開発の特徴などをご紹介してきましたが、ここからは実際にどのような流れでスクラム開発が行われるのかを紹介します。スクラム開発を導入する際の参考にしてみてください。
1. プロダクトバックログを作成
スクラム開発においてまずはバックログを作成するところから始まると言いました。
また、バックログには「プロダクトバックログ」と「スプリントバックログ」の2種類があることは説明をしましたが、具体的なスクラム開発の流れとしては、この中でプロダクトバックログを作成するところからスタートします。
プロダクトバックログとは、プロダクトに必要なものを抽出し、上下関係で優先順位を順番に並べ替えたリストです。
ただしこのリストは一度作ってしまったら完成ではなく、常に状況によって更新を続けて、最新に保つことが重要です。
2. スプリントバックログを決定
スプリントバックログは開発チームの作業計画であり、スプリント期間中も自由に作業を追加したり削除したりすることができます。
またそのボリュームは、個々の作業は1日以内で終わるように分割するのが一般的です。
チームはスプリントで実現するバックログの項目を選択し、選択したバックログ項目を実現するためのタスク化を行います。 チームが共同でタスク化する過程で、チーム内メンバーの認識差異がないことを最終確認することも重要です。
3. デイリースクラムミーティングを開催
スプリント期間中、チームは、毎日スクラム会議を開きます。デイリースクラムは、決まった時間に決まった場所で行い15分以内で完了させるのがベストです。
会議の中では、チーム全員で「前回のスクラム会議以降、何をしたか」「問題はあるか」「次回のスクラム会議までに何をするか」などの質疑応答を行い、状況の進捗確認とその対応の決定や今後の課題になりそうな懸念点なども共有します。
4. スプリントのレビューの実施
スプリントの後には、必ずスプリントレビューが行われます。
スプリントレビューでは、スプリントで開発されたソフトウェアのレビューが行われ、必要に応じて新たなバックログ項目が追加されることになります。
他に大切なこととして、このレビューには、必ず顧客がマネージャや開発者と一緒に参加し、バックログにある顧客要求や品質の基準を満たしているか確認することです。
そのため、機能が不完全な状態でデモを行った場合は顧客の信頼を損ねる可能性があるため、注意が必要です。
スプリントとスプリントレビューの繰り返しは、製品の機能や品質が十分であると顧客が判断するまで繰り返されます。
5. スプリントレトロスペクティブの実施
最後にスプリントレトロスペクティブを実施します。
スプリントレトロスペクティブとは、スプリントの振り返りミーティングのことです。
スクラム開発ではスプリントは数回繰り返し行われることになるため、各スプリントの最終日にはスプリントレトロスペクティブが行われます。
振り返りでは、スプリントゴールの達成度、スプリントで発生した問題、その問題に対する改善策などについて話し合われます。
アジャイル開発のスクラムで失敗しないポイント
スクラムの流れについて紹介しました。さて、実際にスクラム開発を実施していくうえで、なるべく失敗は避けたいものです。より成功率を高めるために、失敗しないポイントを解説いたします。
スクラムで失敗しないポイント1:動作するプロダクトを開発する
一つ目はスプリントレビューを効率的に実施できるかが成功のポイントとなります。
そのためにはスプリントで開発されるソフトウェア(プロダクト)が如何に開発の要求を満たすものができるかということが大切です。
要はスプリントレビューに値する動作をするプロダクトが準備できていなければならないのです。
そのためには、開発チームはプロダクトを作るために必要なすべての作業ができなければいけませんが、スタート時に円滑に進められる状況になっているなどということは、ほとんどありません。
それ自体は大した問題ではないものの、こうした状況への対処を怠ると、チームや組織のメンバーがスクラムを受け入れず、かえって悪い習慣がはびこることにもつながってしまうので注意が必要です。
その解決策として、スクラム開発の最初の段階はこの方法論に関する一般的なレベルの経験と知識を感覚でつかんでもらうことが重要です。
チーム内で何が足りないかを話し合い、ギャップの分析を開始するためのミーティングを開催することが効果的で、活発なコミュニケーションにもつながり一石二鳥です。
スクラムで失敗しないポイント2:スプリントの1サイクルを短く切る
2つ目として如何にスプリントのサイクルを繰り返し実行が出来るかになります。
スプリントは、開発・まとめ・レビュー・調整の繰り返すことで、通常スプリントの期間は1週間から4週間が設定されます。
開発チームはこの期間の中で、プロダクトバックログ項目を完成させるのに必要な作業すべてを行います。
このように一定の期間に短いサイクルで区切って開発を繰り返すことによって、開発に対してリズムが生まれ非常に集中できるようになります。
皆さんの中にはリズムが大切と言われてもピンとこない方がいるかもしれません。
しかし、皆さんも日頃の業務などで同じことをルーティーン化してリズム良く進めることで、作業の効率が向上する経験などをお持ちだと思います。
また、短いサイクルで区切って開発を繰り返すことは全体計画に対する現時点の進捗が把握や、リスクにも対応しやすくなるのです。
スクラムで失敗しないポイント3:頻繁に利用者からのフィードバックを得て調整する
アジャイル開発におけるスクラムでも、ソフトウェアを作ること自体は目的ではなく、成果を上げるための手段です。
何のために作るのかを明らかにし、現在作っているものが本当に成果を実現できているのかを小まめに確認しながら進めていきます。
当然過程で当初作ろうと思っていたものよりも良いアイデアが出てくれば、それを受け入れ、作るものを変えていきます。
つまり、利用者・顧客の反応や関係者からのフィードバックを継続的に得ながら、作っているもの自体や計画を頻繁に調整するということです。
このことはアジャイル開発の本質であり最大のメリットです。そうすることで成果が最大化していきます。
全て最初の計画通り進むスクラムは、基本的にはあり得ないということを念頭に入れておきましょう。
スクラムにおけるよくある質問
最後にアジャイル開発のスクラムについて、よくある質問にお答えしていきたいと思います。
アジャイル、XP、スクラムの違いってなんですか?
XP、スクラムはいずれも、アジャイル開発における関連用語になります。
アジャイル開発は、短期間でリリースして改善するサイクルを繰り返すことでニーズを的確にとらえ、すばやくプロダクトを送り出すための開発手法です。
スクラムに関してこれまで説明をしてきましたが、XPもスクラム同様アジャイル開発の手法の一つということになります。
XPはエクストリーム・プログラミング(Extreme Programming)の略で、事前に立てた計画よりも途中変更などの柔軟性を重視する手法です。
特に変化する顧客の要求への対応力を高めることを目的としたソフトウェア開発プロセスであり最も柔軟に対応可能な手法となります。
詳しくは「アジャイル開発」の記事リンクを貼っておきます。より詳しく解説していますので参考にしてください。
アジャイル開発 スクラムをより知れるおすすめの本は?
アジャイル開発を本で勉強をしてみたい方もいらっしゃると思います。
未経験者でもわかりやすい本でおすすめは『いちばんやさしいアジャイル開発の教本』(出版社:インプレス)です。
ソフトウェア開発の現場でアジャイル開発を実践してきた著者陣が、その知見を丁寧にまとめたものです。
どう実践してよいかわからないという人でも読んだその日から自分の現場で取り組めるように、具体的なやり方が豊富な図とともに解説されているのが特徴です。
カスタマーレビューでも高評価を受けているお勧めの本です。
スプリントで失敗しないことがアジャイル開発の成功への道
最後になりましたが、アジャイル開発におけるスクラムを成功させる秘訣を皆さんにご紹介して終わりにしたいと思います。
それは「スプリントで失敗しないこと」です。そのために重要なものは、チームワークです。
スクラム開発はアジャイル開発の中でも効率的に開発を行える手法です。しかしチームワークを重視することから、開発メンバーの質によってプロジェクトの質も大きく変わってしまいます。
また、チームワークがうまくいかないと、計画の全体像も掴みにくいでしょう。まずは、アジャイル開発に関する知識を深めることが大切です。
スクラム開発の特徴を考えると、チームメンバーが一定で、お互いのことをわかっている開発のプロに相談してみることも良いと1つの手です。
弊社では、大手ITベンダー・大手webディレクター2人体制でプロジェクト管理を徹底し、素晴らしいチームワークのもと非常に高いアタリマエ品質をご提供することが可能なプロの集団です。
開発の前段階ではフルカスタマイズのデザイン作成にも対応。保守フェーズでは円滑な業務遂行を支えるDB定義書や保守ドキュメントの作成まで実施します。
デザインを通じて最終イメージを擦り合わせられるため、安心感のある開発が強みです。
「保守性が高く、クイックで健康的な開発支援」をお探しの方は、是非一度弊社までお問い合わせください。
弊社では、アプリ開発における概算費用を簡単に1分程度で算出するアプリ開発見積もりシミュレーターを提供しております!
参考価格をサクッと知りたい時に利用してください!
アプリ開発費見積もりシミュレーター:https://swooo.net/estimate