2023.07.31更新日:2024.03.15
システム開発やソフトウェア開発の開発手法の中で、近年では市場やユーザーのニーズに合わせた対応ができるアジャイル(Agile)が人気を得ています。
本ページでは、アジャイル開発の概要からメリット・デメリット、具体的な手法をご紹介します。開発プロジェクトや組織運営にアジャイルを取り入れたい方はぜひ参考にしてください。
アジャイル(agile)とは現在主流になっているシステムやソフトウェア開発手法の一つで、計画からテストといった工程を小さいサイクルで繰り返しながら開発を進めていくのが特徴です。もともとはソフトウェア開発手法の一つを指す言葉だったのですが、現在では製造業や営業職など他業界・他業種でも、プロジェクト進行の方法として使われています。
アジャイルは2001年に提唱されたのが始まりで、「アジャイルソフトウェア開発宣言」の中で指針となる4つの価値観と12の原則が定義されています。ここでは4つの価値観をご紹介します。
このようにアジャイルではチームのメンバーや顧客との密なコミュニケーションを重視しており、急な仕様変更による情報共有や柔軟な利用が求められることから、クラウド型のツールを用いるのが一般的です。
アジャイルの基本的なステップを説明します。
その後、最初に決めたテーマの優先順位の見直しなどをしながら、次のイテレーションに着手していきます。以上がアジャイルの基本的なステップです。
ウォーターフォール型はアジャイルと異なり、全ての機能や設計を具体的に定めてから開発に着手します。Waterfall(=滝)という名前の通り、上から下に順番に設計から開発を進めていく手法です。プロジェクト開始時に全体の作業量を把握することができるため、予算の見積もりやスケジュール管理がしやすいといったメリットがあります。一方で、全ての機能を開発前に定めているため開発途中での仕様変更を行う場合は、コスト増加や納期の延長といったデメリットがあります。
アジャイルはウォーターフォール型のデメリットを克服した開発手法と言えます。
開発プロジェクトでは「プロジェクト」と「開発手法」がマッチしているかの判断が大切になります。それではどのようなプロジェクトがアジャイルに適しているのでしょうか。ここではアジャイルのメリット、デメリットについて解説します。
メリットの1つ目は、不具合や修正に柔軟に対応ができることです。
アジャイルではイテレーションごとに「計画→設計→実装→テスト→リリース」を行うため、イテレーションごとになんらかの成果物が出てきます。その成果物をもとにすぐに機能追加や優先順序の変更を行えます。不具合や急な仕様変更にも柔軟に対応できます。
2つ目は開発スピードが速い点です。
先述した4つの価値観にもあるように、アジャイルではドキュメント作成よりも計画~リリースのサイクルを回し続けることに重点を置いています。ウォーターフォール型のようにしっかりとした仕様をドキュメントに落とし込む作業もないため、全体的に開発スピードを速めることができます。また、仕様変更時の手戻りも少ないといった点もアジャイルならではのスピード感を裏付けています。
3つ目は顧客のニーズをすぐに反映できるところです。アジャイルのチームは顧客もメンバーとして立場を超えて協働するため、テスト時に実際の機能や使用感を都度試すことができます。仕様の変更や要求との相違を感じた場合、早い段階で修正対応ができるため、顧客のニーズを色濃く反映した開発が可能となります。
アジャイルではイテレーションごとに詳細なスケジュールを定めていくため、プロジェクト全体のスケジュールをコントロールするのが難しい場合があります。
また顧客のニーズを重視するあまり、開発の方向性が分からなくなるという問題が発生することもあります。
アジャイルにも一長一短があり、近年では一つの開発プロジェクトの中でウォーターフォール型とアジャイルのメリットを組み合わせるハイブリット開発も増えています。
以上のメリット・デメリットから、アジャイルに適したプロジェクトは「急な変更が発生する可能性があるかどうか」という条件が重要な判断材料でしょう。
アジャイルではイテレーションごとの成果物をもとにフィードバックが得られるのがメリットですが、ステークホルダーにコミュニケーションのための時間を捻出させる必要があります。ステークホルダー側に「より良いものを・満足いくものを作るためにアジャイル開発を行う。そのために頻繁にフィードバックをもらう必要がある」と合意をする必要があります。
開発者間でも、頻繁にコミュニケーションを行う必要があります。
ここからはアジャイルの代表的な開発手法「かんばん」「スクラム」「エクストリーム・プログラミング(XP)」「ユーザー機能駆動開発(FDD)」の4つを紹介していきます。それでは一つずつ手法を見ていきましょう。
かんばんとは、ボード上でプロジェクトを視覚的に管理する手法のことです。一般的にかんばんボードでは、担当者や納期、作業工程のTODOや作業ステータスなどの項目が管理できます。
かんばんボードによって、プロジェクトの進捗や優先度の可視化や、チーム間のコミュニケーションを活性化できるというメリットがあります。
スクラムはアジャイル開発の中でも有名な手法で、チームで効率的に開発を進めるためのフレームワークのことを指します。ラグビーのスクラムが語源になっており、チームが一丸となって作業を進める点が特徴です。
スクラムではイテレーションのことを“スプリント”と呼び、一定の期間で開発を進めます。
スプリントの中でメンバー自身が計画の立案や進捗管理を行うため、メンバー間でのコミュニケーションはとても重要になります。またスクラムでは作業計画や変更を管理するためにバックログを作成し、スプリントをメンバー内で管理していきます。
エクストリーム・プログラミングはプログラマー中心の開発手法です。Extreme Programmingと表記しXPと略されることもあります。エクストリーム・プログラミングは開発途中の仕様変更や機能追加にも柔軟に対応することを重視している点が特徴です。この手法では4つの価値をチーム内で共有します。
エクストリーム・プログラミングではこれらの価値を重視しながら開発を行うことで、柔軟性の高い開発を進めることが可能となります。
ユーザー機能駆動開発はFeature Driven Developmentの頭文字をとってFDDと略されることもあります。この手法は顧客にとって価値のある機能を重視した手法です。
顧客のビジネスを理解した上で、必要とする機能の洗い出しを行い、イテレーションを繰り返すという点が特徴です。顧客が必要とする機能のみの実装を行うためシンプルで機能的なサービスの開発ができる点がメリットとして挙げられます。またユーザー機能駆動開発では、開発する機能ごとにチームを分けるため、大規模な案件にも対応しやすいといったメリットもあります。
ここまでアジャイルのメリットやデメリット、従来の開発手法であるウォーターフォール型の違いを解説してきましたが、ご理解いただけましたでしょうか。
「アジャイルでの開発に取り組みたいが、実際にどういった管理体制で行えばよいのか分からない」という方にぜひ知っていただきたいのが、プロジェクト管理ツールの「Jira Software」です。世界10万社に導入されているITツールです。
Jira Softwareはアジャイルに特化した開発ツールで、本ページで紹介した「かんばん」や「スクラム」といった代表的な手法に応じたテンプレートや多様な分析機能を提供しており、段階的なプロジェクト管理が可能です。
Jira Softwareを活用してアジャイル型のプロジェクト管理を実現しましょう。
【監修】
リックソフト株式会社
小田倉晃