Three points for successful agile development

アジャイル開発を成功させるための3つのポイント

ウォーターフォールモデルが主流であった日本の開発環境において、近年では、アジャイルモデルも採用されるようになりました。今日のビジネス環境は、新型コロナウイルスの流行やAIやブロックチェーン技術の台頭などのイベントにより当初の計画通りにものごとが進まないことも少なくありません。先が読めない不確実な現代において、柔軟に対応するアジャイルなプロダクト・サービス開発が求められます。ただし、「アジャイル開発」という開発モデルを採用することを目的にしてしまうと上手くいかないケースもあるでしょう。本記事では、アジャイル開発が上手くいかない理由と成功させるためのポイントをご紹介します。 

目次

アジャイル開発が失敗する5つの理由

1. アジャイル開発をよく理解していない

当たり前のことではありますが、どんなプロジェクトにも適用できる開発手法というものは存在しません。しかし、しばしば「現代に最適な開発手法はアジャイル開発だ」と安直に考えてしまい、そのまま採用し、失敗してしまうケースがよくあります。具体的には、人々が「アジャイル開発に求めること」と「実際にアジャイル開発で実現できること」に乖離がある場合に上手くいきません。 

例えば、コストの節約や開発時間の短縮が目的となっている場合、アジャイル開発の本来のメリットである「ニーズに柔軟に対応する」という部分を見落としてしまうでしょう。ニーズに対応するために、仕様変更が必要になればその分開発費用や時間がかさむ場合も考えられます。そのため、費用や時間の節約を目的になってしまうとプロジェクトが上手くいかない確率は高いです。 

2. コミュニケーション不足

小さい開発サイクルを繰り返すアジャイル開発において、発注側や開発側、PMなどの関係者間で十分なコミュニケーションが行える環境が求められます。1つのサイクルで得られた結果にもとづいて次の開発を進めていくため、システムの質はコミュニケーションの質で決まるといっても過言ではありません。それぞれの関係者から多くのフィードバックを得ることができれば、サイクルを進めていくごとにシステムは改善されていき、最終的にユーザーのニーズに合ったものを完成させることができます。 

3. リーダーの機能不全

アジャイル開発には、「プロダクトオーナー」と「スクラムマスター」という2人のリーダーがおり、彼らが機能するかしないかはプロジェクトの成否に大きく関わります。 

彼らの役割は、以下の通りです。 

・プロダクトオーナー 

役割:プロダクトの目標や方向性を決定する 

・スクラムマスター 

役割:開発がスムーズに進むようにスケジュールを調整したり、問題を解決したりする 

つまり、彼らが正常に機能していなければ、ユーザーの欲しかったものからかけ離れたシステムが出来上がってしまったり、開発期間が大幅に延期してしまったりする可能性があり餡巣。 

ニーズの変化に対応するために素早く細かいサイクルを回さなければならないアジャイル開発において、リーダーは方向性を見失わず、スケジュール通り進行できるようプロジェクトを適切に管理しなければなりません。 

4. 発注側があまり関与しない

システム開発を発注する側が開発にあまり関与せずに開発側に任せきりでプロジェクトが失敗してしまうケースもよくあります。上述した通り、アジャイル開発では、開発に関わる人だけでなく、発注側も含めた関係者によるフィードバックが、より求めていたシステムの完成に繋がります。そのため、発注者側が積極的に開発に関与しなければ、ユーザーのニーズに応えられていないシステムが出来上がってしまいます。特に、業務システムなどの開発を外部に依頼する場合は、実際にそのシステムを利用するユーザーの声を取り入れることで、実際の業務環境にカスタマイズされた “使える” システムを納品してもらうことができるでしょう。

せっかく多額の予算をかけてシステムを開発するのであれば、開発側にまかせっきりにするのではなく、積極的に関わり、意見を言うことで実用性の高いシステムを手に入れましょう。 

5. アジャイル開発経験者がいない

他人の自転車の乗り方を見ただけで自分も自転車が乗れるようになるわけではないのと同じで、アジャイル開発も実際に経験したことがある人物をチームに迎え入れることが重要です。 

アジャイル開発では、短い「開発→リリース」のサイクルを何度も繰り返すことで、ニーズに合ったプロダクトを作成できる開発モデルです。そのため、仕様を変更する必要性がある場合には、適切に判断し、メンバーにタスクを振り分け、円滑に開発を進めていけるだけの経験を持つリーダーが必要です。 

