今世界中でシステムやソフトウェアの開発手法の主流になっているのが「アジャイル開発」。旧来のウォーターフォール開発に比べてリリースまでの期間が短く、開発途中での仕様・要件変更にも柔軟に対応できることから多くのプロジェクトで採用されています

近年、ビジネスシーンで話題の「デジタルトランスフォーメーション(DX)」は、進化し続けるテクノロジーやそれに伴う人々の生活の変化に合わせて、ビジネスの在り方自体を再構築していく取り組み。

つまり絶えず市場が変化していくことを意識する必要があり、ユーザーニーズにマッチした商品・サービスをいち早くリリースしてブラッシュアップしていくような企画・開発が求められています。

本記事では、デジタルトランスフォーメーション(DX)の実現に最適な「アジャイル開発」の基礎知識を徹底解説。「スクラム」「イテレーション」「スプリント」などの関連用語の説明から、アジャイル開発の3つの手法、アジャイル開発の特徴やメリット・デメリットまで紹介していきます。

「アジャイル開発」とは?

まずは、「アジャイル開発(アジャイルソフトウェア開発)」という言葉の意味からおさらいしていきましょう。

アジャイル開発の基礎知識を解説していきますアジャイル開発の基礎知識を解説していきます

“アジャイル(agile)”という単語の意味は「素早い」「機敏な」。加えて、「頭の回転が早い」というニュアンスが含まれています。

「アジャイル開発」は現在主流になっている、システムやソフトウェアの開発手法の1つで、『要件定義→設計→開発→実装→テスト→運用』といった開発工程を機能単位の小さいサイクルで繰り返すのが最大の特徴

優先度の高い要件から順に開発を進めていき、開発した各機能の集合体として1つの大きなシステムを形成。「プロジェクトに変化はつきもの」という前提で進められるので仕様変更に強く、プロダクトの価値を最大化することに重点を置いた開発手法です。

従来のウォーターフォール開発の場合、初めにプロジェクトの要件定義や設計を細部まで煮詰めてから1度の大きなサイクルで開発を進めるので、リリース時にすべての要求をクリアしていることが求められます。

しかし、アジャイル開発の場合は優先度の高い重要な機能から着手できるため、素早くリリースしてからブラッシュアップしていくことが可能。つまり、リリースまでの期間を短縮することができ、ビジネスのスタートを早めることができます。

◎アジャイル開発とは?

・現在主流になっているシステムやソフトウェアの開発手法の1つ

・『要件定義→設計→開発→実装→テスト→運用』といった開発工程を、機能単位の小さいサイクルで繰り返す

・仕様変更に強く、プロダクトの価値を最大化することに重点を置いた開発手法

・リリースまでの時間を短縮できることが名前の由来(アジャイル=素早い)

「アジャイルソフトウェア開発宣言」〜アジャイル開発の始まり〜

アジャイル開発という概念が生まれたのは、2001年。アメリカ・ユタ州に集まった17名の技術者・プログラマーによって提唱されたのが始まりです。

彼らがより良い開発手法について議論するなかでまとめられたのが「アジャイルソフトウェア開発宣言」。その内容は以下の通りです。

《アジャイルソフトウェア開発宣言》

私たちは、ソフトウェア開発の実践

あるいは実践を手助けをする活動を通じて、

よりよい開発方法を見つけだそうとしている。

この活動を通して、私たちは以下の価値に至った。

 

プロセスやツールよりも個人と対話を、

包括的なドキュメントよりも動くソフトウェアを、

契約交渉よりも顧客との協調を、

計画に従うことよりも変化への対応を、

 

価値とする。すなわち、左記のことがらに価値があることを

認めながらも、私たちは右記のことがらにより価値をおく

