アジャイル開発の手法であるスクラムは、スプリントと呼ばれる短い期間に区切って開発を繰り返していくことで、より顧客の希望に即した製品を作成しやすくなります。
スピード感が必要な製品開発では、既存の方法では対応しきれなくなってきており、アジャイル開発を導入する企業が増えているのです。
本記事では、アジャイル開発やスクラムの概要、ウォーターフォール開発との違い、スクラム導入のメリットや実施方法について解説していきます。
アジャイル開発とは
アジャイル(Agile)には「素早い」「機敏な」という意味があり、アジャイル開発は、短い期間でのシステム開発のことを指します。ユーザーストーリーという顧客の要望をもとに、スクラム開発のスプリントと呼ばれる短い期間に区切って開発を進め、「計画、設計、テスト」を繰り返すことで、より素早く顧客の要望に即した製品を作成できるようになるのです。
COVID-19や災害、さまざまなテクノロジーの進化により、企業を取り巻く状況は急速に変化しています。既存の開発方法では対応しきれなくなった領域では、アジャイル開発がとくに注目されています。
ウォーターフォール開発との違い
アジャイル開発が登場する以前は「ウォーターフォール開発」が主流でした。ウォーターフォール開発は、滝のように一つひとつの開発工程を上から順に完了させていくシステム開発モデルを指します。
プロジェクト全体の計画を立てやすい反面、機能別ではなく工程別で横断的に進んでいくため、後工程での変更を行うと工数が増大する点や、クライアントの仕様変更に対して柔軟な対応ができない点がデメリットです。
アジャイル開発は、このようなウォーターフォールのデメリットを克服する手法です。
スクラムとは
スクラムとは、アジャイル開発を実現する「手法」の一つです。
スクラムの定義と解説は、スクラムの創設者Ken Schwaber(ケン・シュエイバー)と、Jeff Sutherland(ジェフ・サザーランド)が執筆した、スクラムの公式ガイドである「スクラムガイド」にまとめられています。 スクラムは反復型の開発手法であり、一度に全体を開発しようとはしません。最大10人までのチームによって、最大一か月程度の期間で計画と実装を繰り返し、少しずつ全体の完成度を高めていくアプローチを取ります。
スクラム導入のメリット3つ
スクラム導入のメリットを見ていきましょう。
メリット1.急な変更に対応でき、顧客との認識のズレをなくしながら開発
アジャイル開発ではユーザーの要望をベースとして、認識齟齬がないように顧客担当やメンバーの意見を一致させながら、決められた期間において、どのように何を作るのかを決めていきます。顧客との認識のズレをなくし、具体的なイメージを提示しながら開発を行うことで、効率を上げられるのです。
メリット2.問題が起きても迅速に発見し、迅速に解決
スクラム開発では、毎日ミーティングを行い、昨日の成果や本日の課題、問題点を共有します。スクラムマスターが重要な課題を取り上げ、メンバーと共同でその解決に努めます。これにより、問題発見と解決のスピードアップを図れます。
メリット3.精度が高い工数見積もり
スクラム開発では、スプリントごとに工数見積もりを行います。ウォーターフォールモデルとは異なり、一定期間での開発機能の見積もりを行うため、高い精度での見積もりが可能です。
アジャイル開発スクラムの実施方法
スクラムでは、3~10人を1チーム(スクラムチーム)とし、1週間から1か月程度の期間(スプリント)で計画と実装を繰り返し、少しずつ全体の完成度を高めていきます。
スクラムを実施するスクラムチームと、スクラムの実施方法であるユーザーストーリーやバックログの作成、スプリントプランニングや開発作業について説明していきます。
スクラムチームとは
スクラムチームは、3タイプのメンバーによって構成されます。
プロダクトオーナー
スクラムチームが生み出すプロダクトに責任を持ちます。「客先担当」といったイメージです。
プロダクトゴールの策定や、要件の優先順位を決め、見える化していきます。状況をステークホルダーに明⽰的に伝える役割もあります。
スクラムマスター
スクラム確立の結果に責任を持ち、プロダクトオーナーを支援します。
イメージとしては従来の開発リーダーに近いですが、スクラムマスターの目的は、スクラムチームが完成を目指すための支援を行うことです。
開発者
開発を行い、インクリメントと呼ばれる成果物を作成します。作成するインクリメントは利用可能でなければなりません。
ユーザーストーリーおよびプロダクトバックログの作成
スクラムではユーザーの要望であるユーザーストーリーをもとに、価値のある開発を行います。
ユーザーストーリーとは
ユーザーはソフトウェアの専門家ではありません。アジャイル開発では、ユーザーは希望する要件を技術的に定義できない場合があります。この場合、要件を固めずに、ユーザーが望むユーザーエクスペリエンス(UX)をベースとして何を作るかを示す「ユーザーストーリー」を検討していきます。
プロダクトバックログとは
ユーザーストーリーをもとに、おおよそ一か月以内の決められた期間において「役割(誰が)」「要望(何をしたい)」「理由(なぜ)」を整理しながら、顧客担当やチームメンバーの意見を一致させていきます。
この工程において、顧客との認識のズレをなくし、具体的なイメージを列挙したものがプロダクトバックログです。プロダクトバックログをもとに開発を行うことで、開発効率や、実装・検証を行うスピードを上げられます。プロダクトバックログは定期的にステークホルダー全員で共有し、プロダクトの最新状況を把握するようにしましょう。
スプリントプランニング
スクラムチーム全体で、今回のスプリントで実⾏する作業の計画「スプリントバックログ」を作成します。
スプリントバックログとは、スプリントのゴール、プロダクトバックログから今回のスプリントで実施するものを選択したリスト、そして計画をまとめたものすべてのことです。
プロダクトバックログから今回のスプリントで実施するものを選択したリストのみを、スプリントバックログと呼ぶ場合もあります。
スプリントバックログを作成する上で重要となるのが、プロダクトバックログを開発しやすくするために分割・定義(リファインメント)することです。さらにリファインメントしたバックログを、1日以内でやりきれる単位までタスクとして分割します。
分割したタスクには優先順位を設定し、優先順位が高いものから取り組むよう開発者に割り当てていきましょう。
スクリプトプランニングにかける時間の目安は、1か月のスプリントで最大8時間といわれています。プラニングが正しくスムーズに進むように配慮して、スプリントの計画をたてきることが大切です。
作成した計画は、必ずプロダクトオーナーと合意しましょう。
開発開始後の作業
開発開始後に実施する作業について確認していきましょう。
デイリースクラム
デイリースクラムとは、毎日同じ時間行う15分程度のミーティングです。前回からの進捗や、現状の課題、次回までに行うことをチーム内で確認し、共有を行います。
スプリントレビュー
スプリント期間の終盤に行う、スプリントで実装した機能についてのレビューがスプリントレビューです。製品の目指すべき姿である「プロダクトゴール」と照らし合わせ、チームメンバーだけではなくステークホルダーも交えて評価を行います。
ステークホルダーから受けたフィードバックをもとに、プロダクトバックログを更新していきましょう。
スプリントレトロスペクティブ
レトロスペクティブとは「振り返り」という意味で、スプリントの最後に行います。チームメンバーの能力やプロセスといった、製品以外の要素に関して現状認識を共有します。
共有された課題や改善案は、次のスプリントに活かしていきましょう。
まとめ
短い期間でのシステム開発を意味するアジャイル開発と、その手法であるスクラムについて解説しました。
スクラムを忠実にこなしていくことで、顧客の要望に沿った迅速な開発の実現に近づきます。
まずはスクラムガイドをしっかりと理解してから実践していくようにしましょう。
Microsoft AzureはMicrosoftのクラウドコンピューティングサービスであり、SaaS、PaaS、IaaSといった形態で100を超えるサービスを提供しています。
Azureサービスの一つであるAzure DevOpsには、かんばんボードやバックログといった、すぐにスクラムイベントを開始できる柔軟性の高い機能が備わっており、分析も容易です。
DevOpsにクラウドを組み合わせることで、より高速でシンプルな仕組みづくりを実現できます。
アジャイル開発の環境構築は、Azureの利用をご検討ください。