プロジェクトマネジメントにおけるアジャイル開発とは、どのようなことを指すのでしょうか。アジャイル開発を活用するには、基本情報や特徴を理解しておく必要があります。この記事では、これからプロジェクトマネジメントにおけるアジャイル開発を活用する人に向けて、基本的な内容を解説しています。また、導入するメリット・デメリットに加え、どのようなプロジェクトに向いているのかについても解説するため、参考にしてみてください。
目次
プロジェクトマネジメントにおけるアジャイル開発とは?
プロジェクトマネジメントにおけるアジャイル開発とは、プロダクトを開発する際に用いられる1つの手法です。小さな単位で開発工程を区切り、「計画・設計・実装・テスト」を1つのサイクルとして繰り返し、プロダクトの開発を進めます。
アジャイル開発は従来の開発手法と比べても開発スピードが速いことから、「素早い」「機敏な」という意味の「アジャイル」が名前に用いられています。
繰り返してリリースする度に顧客からフィードバックを得て、次に生かすことで高品質なプロダクト開発を目指すのが特徴です。「プロジェクトでの変更や追加は当然」という考えを前提にしているため、細かくリリース計画を立てる必要はありません。変更や追加に対して柔軟かつ迅速に対応するスキルが求められます。
アジャイル開発の基本的な知識
アジャイル開発をスムーズに進めるために必要な、基本的な用語を解説します。
リリース計画
リリース計画とは「いつを期限にして、どのような内容・機能のリリースを進めるか」という計画です。主に1サイクルの期間や目標、優先する顧客の要望などを決定します。開発が進むと、変更や機能の追加が必要となるため、おおよその方向性だけを決めれば、細かい仕様は決める必要がありません。
ユーザーストーリー
ユーザーストーリーとは、顧客の意図や要望を簡単にまとめた文章のことを指します。「誰が」「何を」「どうするのか」という内容を端的に記載しましょう。
開発からフィードバックまでのサイクルを実施する際のベースとして活用します。
イテレーション(スプリント)
イテレーションとはプロダクト開発において、計画・設計・実装・テストを1サイクルとして表す単位です。「イテレーション1」「イテレーション2」のように繰り返しながらリリースを進めます。
期間は1〜2週間程度に設定することが一般的ですが、開発チームによって異なります。
ベロシティ
1回のイテレーションで、チームがどのくらい開発できるのかを数値化したものをベロシティと呼びます。イテレーションを繰り返し行うことで計測可能です。同一チームかつ同一期間で実施しなければ、ベロシティの数値は測定できません。
アジャイル開発とウォーターフォール開発の違い
アジャイル開発は「計画・設計・実装・テスト」の工程を繰り返してプロダクトを開発に導く方法です。開発途中で変更や追加があることを想定しているため、比較的スピーディに開発が進められる手法だといえます。
一方、ウォーターフォール開発は、厳密に計画を立てて進める手法です。計画・設計・実装・テストの工程を1つずつ完了させながら開発を進めます。要件や計画を固めるため着手までに時間がかかるうえ、開発中の変更を想定していないため修正に時間がかかります。
プロジェクトマネジメントのアジャイル開発で用いる主な手法
プロジェクトマネジメントにおけるアジャイル開発で、主に用いられる手法を解説します。
スクラム
スクラムはアジャイル開発において代表的な方法です。チーム内でコミュニケーションを取り、一丸となって効率的な開発を目指します。ラグビーの「スクラム」が語源であり、チームワークを重視して取り組むのが特徴です。
役割のみ設定し、プロジェクトのメンバー自身で計画を立案、開発を行います。イテレーションごとにプロダクトの状況や進捗状況を確認するため、正常に動作させるためにも活発なコミュニケーションが重要です。
エクストリームプログラミング(XP)
エクストリームプログラミングとは、綿密な計画はあらかじめ設計せず、仕様の変更に伴って柔軟性を持って対応する開発手法のことです。
コミュニケーション・シンプル・フィードバック・勇気・尊重という5つのポイントをチーム内で重視し、開発を進めます。ただし、エンジニアのスキルに依存しやすい開発方法だといわれています。
カンバン
カンバンは、主にタスク管理やワークフロー管理に使用される手法です。タスクをボード上に記載することで、視覚的にプロジェクトを管理できます。マルチタスクにならないように配慮しながら開発を進め、業務の効率化を図れます。円滑に開発を進めることが期待できる手法の1つです。
ユーザー機能駆動開発(FDD)
ユーザー機能駆動開発とは、顧客の機能価値に注目した開発方法です。
全体モデル開発・フィーチャー(機能)リストの構築・フィーチャーごとの計画・フィーチャーごとの設計・フィーチャーごとの構築という5つの基本活動に沿って開発を進めます。2週間以内に開発可能な程度にフィーチャーを分けなければいけません。
プロジェクトマネジメントにおけるアジャイル開発のメリット
プロジェクトマネジメントにおいて、アジャイル開発にはどのようなメリットがあるのでしょうか。メリットを3つ解説します。
顧客ニーズを取り入れた柔軟な対応
アジャイル開発では「開発の途中で変更や追加が起きるのは当然」という前提を置いて開発に至るため、変更や追加に対して柔軟性のある対応ができるというメリットがあります。
変更や追加があればイテレーションごとに優先順位を再度評価して、開発に取り組みます。柔軟かつ迅速な変更対応が可能なため、顧客ニーズに適応しやすく、満足度も高まることが期待できるでしょう。
モチベーションアップによる生産性の向上
アジャイル開発では、個人の主体性が求められる場面が多くあります。加えて、タスクや進捗の管理をチーム全体で行うため、メンバーの責任感も強くなることに期待できます。そのため、高いモチベーションを保ったまま開発を進められるでしょう。また、モチベーションアップにより、イノベーション・創造性・生産性の向上も期待できます。
修正工数の削減
プロダクトを短い期間でリリースすることにより、1回のイテレーションにおける修正工数が少なく済むという特徴があります。改良を繰り返しながらリリースするため、効果的なフィードバックを獲得しやすいのもメリットです。修正工数が少ないため、修正にかかる時間やコストの削減につながります。
プロジェクトマネジメントにおけるアジャイル開発の課題
アジャイル開発を進めるにあたり、注意するべき課題も発生します。主な課題を2つ解説します。
スケジュール管理が難しい
アジャイル開発は、イテレーションごとにスケジュールを設定します。これにより、プロジェクト全体を通してのスケジュール管理や、進捗管理が難しいという点が課題です。
必要な要件を満たせていない場合や、変更に対し柔軟に対応した場合は、開発期間が延びる可能性があります。一方でプロジェクトを達成していなくても、要件を満たせていれば早めに開発が終了することも可能です。
開発に関する方向性がぶれやすい
顧客の要望を正しく聞き出せなかった場合、開発が進むにつれて、方向性がぶれることがあります。アジャイル開発特有の「開発を進めながら考える」という性質が原因です。途中でプロジェクトが脱線しないように、ゴールを明確にして正しくコントロールしなければいけません。
プロジェクトマネジメントにおけるアジャイル開発の活用可否
どのようなプロジェクトであればアジャイル開発を生かせるのでしょうか。活用できるプロジェクトの特徴や具体例を解説します。
生かせるプロジェクト
開発の途中で変更や、追加が生じる可能性があるプロジェクトは、アジャイル開発が生かせます。
また、ゴールが完全に明確になっていないプロジェクトも、開発を進めながら要件を固めていけるため活用できるでしょう。顧客の要望に対して細かい対応が求められるプロジェクトが向いている傾向にあります。具体的にはモバイルアプリ・ゲームソフト・Webサービスのシステムなどが挙げられます。
生かせないプロジェクト
開発途中で変更が発生しない予定のプロジェクトは、アジャイル開発が生かせないでしょう。また、安全性や正確性が求められるプロジェクトへの活用も向いていません。
アジャイル開発は顧客からの変更や追加の要望によってリリース日を変更するため、納期厳守のプロジェクトも向いていないといえるでしょう。具体的には基幹システム・金融システムなどが例として挙げられます。このような場合は、ウォーターフォール開発の活用がおすすめです。
まとめ
プロジェクトマネジメントにおけるアジャイル開発は、プロジェクトを細かく区切って計画・設計・実装・テストを繰り返しながら進める開発手法です。アジャイル開発のなかでもいくつかの手法が用いられるため、開発するプロダクトにあわせてメリット・デメリットや活用可否も考慮しながら進めましょう。
株式会社Sun Asteriskは、DXコンサル、設計から本格的な開発まで一気通貫でサポートできるケイパビリティの広さを強みとしています。日本やベトナムを中心に多くのエンジニアが在籍しており、圧倒的に柔軟性のある開発リソースがあることも特徴です。アジャイル開発における実績も豊富なため、気軽にご相談ください。
貴社の状況にあわせて最適なチームをご提案します。アジャイル開発のご相談やお見積りのご依頼は、お気軽にお問い合わせください。
Sun*アジャイル開発に関するソリューションやこれまでの開発実績をまとめた資料のダウンロードはこちらから。