アジャイル開発(スクラム)の進め方
アジャイル開発にはいくつかの進め方があります。その中でも代表的なのがチームワークと反復を特徴とするスクラムです。ここでは、スクラムの基本的な流れを見ていきましょう。
1.プロダクトバックログを作成する
作りたい製品が顧客にもたらす価値をリストアップしたものが、プロダクトバックログです。顧客が求める機能を洗い出してプロダクトバックログを作成し、作業の優先順位付けを行いましょう。
プロダクトバックログは単なる作業計画ではありません。顧客の要求と、それを実現するために必要な期間やコストを擦り合わせるために作成します。そのため、顧客が見て分かる言葉で表記しなければなりません。
作成したプロダクトバックログは、顧客とはもちろん、チーム内でも全員で共有しておく必要があります。また、プロダクトバックログは一度作成して終わりではありません。顧客の要求は変化するものであるため、その都度対応が求められます。
2.スプリントプランニングを実施する
スプリントとは、一定の価値を実現するために必要な時間枠のことです。反復が特徴のスクラムにおいて、その反復の単位となるのがスプリントです。そして、スプリントプランニングとは、スプリントの開始前に立てる計画を意味します。
具体的には、プロダクトバックログの項目の中から直近のスプリントで扱う項目を抜き出しましょう。ここで抜き出した項目がスプリントバックログになります。プロダクトバックログ作成時に付けた優先順位をもとに、抜き出す項目を選びましょう。
その後、スプリントバックログをタスク(設計、テストなど)に細分化しましょう。基本的に、1人に1つのタスクをアサインします。ただし、1スプリント内の作業にも優先順位を付けなければならないことがあります。たとえば、設計が終わらなければ開発は始められません。
このようなタスク同士の関係性も考慮したうえで作業を割り当てましょう。
3.スプリント内の開発作業を実施する
続いて、スプリントバックログで定めたタスクを実施します。3つのステップに分けて見ていきましょう。
活動状況を共有する「デイリースクラム」
デイリースクラムとは、毎日の活動状況報告です。毎朝15分程度行うのが一般的で、「朝会」「スタンドアップミーティング」などとも呼ばれます。デイリースクラムで確認するのは、主に以下の3つです。
- ■昨日行った作業
- ■本日行う作業
- ■発生した問題点
この中で最も大切なのは、問題点の報告です。作業員一人が抱えている問題点は、チームの問題とも言えます。
デイリースクラムの一番の目的は、個人で解決できそうにないものを明らかにし、チームでその解決を図ること。逆に、それが可能な環境がすでにあるならば、無理にデイリースクラムを行う必要はないといえるでしょう。
成果の確認を行う「スプリントレビュー」
スプリントレビューは、スプリントが完了した段階で行うミーティングです。関係者を招集し、成果物のデモンストレーションを行います。
開発チームにとっては、自分たちの成果を発表できる機会と言えるでしょう。また、ほかの関係者にとっては、要求と実際の製品の間に齟齬がないか確認する機会となります。
振り返りを行う「スプリントレトロスペクティブ」
スプリントレトロスペクティブは、スプリントレビューの後に行うミーティングです。スプリントレビューでは主に成果を確認しますが、スプリントレトロスペクティブではプロセスを振り返ります。
具体的には、そのスプリントで発生した問題の報告や、次に同じ問題が生じるのを防ぐ方法を考える場となります。スプリント毎にこれを行うことで、チームの開発能力を高められるでしょう。
アジャイル開発の種類
アジャイル開発には、以下の3種類があります。
- スクラム
- これまで解説してきた方法で、アジャイル開発の代表格です。チームワークを重視し、密なコミュニケーションを取りながらプロジェクトを進めます。
- エクストリーム・プログラミング(XP)
- ソフトウェア開発における成功例と、その適用方法をまとめた指針のことです。経験則を重視し、チームには高い技術力が求められるため、プログラマー向けの方法といえます。
- ユーザー機能駆動開発(FDD)
- 顧客の目線を重視した方法です。顧客のビジネスをよく把握して必要な機能を洗い出し、段階的に提供します。
アジャイル開発(スクラム)を効率よく進めるには?
スクラムを効率よく進めるにはどうすればよいのでしょうか。
スクラムチームが協調する
スクラムでは、関係者を以下の3種類に分けます。これらの立場の人が協調して開発に携わることが大切です。
- プロダクトオーナー
- 開発への投資から、最大の価値を生み出すことに責任を負う立場です。顧客へのヒアリングや交渉、プロダクトバックログの作成を行います。
- スクラムマスター
- 開発チームの状態を管理する立場です。ただし、基本的に開発チームにあまり干渉しません。あくまで、開発チームが円滑に活動できているか見守るコーチのような立場といえます。
- 開発チーム
- 一般的に3~10人程度で構成される開発作業員です。責任者として上記2つの立場の人はいますが、開発チームには自律的な活動が求められます。プログラマーやテスターなど、役割をあまり明確に分けず、専門分野の垣根を超えての協調が必要です。
開発チーム内でスキルを補完する
スクラムチームにおいてメンバーに求められるのは、1つの分野に特化したスキルではありません。なぜなら、役割の垣根を超えて協力する必要があるためです。
小人数で成果を目指すため、特に問題が発生した際など、自分の担当以外の作業を行う機会も少なくありません。むしろ、そのように協力してチームで問題を解決することがスクラムの本質といえます。
個々のメンバーが偏ったスキルしか持っていない場合、それが困難になります。メンバーのスキルをバランスよく育てるためには、全社的な教育体制も必要になるでしょう。
また、チームのメンバーを選ぶときは、弱点を補完し合える構成にしましょう。チームとしての総合力を、バランスがとれた状態にしておくことも大切です。
開発ツールの導入を検討する
開発ツールとは、ソフトウェア開発を支援するITツールの総称です。その機能は幅広く、多種類の製品が存在します。自社に適したものを活用することで開発が円滑化するでしょう。
たとえば、チーム内で問題が生じた場合、速やかにメンバー間でそれを共有しなければなりません。このとき、データを共有する工程管理ツールがあれば、スムーズにことが進みます。
また、メンバーのスキルに偏りが生じた場合、開発ツールで補うこともできます。たとえば、ノンプログラミングで開発できるツールを使えば、プログラミングスキルが低い人でも活躍できます。
アジャイル開発の進め方を理解し、プロジェクトを成功へ!
アジャイル開発の代表格はスクラムで、以下の3ステップで進行します。
- 1.プロダクトバックログ作成
- 2.スプリントプランニング
- 3.スプリント内の作業の実施
また、スクラムを効率的に進めるコツは以下の2つです。
- ■チームでの協調を重視する(メンバー同士でスキルを補完する)
- ■開発ツールの導入を検討する
以上を踏まえ、アジャイル開発のプロジェクトを成功に導いてください。