これっていったいどんなモノ?
従来の開発モデルとは異なる特徴を持ったアジャイル開発についてご存知でしょうか。
この記事では、アジャイル開発の種類やアジャイル開発の1つであるスクラムの進め方、効率よく進める方法などを紹介しますので、ぜひ参考にしてみてはいかがでしょうか。
アジャイル開発とは?
アジャイル開発とは、迅速かつ適応的に開発を行うソフトウェア開発の手法です。アジャイルとは「素早い」「俊敏な」といった意味の言葉です。
アジャイル開発にはさまざまなバリエーションがありますが、主に「イテレーション」という短い開発期間単位を採用した進め方をするという特徴があります。
近年では多くのアジャイル開発の手法が登場しています。この記事では、アジャイル開発について紹介していきます。
アジャイル開発の3つの種類
近年人気が上がってきているアジャイル開発ですが、その手法にはさまざまな種類があり、開発の進め方もそれぞれ異なっているため、一言で表現することはできません。
アジャイル開発には、
- スクラム
- ユーザー機能駆動開発(FDD)
- エクストリーム・プログラミング(XP)
などの要素があります。
ここでは
アジャイル開発の3つの種類を紹介します。
アジャイル開発の種類1:スクラム
スクラムとは、反復的で漸進的なアジャイル開発手法です。スクラムは1986年に発表された手法で、日本の柔軟性の高い開発の進め方をラグビーのスクラムに例えたものです。
チームが下記の価値基準に基づいて協力し実践することで、透明性、検査、適応というスクラムの柱が実現します。
- 「確約(commitment)」
- 「勇気(courage)」
- 「集中(focus)」
- 「公開(openness)」
- 「尊敬(respect)」
アジャイル開発の種類2:ユーザー機能駆動開発(FDD)
ユーザー機能駆動開発(FDD)は、顧客にとっての機能価値に重きを置くアジャイル開発手法です。
ソフトウェア工学において、有効かつ広く使用されている手法を中心に混合したもので、顧客にとっての機能価値を観点とした進め方をするという特徴があります。
ユーザー機能駆動開発では顧客側のビジネスを明示化し、実際に動作するシステムを繰り返し適切な期間で顧客に提供します。
アジャイル開発の種類3:エクストリーム・プログラミング(XP)
エクストリーム・プログラミング(XP)は柔軟性を重視したアジャイル開発手法です。エクストリームとは「極端」という意味で、ノウハウを極端に実践することから名付けられました。
事前の計画よりも柔軟性に重きを置き、顧客はオンサイト顧客と呼ばれ、チームメンバーとして共働きをすることになります。
また、少人数での開発に適用しやすく、難易度の高い開発や要求内容が変化しやすい開発に適した手法となっています。
アジャイル開発(スクラム)の進め方3つ
アジャイル開発の代表的な「スクラム」での進め方を把握しておくことも重要です。
スクラムは前述のとおり、チームで協力してソフトウェア開発プロジェクトを進めていく仕組みとなっていますが、その進め方にはどのような特徴があるのでしょうか。
ここではスクラムの進め方3つを紹介します。
アジャイル開発(スクラム)の進め方1:プロダクトバックログの作成
スクラムの進め方では、まずプロダクトバックログを作成します。プロダクトバックログとは、顧客に提供する価値を記述した要件リストです。
プロジェクト開発が決定した場合、まずシステムの要件を満たすための機能を文章にまとめ、プロダクトバックログに追加していきます。
プロダクトバックログに追加される項目にはすべて優先度が付けられており、それをチーム全員で共有することで現在のプロジェクトの状況を把握します。
アジャイル開発(スクラム)の進め方2:スプリントプランニングを実施
次にスプリントプランニングを実施します。スプリントプランニングとは、プロダクトバックログを基にスプリントで行う作業の計画を立て、内容を決定することです。
スプリントプランニングは時間ごとに区切られており、メンバーは時間を守る必要があります。また、プロダクトバックログのアイテムを細分化し、スプリントバックログにすることも可能です。
アジャイル開発(スクラム)の進め方3:スプリント内に開発作業を実施
次に、スプリント内に開発作業を実施します。スプリントプランニングで作成されたスプリントバックログを基に、3つのステップに分けてチームで実施していきます。
主に毎日の活動状況報告である「デイリースクラム」、スプリントが完了した段階で行う「スプリントレビュー」、さらにその後行うミーティングである「デスプリントレトロスペクティブ」があります。
アジャイル開発を効率良く進める方法
アジャイル開発を効率的に行うにはどのような進め方をすればよいのでしょうか。
アジャイル開発は、従来のウォーターフォールモデルの開発手法とは異なる進め方をします。特にスクラムでは、チームメンバー全員が協力し、スプリントプランニングを理解する必要があるでしょう。
ここからは、アジャイル開発の効率の良い進め方を紹介します。
スクラムチームが協調して携わる
スクラムでは、スクラムチームが確約、勇気、集中、公開、尊敬の価値基準に基づいて協力し、実践する必要があります。
スクラムでは、スクラムチームのメンバー全員が正しく理解した上で実践します。また、スクラムにはさまざまな役割がありますが、ウォーターフォールモデルのように進め方を指示したり、意思決定を行ったりするプロジェクトマネージャーは存在しません。
ここではスクラムでの役割についてそれぞれ紹介していきます。
プロダクトオーナー
プロダクトオーナーは、プロダクトに対する責任や最終決定権を持つ役割があります。
プロダクトに対する責任者であり、開発チームにビジョンを伝え、プロダクトバックログを常に最新の状態にしておく責任を持ち、開発チームをリードします。
また、プロダクトの開発を行う開発チームと議論を行い、プロダクトバックログの優先順位をつけ、プロダクトの価値を高めるための努力を行います。
スクラムマスター
スクラムマスターはプロダクトを円滑に進める役割があります。
スクラムプロセスが上手くいくようにする責任を持つ存在で、外部からチームを守ります。また、スクラムをチーム全員が理解しているかどうかのチェックを行います。
スクラムマスターは、一般的な開発モデルのプロジェクトマネージャーと混同されることがありますが、スクラムマスターは意思決定や作業指示などは行わず、プロジェクトが円滑に進むようにサポートを行います。
開発チーム
開発チームはスクラム開発で開発に携わる関係者全員を指します。
スクラム開発では、開発に携わる人に対するそれぞれの役割における名称を設けていません。あえてわけずにチームと呼ぶことで、チーム一丸となってプロダクトの価値を高めることを目的としています。
開発チームは、3人から10人程度のメンバーで構成されていることが多く、自らの作業を管理するための権限を持ちます。
開発チーム内でのスキル補完
開発チームはインクリメントを作成するためのスキルを全て補完しています。
スクラムでの開発チームは機能横断型となっており、それぞれ立場が異なる利害関係者によって構成されています。
そのため、開発チームはスプリント毎に完成したプロダクトインクリメントのリリースの判断ができるスキルを持ったメンバーで構成されており、役割の垣根を超えて協力し合います。
開発ツールの導入を検討
スクラムでは開発ツールを導入することでより開発が円滑になります。
ソフトウェア開発をサポートするさまざまな開発ツールがありますが、それらを利用することで、より開発がスムーズになる場合があります。
たとえば、スクラムチームで情報共有を行うツールの導入や、メンバーのスキルが偏っている場合には開発支援ツールを活用することで補完することも可能です。
アジャイル開発の進め方を理解し効率よく開発を進めて成功させよう
アジャイル開発の種類やアジャイル開発の1つであるスクラムの進め方、効率よく進める方法について解説しました。
アジャイル開発は、従来の開発手法とは異なる進め方をするため、事前に内容と理解している必要があります。
進め方を理解することで、効率よく開発を進めることができるでしょう。ぜひこの記事で紹介した内容を参考に、アジャイル開発を進めてみてはいかがでしょうか。