「アジャイル開発」は、システムやソフトウェア開発において主流になっている開発手法。
「アジャイル」には“素早い”という意味があり、サービスインまでの期間を短縮できることが最大の特徴。開発途中の仕様・要件変更に柔軟に対応できることから、多くのプロジェクトで導入されています。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
目次
アジャイル(agile)とは直訳すると「素早い」「機敏な」「頭の回転が早い」という意味。
アジャイル開発(アジャイルソフトウェア開発)は、現在主流になっているシステムやソフトウェアの開発手法の1つで、『計画→設計→実装→テスト』といった開発工程を機能単位の小さいサイクルで繰り返すのが最大の特徴です。
優先度の高い要件から順に開発を進めていき、開発した各機能の集合体として1つの大きなシステムを形成。「プロジェクトに変化はつきもの」という前提で進められるので仕様変更に強く、プロダクトの価値を最大化することに重点を置いた開発手法です。
従来のウォーターフォール開発の場合、初めにプロジェクトの要件定義や設計を細部まで煮詰めてから1度の大きなサイクルで開発を進めるので、リリース時にすべての要求をクリアしていることが求められます。
しかし、アジャイル開発の場合は優先度の高い重要な機能から着手できるため、素早くリリースしてからブラッシュアップしていくことが可能。つまり、サービスインまでの期間を短縮することができ、ビジネスのスタートを早めることができます。
◎アジャイル開発とは?
・現在主流になっているシステムやソフトウェアの開発手法の1つ
・『計画→設計→実装→テスト』といった開発工程を、機能単位の小さいサイクルで繰り返す
・仕様変更に強く、プロダクトの価値を最大化することに重点を置いた開発手法
・サービスインまでの時間を短縮できることが名前の由来(アジャイル=素早い)
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
アジャイル開発という概念が生まれたのは、2001年。アメリカ・ユタ州に集まった17名の技術者・プログラマーによって提唱されたのが始まりです。
彼らがより良い開発手法について議論するなかでまとめられたのが「アジャイルソフトウェア開発宣言」。
《アジャイルソフトウェア開発宣言》
私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。
(引用元:アジャイルソフトウェア開発宣言)
引用文の該当箇所を赤字にしましたが、これは「ソフトウェア開発において、どこに重きをおくか」という価値観を定義したもの。
アジャイルソフトウェア開発における12の原則「アジャイル宣言の背後にある原則」を読むと、さらに詳しく解説されているのでこちらも合わせてチェックしましょう。
アジャイル(素早い)という言葉の通り、アジャイル開発はクライアントニーズを最優先させながらよりよいプロダクトをより効率的により素早く開発することを目的として考えられたものです。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
ウォーターフォール開発は、要件定義から設計、開発、実装、テスト、運用までの各工程を段階的に完了させていくシステムやソフトウェアの古典的な開発手法。
要件定義や全体の機能設計を固めてから開発に着手するため、実際に開発が始まるまでに時間がかかる傾向があります。その一方で、進行計画に余裕を持たせるケースが多く、予算が立てやすい・チームメンバーのアサイン計画が立てやすいといった特徴があります。
機能ごとに細かい開発サイクルを繰り返すアジャイル開発との大きな違いは、開発途中での仕様変更や追加対応が困難なこと。仕様の抜け漏れが発覚した場合や開発途中で要求に変更があった場合、1つ手前の工程から見直すことになるので追加費用が発生したり、開発期間の延期に繋がってしまう懸念があります。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
それでは、どのようなプロジェクトがアジャイル開発に向いているのでしょうか?アジャイル開発に向いているプロジェクトの特徴を解説します。
サービスを1度リリースして終わりにするのではなく、1〜2ヶ月に1度のペースで継続的に新しい機能の実装や改善を繰り返すプロジェクトがアジャイル開発に向いています。
アジャイル開発は、プロジェクトにおける当初の要求をそのまま実現することではなく、むしろ開発を通して得たナレッジや、リリース後のユーザーのフィードバックから得られた結果をもとに、改善を繰り返していく手法です。
開発しているサービスやプロダクトが市場で求められているかどうかの価値検証を行うところにアジャイル開発のメリットがあります。
発注側・受注側の関係をフラットに保つことができるかどうかも、アジャイル開発に向いているかを判断する重要な条件です。クライアント側が開発会社側に開発を丸投げにせず、ワンチームで取り組まなければ、スピード感が遅くなりユーザーへの価値提供が難しくなります。
アジャイル開発は、イテレーション(短いスパンの開発)が終わるごとにチームで振り返りを実施します。今回の良かった点・改善すべき点を共有しあい、次回のイテレーションの進め方を改善します。つまり、「こうすればうまくいく」というやり方があらかじめ存在していないプロジェクトほどアジャイル開発が向いています。
★イテレーションについて詳しくはこちら
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
アジャイル開発は、ビジネス環境の変化に柔軟に対応できる開発手法として近年では「DX(デジタルトランスフォーメーション)」推進の文脈で取り上げられる機会が増えてきました。
IPAの「DX白書2021」においても、アジャイルの原則にのっとったDX推進の重要性が指摘されています。
DXは、ニーズの不確実性が高く、技術の適用可能性もわからないといった状況下で推進することが 多く、状況に応じて柔軟かつ迅速に対応していくことが必要である。そのため、日本企業にもアジャイルの原則にのっとったDXへの取組が求められる。
* アジャイルの原則とアプローチとは、顧客価値を高めるために企画、実行、学習のサイクルを継続的かつスピー ド感をもって反復することを指す。
出典:IPA「DX白書2021」
DX推進ではしばしば、不確実性が高く明確な答えがない状態で課題解決の手段を模索しなければならない状況に陥りがちです。開発途中の仕様・要件変更に強いアジャイル開発は、正解のない問いへの最適なアプローチとして多くのプロジェクトで採用されています。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
また、近年では開発文脈のみならず、ビジネス領域においてもアジャイルのアプローチを実践する動きが活性化しています。なかでも激しいビジネス環境の変化に柔軟かつ素早い対応が可能な「アジャイル組織」への注目が高まっています。
アジャイル組織とは、事前に大規模な計画を立てるのではなく、短期間で実行と振り返りをしながら業務改善やブラッシュアップをしていく組織のこと。また、改善することを前提としているため、トップダウン型の意思決定フローではなく、現場に一定の権限が付与され、ボトムアップによる意思決定フローが採用されています。つまり業務遂行のスピードが速まり、変化の激しいビジネス環境にフィットした組織構造といえるでしょう。
★アジャイル組織について詳しくはこちら
しかし、アジャイルに馴染みのない組織がいきなり会社全体をアジャイル組織に変革していくのはハードルが高いため、まずは現場のプロジェクト単位でミニマムに推進し、少しずつ社内にアジャイルの知見を蓄積していく方法をお勧めします。
組織にアジャイル文化を形成するためのポイントを解説したホワイトペーパーをご用意しておりますので、アジャイル組織の構築について詳しく知りたい方はこちらをご覧ください。
➡︎【資料ダウンロード】アジャイルのアプローチでビジネスの変化に強い組織になるには?
次に、アジャイル手法を取り入れる際の基本のステップを解説します。
アジャイル開発を導入すべきテーマを決定します。またテーマごとに自社の事業への貢献インパクトを分析し、その評価に準じて取り組むテーマの優先順位づけを行います。
取り組むテーマの優先順位付けが終わったら、優先順位の高いテーマから開発に着手します。
プロジェクトに携わるメンバーを集め、チームビルディングを行います。クライアント企業など、他社のメンバーがチームに入ることもあります。
プロジェクトを短いスパン(1〜4週間程度)のスケジュールで実施できる範囲に切り分け、リスト化します。
短い期間の間に定められたテーマに合わせて要件を定義し、設計、実装、テスト、リリース、ユーザーからのフィードバックをもとにした改善というサイクルを繰り返します。
実施した開発や最初の優先順位の検討内容を踏まえ、次に実施する開発のテーマを検討します。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
アジャイル開発の最大の特徴は、小さな開発サイクルを何度も繰り返すこと。仕様変更にも柔軟に対応でき、従来の開発手法よりもリリースまでの時間を短縮できるのが特徴です。
プロダクトの価値を最大化することに重点を置いた新しい手法だけに、アジャイル開発を語るうえで欠かせない関連用語があるので解説していきましょう。
アジャイル開発において「要件」の代わりに用いられる概念。「ユーザーが実現したいこと」「ユーザーにとって価値があること」(意図・要求)を簡潔にまとめた文章です。
例えば、『ユーザーが気になる商品をお気に入り登録できる』のように、「誰が」「何を」「どうする」のかを端的に記したもの。付箋紙などに書き出してユーザーストーリー・マッピングを作ることで、開発からフィードバックまでの要素をサイクルを回す際の手がかりとして活用します。
イテレーション(iteration)とは「反復・繰り返し」という意味。短期間で反復しながら効率的に開発を進めるアジャイル開発の1サイクルを単位にしたものです。
アジャイル開発の手法の1つであるスクラム開発では「スプリント(Sprint)」と呼ばれますが、意味は一緒です。開発手法によって呼び方は変わりますが、いずれも開発期間の単位を表していると認識しておきましょう。
★スプリントについて詳しくはこちら
イテレーションの期間は一般的に1〜2週間程度で、イテレーション毎に機能をリリースします。期間の設定は開発チームによって変化するので注意しましょう。
開発チームが1回のイテレーション内に完了できたユーザーストーリー(要求)の規模の合計値をベロシティと言います。つまり、チームの開発量を表したもので進捗状況を計る目安になります。
同一チームかつ同一期間で実施するようなケースでなければ、通常ベロシティの量は不透明。そのためイテレーションを回しながら実数値を計測し、開発の終盤には正確な見通しが出せるように環境を整えていきます。
アジャイル開発を行う場合、初めに「いつまでにどの機能をリリースできるか」というプロジェクト全体を管理するためのリリース計画を立てます。
リリース計画では下記の項目を決定します。
★リリース計画で決めること
・プロジェクトのゴール
・イテレーションの長さ
・ユーザーストーリーの優先順位
ただし、計画段階から仕様・要求を厳密に決めるウォーターフォール開発とは異なり、アジャイル開発のリリース計画は非常に流動的です。
そのために、イテレーションを繰り返す過程でベロシティをしっかり測定。チームのパフォーマンスに合わせてリリース計画を更新し、徐々に精度を上げていきます。
関連項目:アジャイル型アプリ開発の流れ・フロー
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
アジャイル開発の中にも複数の開発手法が存在します。ここでは代表的な3つのアジャイル開発の手法について解説していきます。
スクラム開発は最も有名なアジャイル開発の手法で、チームで効率的に開発を進めることができるフレームワークです。チーム一体となってプロジェクトを遂行して行くことに重点を置くことから、ラグビーのスクラムが語源になっています。
スクラム開発ではメンバー自身がイテレーションごとの計画を立案し、設計・実装を進行。イテレーション毎に開発の進捗状況や制作物の動作を検査するため、チーム内のコミュニケーションが非常に重要になります。
チーム内での対話が不足していると、リリースした機能が正常に動作しないなどの問題に繋がる可能性があります。
★スクラムについて詳しくはこちら
エクストリーム・プログラミングは、技術面に重きを置いたプログラマー中心の開発手法。英語表記は「Extreme Programming」で、略称は「XP」です。
事前の計画よりも仕様・要件の途中変更への柔軟な対応を重視した手法で、4つの価値(コミュニケーション/シンプル/フィードバック/勇気)をチーム内で共有することが特徴です。
★エクストリーム・プログラミング(XP)で提唱する4つの価値
①コミュニケーション
ステークホルダー間のコミュニケーションを重視する
②シンプル
設計は必要最低限に止める
③フィードバック
頻繁にテストを行い、フィードバックを重視する
④勇気
仕様変更や設計変更に立ち向かう勇気を持つ
ユーザー機能駆動開発(Feature Driven Development)は、顧客にとっての機能価値(feature)を重視した開発手法。
ユーザーのビジネスを見える化して必要な機能を洗い出し、適切な間隔で反復的にソフトウェアの開発を繰り返すのが特徴です。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
システムやソフトウェアの開発において、プロジェクトにマッチした開発手法を選択することは非常に重要です。現在主流のアジャイル開発ですが、当然メリットだけでなくデメリットもあるので事前に覚えておきましょう。
アジャイル開発のメリットは、臨機応変に柔軟な対応が可能で開発スピードが速いこと。
初めに決定した設計・計画を重視するウォーターフォール開発の場合、トラブルの発生箇所によっては修正にかかる時間やコストが膨大になる可能性があります。しかし、アジャイル開発は機能単位で設計→開発→実装→テストを繰り返しているのでリリースのタイミングが早く、不具合が発生したとしても修正にかかる工数が少なくて済みます。
また、開発途中もコミュニケーションを取りながらフィードバックを行うので、顧客のニーズに最大限応えることができるのも大きなメリットです。
プロジェクト全体の納期はあるものの、アジャイル開発では仕様・要件ごとにスケジュールを設定して開発に臨むため、全体スケジュールのコントロールが難しい傾向にあります。
また、時として顧客とのコミュニケーションを重視する特性が裏目に出てしまうことも……。なかなか正しい要求が導き出せないままプロジェクトが進行してしまったり、場当たり的な開発に陥って開発の方向性がブレてしまうという懸念も抱えています。
このように、全体の進捗状況やスケジュールの把握が困難な点がアジャイル開発の最大のデメリットと言えるでしょう。しっかり納期に間に合わせられるように、アジャイル開発の経験があるプロジェクトマネージャーを中心に綿密に計画を立てたうえで導入しましょう。
➡︎【資料ダウンロード】DXを加速させる「アジャイル手法」の教科書
アジャイル開発を採用して成功を納めた開発事例を紹介していきます。
「Payどん」は、鹿児島銀行に口座を保有する顧客が利用できるキャッシュレス決済サービス。2019年6月に開業した完全キャッシュレス商業施設「よかど鹿児島」内の14店舗からスタートし、サービスを順次拡大させています。
商業施設のオープンに合わせることがビジネスロードマップ上の絶対条件であったため、開発プロジェクトは一切の遅延が許されない状況下で行われました。タイトなスケジュールのなかでも素早いリリースを可能にするため、弊社ではアジャイル開発を提案。設計〜実装〜テスト〜リリースまでのあらゆる工程をサポートし、適切なタイミングでのサービスリリースを実現しました。
★詳しくはこちら:
鹿児島銀行|スマートフォン決済アプリのアジャイル開発成功事例
★お客様インタビュー(アジャイル開発の成功事例)はこちら
株式会社JTB(以下、JTB)は、実店舗やWEBサイトにて旅行の販売を手がける日本の大手旅行会社。 同社が提供する旅行予約アプリ『JTB旅行検索・予約確認アプリ』の開発を依頼されたモンスターラボは、要件定義から参画。フロントエンド・バックエンドの開発と運用・保守の工程を担当しました。
開発面では仕様変更に対応しやすいアジャイル開発を提案し、2週間単位のスプリントで保守と改善活動を繰り返し行っています。
リニューアルにより、アプリから旅行検索や旅程の管理が可能となり、ユーザーの利便性向上に寄与しました。社内からも、アナログ業務の軽減により接客業務の時間を長く取れると賞賛の声をいただきました。モンスターラボは、現在もサービスの更なる拡充に向けた支援を続けています。
★詳しくはこちら:
JTB|旅行の検索と予約の確認を行える『JTB旅行検索・予約確認アプリ』事例
★お客様インタビュー(アジャイル開発の成功事例)はこちら
『インターネットラジオステーション<音泉>』はアニメや声優、ゲーム関連の音声番組を提供するサイト。同サイトの新規ユーザーの獲得には、既存機能をより使いやすく定期的にアップデートし、サービスの品質を向上させることが求められていました。
ベンダー変更にともない、仕様変更や機能追加に強いアジャイル手法を用いた開発ができることや、Web・アプリ開発両方の専門的な知識・経験も持ち合わせる伴走型の外部パートナーとして、モンスターラボをアサイン。
モンスターラボは、既存のベンダーへヒアリングを行い既存サービスの課題を抽出。スピーディーな機能拡充の実現に向けて調査と改善を繰り返し、開発、運用・保守を行っています。
★詳しくはこちら:
タブリエ・コミュニケーションズ株式会社|アニメ・ゲーム・声優に関連した番組を配信するWEBサービス・アプリ『インターネットラジオステーション<音泉>』
➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”
従来のウォーターフォール開発と比べ、アジャイル開発には開発途中の仕様・要件の変更に柔軟に対応できるという長所があります。また、優先度の高いものから順に機能単位でイテレーション(スプリント)を繰り返すのでいち早くサービスインすることも可能。
上記のような特徴から、アジャイル開発はDX推進に最適な開発手法として注目を集めています。
アジャイル開発の中にも「スクラム」「エクストリーム・プログラミング」「ユーザー機能駆動開発」といった異なる手法があるので、まずはそれぞれの特徴を理解することから始めてみてください。
★アジャイル開発まとめ
・開発工程を機能単位の小さいサイクルで繰り返すのが最大の特徴
・開発途中もコミュニケーションを取りながらフィードバックを行うので、プロダクトの価値を最大化できる
・仕様変更に強く、サービスインまでにかかる時間を短縮できるのがメリット
・全体の進捗状況やスケジュールの把握が難しいのがデメリット
・アジャイル開発の中にも3種類の開発手法がある
・アジャイル開発でも最低限のドキュメント類は必要
モンスターラボは、約20年にわたるサービス・プロダクト開発実績から得られたデジタル領域の知見や技術力を活かし、デジタルプロダクト開発事業を展開しています。
先端テクノロジーに対応した高度なIT人材があらゆるプラットフォーム上での開発を支援します。アジャイル開発とDevOpsによる柔軟な開発進行や、国内外のリソースを活用したスケーラブルな開発体制の構築も可能です。 また、リリース後の保守運用や品質向上支援まで伴走可能です。
モンスターラボが提供するサポートの詳しい概要は以下リンクをご確認ください。