(引用元:アジャイルソフトウェア開発宣言

引用文の該当箇所を赤字にしましたが、これは「ソフトウェア開発において、どこに重きをおくか」という価値観を定義したもの

アジャイルソフトウェア開発における12の原則「アジャイル宣言の背後にある原則」を読むと、さらに詳しく解説されているのでこちらも合わせてチェックしましょう。

アジャイル(素早い)という言葉の通り、アジャイル開発はクライアントニーズを最優先させながらよりよいプロダクトをより効率的により素早く開発することを目的として考えられたものです。

アジャイル開発とウォーターフォール開発の違い

アジャイル型開発とは?ウォーターフォール開発とは?

アジャイル開発とウォーターフォール開発の違いを解説します

ウォーターフォール開発は、要件定義から設計、開発、実装、テスト、運用までの各工程を段階的に完了させていくシステムやソフトウェアの古典的な開発手法。

要件定義や全体の機能設計を固めてから開発に着手するため、実際に開発が始まるまでに時間がかかる傾向があります。その一方で、何を作るかというゴールが明確に決まっているので、予算や納期をコントロールしやすいのが最大のメリット。

機能ごとに細かい開発サイクルを繰り返すアジャイル開発との大きな違いは、開発途中での仕様変更や追加対応が困難なこと。仕様の抜け漏れが発覚した場合や開発途中で要求に変更があった場合、1つ手前の工程から見直すことになるので追加費用が発生したり、開発期間の延期に繋がってしまう懸念があります。

 
▼デジタルトランスフォーメーション推進に関するご相談はこちら

「アジャイル開発」の関連用語

アジャイル開発を説明するうえで重要な関連用語を解説しますアジャイル開発を説明するうえで重要な関連用語を解説します

アジャイル開発の最大の特徴は、小さな開発サイクルを何度も繰り返すこと。仕様変更にも柔軟に対応でき、従来の開発手法よりもリリースまでの時間を短縮できるのが特徴です。

プロダクトの価値を最大化することに重点を置いた新しい手法だけに、アジャイル開発を語るうえで欠かせない関連用語があるので解説していきましょう。

関連用語① ユーザーストーリー

アジャイル開発において「要件」の代わりに用いられる概念。「ユーザーが実現したいこと」「ユーザーにとって価値があること」(意図・要求)を簡潔にまとめた文章です。

例えば、『ユーザーが気になる商品をお気に入り登録できる』のように、「誰が」「何を」「どうする」のかを端的に記したもの。付箋紙などに書き出してユーザーストーリー・マッピングを作ることで、開発からフィードバックまでの要素をサイクルを回す際の手がかりとして活用します。

関連用語② イテレーション(スプリント)

イテレーション(iteration)とは「反復・繰り返し」という意味。短期間で反復しながら効率的に開発を進めるアジャイル開発の1サイクルを単位にしたものです。

アジャイル開発の手法の1つであるスクラム開発では「スプリント(Sprint)」と呼ばれますが、意味は一緒です。開発手法によって呼び方は変わりますが、いずれも開発期間の単位を表していると認識しておきましょう。

イテレーションの期間は一般的に1〜2週間程度で、イテレーション毎に機能をリリースします。期間の設定は開発チームによって変化するので注意しましょう。

関連用語③ ベロシティ

開発チームが1回のイテレーション内に完了できたユーザーストーリー(要求)の規模の合計値をベロシティと言います。つまり、チームの開発量を表したもので進捗状況を計る目安になります。

同一チームかつ同一期間で実施するようなケースでなければ、通常ベロシティの量は不透明。そのためイテレーションを回しながら実数値を計測し、開発の終盤には正確な見通しが出せるように環境を整えていきます。

関連用語④ リリース計画

アジャイル開発を行う場合、初めに「いつまでにどの機能をリリースできるか」というプロジェクト全体を管理するためのリリース計画を立てます。

リリース計画では下記の項目を決定します。

★リリース計画で決めること

・プロジェクトのゴール

・イテレーションの長さ

・ユーザーストーリーの優先順位

ただし、計画段階から仕様・要求を厳密に決めるウォーターフォール開発とは異なり、アジャイル開発のリリース計画は非常に流動的です。

そのために、イテレーションを繰り返す過程でベロシティをしっかり測定。チームのパフォーマンスに合わせてリリース計画を更新し、徐々に精度を上げていきます。

関連項目:アジャイル型アプリ開発の流れ・フロー

「アジャイル開発」の手法

アジャイル開発の3つの開発手法について解説しますアジャイル開発の3つの開発手法について解説します

アジャイル開発の中にも複数の開発手法が存在します。ここでは代表的な3つのアジャイル開発の手法について解説していきます。

手法① スクラム

スクラム開発は最も有名なアジャイル開発の手法で、チームで効率的に開発を進めることができるフレームワークです。チーム一体となってプロジェクトを遂行して行くことに重点を置くことから、ラグビーのスクラムが語源になっています。

スクラム開発ではメンバー自身がイテレーションごとの計画を立案し、設計・実装を進行。イテレーション毎に開発の進捗状況や制作物の動作を検査するため、チーム内のコミュニケーションが非常に重要になります。

チーム内での対話が不足していると、リリースした機能が正常に動作しないなどの問題に繋がる可能性があります。

手法② エクストリーム・プログラミング(XP)

エクストリーム・プログラミングは、技術面に重きを置いたプログラマー中心の開発手法。英語表記は「Extreme Programming」で、略称は「XP」です。

事前の計画よりも仕様・要件の途中変更への柔軟な対応を重視した手法で、4つの価値(コミュニケーション/シンプル/フィードバック/勇気)をチーム内で共有することが特徴です。

★エクストリーム・プログラミング(XP)で提唱する4つの価値

①コミュニケーション

 ステークホルダー間のコミュニケーションを重視する

②シンプル

 設計は必要最低限に止める

③フィードバック

 頻繁にテストを行い、フィードバックを重視する

④勇気

 仕様変更や設計変更に立ち向かう勇気を持つ

手法③ ユーザー機能駆動開発(FDD)

ユーザー機能駆動開発(Feature Driven Development)は、顧客にとっての機能価値(feature)を重視した開発手法

ユーザーのビジネスを見える化して必要な機能を洗い出し、適切な間隔で反復的にソフトウェアの開発を繰り返すのが特徴です。

▼デジタルトランスフォーメーション推進に関するご相談はこちら

「アジャイル開発」のメリット・デメリット

アジャイル開発のメリット・デメリットを解説しますアジャイル開発のメリット・デメリットを解説します

システムやソフトウェアの開発において、プロジェクトにマッチした開発手法を選択することは非常に重要です。現在主流のアジャイル開発ですが、当然メリットだけでなくデメリットもあるので事前に覚えておきましょう。

「アジャイル開発」のメリット

アジャイル開発のメリットは、臨機応変に柔軟な対応が可能で開発スピードが速いこと。

初めに決定した設計・計画を重視するウォーターフォール開発の場合、トラブルの発生箇所によっては修正にかかる時間やコストが膨大になる可能性があります。しかし、アジャイル開発は機能単位で設計→開発→実装→テストを繰り返しているのでリリースのタイミングが早く、不具合が発生したとしても修正にかかる工数が少なくて済みます

また、開発途中もコミュニケーションを取りながらフィードバックを行うので、顧客のニーズに最大限応えることができるのも大きなメリットです。

「アジャイル開発」のデメリット

プロジェクト全体の納期はあるものの、アジャイル開発では仕様・要件ごとにスケジュールを設定して開発に臨むため、全体スケジュールのコントロールが難しい傾向にあります。

また、時として顧客とのコミュニケーションを重視する特性が裏目に出てしまうことも……。なかなか正しい要求が導き出せないままプロジェクトが進行してしまったり、場当たり的な開発に陥って開発の方向性がブレてしまうという懸念も抱えています。

このように、全体の進捗状況やスケジュールの把握が困難な点がアジャイル開発の最大のデメリットと言えるでしょう。しっかり納期に間に合わせられるように、アジャイル開発の経験があるプロジェクトマネージャーを中心に綿密に計画を立てたうえで導入しましょう。

▼デジタルトランスフォーメーション推進に関するご相談はこちら

「アジャイル開発」にも設計書などのドキュメントは必要?

アジャイル開発とはいえ、最低限のドキュメント類は準備しましょうアジャイル開発とはいえ、最低限のドキュメント類は準備しましょう

顧客とのコミュニケーションを重視するアジャイル開発では、要件定義書や設計書などのドキュメント類が不要と考えている人も多いようです。

アジャイル開発宣言の中に「包括的なドキュメントよりも動くソフトウェアを価値とする」という一文があるため、ドキュメントの制作は無駄な時間と考えてしまいがち。しかし、同時に「左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく」という一文があることを見逃してはいけません。

ドキュメントの価値自体は、アジャイル開発も認めているということはしっかりと理解しておきましょう。例えば、今開発中のプロダクトが一過性のものではない可能性があることも念頭に入れる必要があります。

リリース後に機能を追加しながら運用していく場合、別のチームに引き継ぎを行う必要が発生することもあるでしょう。そんなとき、何の資料も残っていなければ引き継ぎは困難なものになってしまいます。

また、アジャイル開発時にドキュメントを提出していなかったことでシステム開発を完了したことが認められなかったという東京地方裁判所の判例もあります。

無駄な資料を作る必要はありませんが、「要件定義書」「基本設計書」「テスト結果報告書」などの最低限のドキュメントは用意しておくようにしましょう。

まとめ:「アジャイル開発」がマッチするプロジェクトで導入しよう!

プロジェクトにマッチした開発手法を選ぶことが肝心ですプロジェクトにマッチした開発手法を選ぶことが肝心です

「アジャイル開発」に関して解説してきましたがいかがでしたか?

従来のウォーターフォール開発と比べ、アジャイル開発には開発途中の仕様・要件の変更に柔軟に対応できるという長所があります。また、優先度の高いものから順に機能単位でイテレーション(スプリント)を繰り返すのでいち早くリリースすることも可能

上記のような特徴から、アジャイル開発はデジタルトランスフォーメーション推進に最適な開発手法として注目を集めています。

とはいえ、システムやソフトウェアの開発にはさまざまな手法があるので、現在のプロジェクトにマッチした開発手法を取り入れることが肝心です。

アジャイル開発の中にも「スクラム」「エクストリーム・プログラミング」「ユーザー機能駆動開発」といった異なる手法があるので、まずはそれぞれの特徴を理解することから始めてみてください。

アジャイル開発は今や定番の開発手法ですが、自身の手がけるプロジェクトにマッチしているかどうか、しっかりと判断してから導入するように心がけましょう。

★アジャイル開発まとめ

・開発工程を機能単位の小さいサイクルで繰り返すのが最大の特徴

・開発途中もコミュニケーションを取りながらフィードバックを行うので、プロダクトの価値を最大化できる

・仕様変更に強く、リリースまでにかかる時間を短縮できるのがメリット

・全体の進捗状況やスケジュールの把握が難しいのがデメリット

・アジャイル開発の中にも3種類の開発手法がある

・アジャイル開発でも最低限のドキュメント類は必要

デジタルトランスフォーメーション推進をご検討中の経営者様・企業担当者様へ

モンスター・ラボではお客様からのデジタルトランスフォーメーション推進に関するお問い合わせ・ご相談を随時受付しております。ご興味のある方はお気軽に下記のリンクボタンからお申し込みください。

Related Post

WeChat活用とミニプログラム開発の最新事例セミナーに、モンスター・ラボの成都拠点代表が登壇

イベント

AI(人工知能)とは何か? 言葉の意味や定義から機械学習・ディープラーニングまでわかりやすく簡単に解説

AI

リーンキャンバス(Lean Canvas)を活用したアプリ企画書の書き方を解説

アプリ・Webサービス