アジャイル開発の表面的な部分だけ理解し、経験者なしに見よう見まねで開発に取り掛かると多くの場合、失敗に終わってしまいます。 

そのため、開発手法にアジャイル開発を選択する場合は、場面ごとに適切な決断を下せるアジャイル開発経験者を採用するようにするといいでしょう。 

アジャイル開発を成功させるための3つのポイント

これまでアジャイル開発の失敗要因を5つご紹介しました。ここでは、アジャイル開発を成功させるための3つのポイントについて解説します。 

1. それぞれの開発手法の特徴をよく理解する

プロジェクトごとに適切なシステム開発手法が存在します。ウォーターフォール型が適切なケースもあれば、アジャイル型が適切だというケースもあり、場合によって使い分ける必要があります。 

開発手法の選択を誤らないためには、以下のような点に注意するとよいでしょう。 

・要件の明確さ 

すべての要件が最初から明確に定義され、変更の可能性が低い場合は、ウォーターフォールモデルの方が最適と言えます。しかし、途中で要件が変更する可能性が高い場合は、アジャイルモデルが適しているでしょう。 

・プロジェクトの規模 

多くのステークホルダーが関与する大規模なプロジェクトでは全体的な見通しが必要な場合が多く、詳細な計画を立てて、その計画に沿って進めていくウォーターフォールモデルが適していると言えます。一方、開発期間が比較的短く頻繁に仕様変更が予想される小規模または中規模のプロジェクトではアジャイルが有効でしょう。 

・開発チームのスキルセット 

開発チームがアジャイル開発に精通している場合や、高度なコミュニケーションと協力が求められる環境では、アジャイルが適しています。一方、形式的で階層的な組織構造の場合、ウォーターフォールモデルが適している場合があります。 

2. 共通認識を持って、それぞれの役割を全うする

アジャイル開発では、仕様の変更に対して柔軟かつ素早く対応しなければなりません。そのため、そのためには、関係者がそれぞれの役割を理解し、協力することが求められます。特に、失敗要因の項でもご紹介したプロダクトオーナーとスクラムマスターが機能することが重要です。アジャイル開発は柔軟な開発モデルではありますが、1つの明確なゴール、方向性があってこそ、その良さが活かされます。また、メンバーとのコミュニケーションや開発の途中で発生した課題の解決、スケジュールの調整といったスクラムマスターの役割もプロジェクトの成功に欠かせません。 

このように、それぞれのメンバーが自身の役割を認識し、協力することでプロジェクトを成功に導くことができるでしょう。そのためにも、プロジェクトには、アジャイル開発経験のある人物をスクラムマスターやプロダクトオーナーを採用すると良いでしょう。 

3. 開発に積極的に参加する

2001年に公開されたアジャイルソフトウェア開発に関する文書「アジャイルマニフェスト」において、アジャイル開発では、ユーザーのニーズに応えることを最優先にし、途中での仕様変更を歓迎することが記されています。アジャイル開発の開発後期でダメ出しすることを躊躇してしまうことが良くありますが、アジャイル開発の原則に従い、積極的にフィードバックをすることで実用的かつ高品質なシステムに仕上げましょう。 

まとめ

本記事では、アジャイル開発のよくある失敗要因と成功させるための3つのポイントをご紹介しました。まず、アジャイル開発の特徴、メリット・デメリットについて学び、自社のプロジェクトに最適な開発手法であるのか判断する必要があります。また、プロジェクト関係者は、開発に積極的に参加し、よりよいシステムの完成のためにフィードバックを行うと良いでしょう。さらに、プロダクトオーナーは明確な目標を掲げ、スクラムマスターはそれに向けたスケジュールの調整やコミュニケーションの活性化、問題解決をするなど、それぞれのメンバーが自身の役割をしっかりと果たす必要があります。このような点に配慮しながら開発を進めていくことをおすすめします。 

初めてシステムを開発する場合や開発経験が少ない場合は、要件を定義することも開発手法を決定することも簡単ではありません。そのような時は、外部のIT専門家にコンサルティングや開発を委託するという選択肢があります。CMC Japanは、開発業務だけでなく、要件定義などの上流工程から対応することが可能です。また、アジャイルウォーターフォールの両モデルにおける開発経験者も在籍しておりますので、お客様のプロジェクトに最適な開発手法がご提案可能です!お気軽にお問い合わせください。 

>> IT専門家による無料相談はこちら