Web事業の発展や企業のDX化に伴い、ソフトウェア開発の現場も大きく変化しています。その中で注目されているのが「アジャイル開発」です。アジャイル開発は米国から世界へと広がり、日本でもIT・ゲーム業界などを中心に導入されるケースが増えてきました。
そこで本記事では、アジャイル開発とは何かについて応用事例とともにわかりやすく解説します。「スクラム」や「ウォーターフォール」などの関連用語も合わせて紹介しますので、ビジネスモデルの参考資料にお役立てください。
アジャイル開発とは
アジャイルは、「機敏な」「すばやい」などの意味を持つ英単語です。ソフトウェア開発の世界では、英単語の意味から「期間を短縮して開発する手法」として用いられています。
アジャイル開発の手法は、4週間以内の短い期間を設定し計画・設計・実装・評価を反復していくものです。優先順位をつけて必要なものから完成させ、発注側から評価を受けて再度計画しながら次の期間に進んでいくことで、効率良く開発作業を進められます。
アジャイル開発は「従来の開発では今後のビジネス環境に対応するのが難しい」と感じた米国のエンジニアが議論したことからスタートし、2001年に正式に定義されました。その後に発表された「アジャイル開発宣言」という公式文書により、世界的にこの開発手法は広まり、現在では多くの開発現場で採用されています。
ウォーターフォール開発との違いは?
アジャイル開発とよく比較されている言葉に「ウォーターフォール開発」があります。ウォーターフォール開発は従来型の開発手法で、工程をしっかりと分けてからスケジュール通りに作業を進めていく形式です。
以下の表を見てわかるように、アジャイル開発と比べて発注側の要求変更には原則対応できない点が特徴だと言えます。
種類 | ウォーターフォール開発 | アジャイル開発 |
---|---|---|
成果物 | ・仕様変更への対応不可 ・発注時の要求通りに完成させる | ・仕様変更への対応が可能 ・発注時の要求とは違う成果物になる可能性あり |
費用 | ・当初の見積もり通りに行う ・変更があった場合は別の作業として扱い、追加費用が発生 | ・テストや評価の中で費用が変化する可能性あり ・変更があることも想定して作業を進める |
開発チーム | 工程ごとに作業メンバーを設定する | ・工程ごとにメンバーを分けない ・顧客も交えて相談しながら進める |
アジャイル開発のメリット・デメリット
アジャイル開発は、顧客にも開発チームにもプラスの影響が多い手法です。ただし、複雑な開発現場ではかえって作業を停滞させてしまうこともあります。
ここでは、アジャイル開発のメリット・デメリットを見てみましょう。
アジャイル開発のメリット
アジャイル開発は、発注者の要求変更やミスに迅速に対応できます。短い期間に区切って何度もテストしながら作業を進めるため、トラブルの発見や解決も早く、顧客満足度を高められる点が特徴です。
また、開発チーム側も短期的なサイクルで作業をすることで、集中力が上がり作業を効率化できます。経営側の視点でも、アジャイル開発のタスク状況をすぐに把握できる点は大きなメリットです。たとえば、ほかのプロジェクトや戦略にも応用させやすくなり、創造性や柔軟性など組織力の向上にもつながるでしょう。
このように、アジャイル開発は顧客・開発者・経営者の三方にとってポジティブな影響を与えるため、ソフトウェア開発以外の分野でも注目されています。
アジャイル開発のデメリット
一方で、短い作業期間の中で急な要求変更に対応していると、当初の計画と実際の成果物が大幅に変わってしまう点がマイナスに働くことがあります。たとえば、顧客のこまかい要求や変更に応えているうちに、本来の目的を見失いプロジェクトの方向性があいまいになってしまうケースなどが挙げられます。
また、急な仕様変更に毎回対応すれば、スケジュールの変更が頻繁に発生し、完成までの見通しが立てにくくなります。その結果、当初の予定より大幅に納品日が遅れてしまうリスクがあります。ほかにも、アジャイル開発は小規模なチーム編成で取り組むのがよいとされているため、大規模なチームではマネジメントが複雑になり、状況の把握が困難になるでしょう。
顧客を巻き込んで議論しながら開発を進められる点はメリットではあるものの、顧客の要望やチーム環境によっては反対に作業効率を悪化させるケースもあることを覚えておきましょう。
アジャイル開発の3種類の開発手法
アジャイル開発には代表的な3つの開発手法があり、いずれも多くのビジネス現場で採用されています。それぞれの手法や関連用語について、簡単に把握しておきましょう。
スクラム
アジャイル開発の中で最も知られているのが「スクラム」です。スクラムは、小さなチームを組んで全員が主体的に取り組む手法を示します。
短い期間の中で計画・実装・テストをくり返すのはもちろん、ミーティングを毎日実施してチーム内のコミュニケーションを密に取りながら開発していくのが特徴です。そのため、スクラム開発チームのメンバーには、高いコミュニケーションスキルが求められます。
エクストリーム・プログラミング(XP)
エクストリーム・プログラミング(XP)は、仕様変更後の技術的な対応に重点を置いた手法です。チーム内では以下「4つの価値」に注目して、情報共有しながら作業を進めます。
- コミュニケーション:関係者同士の交流や議論
- シンプル:ムダな労力や工程が発生しないようにする
- フィードバック:こまめにテストを行い評価する
- 勇気:急な仕様変更にも前向きに立ち向かう
ユーザー機能駆動開発(FDD)
ユーザー機能駆動開発(FDD)は、適度な頻度でソフトウェア開発をくり返す手法です。顧客のビジネスに必要な機能を明確にしながら、きちんと動作する開発を行うことに特化しています。
そのため、FDDを実施するには、顧客のビジネスモデルを開発前によく理解しておく必要があります。
アジャイル開発で知っておきたい用語一覧
アジャイル開発を実施するうえで知っておきたい関連用語を紹介します。
用語 | 意味 |
---|---|
ユーザーストーリー | 顧客やユーザーが望むことをわかりやすくまとめた文章や資料。 |
イテレーション(スプリント) | 開発期間の1サイクル。1〜4週間程度が一般的。スクラム開発ではスプリントと呼ばれる。 |
バックログ | 計画ややるべきことを優先順位を付けて示した一覧リスト。 |
ベロシティ | 1サイクルの中で達成した成果や開発量を示す合計値。複数サイクルを通して計測する。 |
アジャイル開発では、ベロシティに合わせてバックログを更新していくのが基本です。また、計画が変わっても目的や指標を見失わないように、ユーザーストーリーは誰にでも理解できる言葉を使いましょう。
アジャイル開発の流れ
アジャイル開発は開発手法によって手順や流れが変化するものの、短期間で何度も開発を行う「反復増加型」と呼ばれるスタイルが原則です。基本的な手順として、以下5つのステップをくり返しながら開発していきます。
- 計画
- 設計
- 開発
- テスト・フィードバック
- 納品
計画のステップでは、今後仕様変更やトラブルなどで予定が変わることも想定しているため、あえて詳細な計画を立てません。こまかい計画を立てないことで、顧客の要望にもスピーディーに対応でき、成果物の見直しも可能です。
設計・開発の段階では小規模なチームを組んで、優先順位をつけながら作業します。そして、手法によっては顧客も交えたテストを実施し、フィードバックをもらいながら改善につなげたり、次のサイクルへ活かすのが特徴です。
1つのサイクルが完了すると、また最初のステップに戻り新しい機能の開発に移ります。
アジャイル開発が適しているプロジェクトと実例
アジャイル開発が向いているのは、決してソフトウェア開発の現場だけではありません。近年は、全く別の業界や分野でもアジャイル開発の考え方が取り入れられています。
そこで最後に、アジャイル開発が適しているビジネス領域と実例を紹介します。
アジャイル開発が適しているプロジェクト
アジャイル開発が適しているプロジェクトとして、近年特に注目されているのが「IT」「DX」の分野です。
IT業界は環境の進化が著しく、変化の絶えない領域であるため、IT領域でサービスを展開するプロジェクトでは仕様変更があるのが当然とも言えます。そのような環境でアジャイル開発を採用すれば、変化に沿った柔軟な対応が可能です。具体的には、Webメディアの運営などでも活用されており、全体の方向性だけを決めてすぐに運用を開始し、PVやCVRを計測して数値を元に改善しながら完成に近づけていく場合もあります。
また、DX領域でもアジャイル開発は有効でしょう。DX(デジタルトランスフォーメーション)は、デジタル技術の活用でビジネスモデルを変革することです。
DXはさまざまなビジネス分野で取り入れられており、いち早く環境の変化に対応できるサービスを展開する顧客にとっては、素早い開発とブラッシュアップが欠かせません。完成の全体像が見えていない状態でもいち早くリリースするプロジェクトは多く、改善しながら完成形のイメージや計画を固めていく顧客も多いでしょう。そのため、開発と改善をくり返し実施できるアジャイル開発が適していると言えます。
アジャイル開発の実例紹介
実際にアジャイル開発を取り入れた事例のひとつとして「富士通と自治体の窓口によるシステム開発」が挙げられます。
富士通はXPを活用したアジャイル開発により、自治体窓口で実施される各種申請手続きの効率化を実現しました。「紙からタブレット入力への移行」「受理後の情報入力自動化」「窓口待ち時間の軽減」などについて、職員や地域住民の声を取り入れながら新システムの開発を進めました。
また、ウォーターフォール開発が一般的な自動車業界でも、アジャイル開発へ移行する企業が増えています。たとえば「トヨタ」は、大規模な組織でありながら社内にいくつもの小規模チームを作り、アジャイル開発によって短納期のリリースに対応できるようになりました。各チームごとに優先順位決めやこまめなテスト・改善を実施し、効率のよい開発作業を実現させています。
アジャイル開発は多くのビジネスシーンで応用できる
アジャイル開発は米国のエンジニアによって生み出されたソフトウェア開発手法ではあるものの、その恩恵を受ける業界は今では数え切れないほどです。
アジャイル開発には、小規模でも大規模な組織でも、チームマネジメントの在り方として採用すべき考え方や手順が多く含まれています。
ただし、アジャイル開発を取り入れるには全員がその手法や考え方を理解していることが必須です。
ワークマネジメントツール「Asana」なら、アジャイル開発を取り入れた業務管理を実現できます。計画・実装・テスト・納品まで一貫して管理が可能なAsanaは、チームごとにカスタマイズでき業務を可視化しながら効率化していけるでしょう。
無償トライアルや柔軟なご相談へも対応しておりますので、まずはAsanaの機能を一度お試しください。