アジャイルが失敗する5つの理由とその回避策
Daniela Field
2017年8月14日
アジャイル開発とは何ですか?
アジャイル開発とは、小さなソフトウェアリリースを繰り返し行っていく開発アプローチです。アジャイル開発は、アプリケーションを一度に提供するのではなく、フィードバックに基づいて段階的にリリースすることを目的としています。標準的なソフトウェア開発ライフサイクル(SDLC)やウォーターフォール手法などの従来の方法では、ソリューションを素早く、効率的に提供することができません。ウォーターフォールプロジェクトは完了まで数年かかることがあります。これでは、提供されたソリューションが必要のないものになっている可能性もあります。このことから、アジャイル開発手法は柔軟性を必要とするプロジェクトに対して新しい標準になりつつあり、すべてのIT部門やソフトウェア提供会社の共通の課題です。
アジャイルプラットフォームの方法論には、プロダクトオーナー、スクラムマスター、開発チーム、エンドユーザーまたはビジネスチームの4つの主要な役割があります。
- プロダクトオーナーの役割は、ソリューションのビジョンを推進することです。彼らは構築すべきプロセスを理解する必要があります。
- スクラムマスターの役割は、開発チームの障害を取り除き、可能な限り支援することです。
- 開発チームには、ソフトウェアエンジニア、品質保証、およびその他のソリューションの構築に携わるメンバーが含まれます。
- エンドユーザーは、最終的にアプリケーション内で作業するユーザーです。
5つの間違いを避ける
ヘルスケア、教育、政府、その他多くの業界で企業と作業をしてきた経験から、すべての企業が独自のアジャイル手法を持っていることに気付きました。すべての企業はプロセスを独自にカスタマイズする必要がありますが、私が繰り返し見ている間違いがいくつかあります。ここでは、アジャイル方法論を実施する際に起こっている5つの間違いと、それらを避けるためのヒントを示します。
1. チーム内の誤ったコミュニケーションで信頼を失う
信用を失ったプロジェクトは失敗します。1〜2週間ごとに新機能を提供しなければならないというプレッシャーがあり、多くのメンバーや関係者が関与しているため、アジャイルプロセス中に誤ったコミュニケーションが発生する可能性があります。そのため、目的が明確であること、つまり合理的な期限を定めてリリースをすることが重要です。 誰もが共通の目標に向かって一緒に働いていると感じるはずです。
2. スクラムマスターがスクラムスレーブになる
スクラムマスターはチームに尽くす必要があります。開発チームに降りかかる可能性のある障害への対応、プロダクトオーナーやその他の利害関係者への指導、開発チームを政治的圧力や様々な問題から守る必要があります。いくつかのプロジェクトでは、スクラムマスターがチームの活動を指示し、すべての活動を細かく管理していました。この種のリーダーシップは、チームの士気を損ない、信頼の欠如を示すだけでなく、チームが目標を達成することをも妨げます。また、反対にスクラムマスターがチームから離脱したプロジェクトも見てきました。この場合、スクラムマスターはミーティングにのみ出席し、チームが何をしているのか分かっていませんでした。スクラムマスターは、問題を認識し、直ちに解決するよう積極的に取り組むべきです。また、使用されている技術を理解し、可能な限り手助けをするべきです。
図1:スクラムマスターは、コミュニケーションやチームの管理に重要な役割を持ちます
3. プロダクトオーナーの能力不足
プロダクトオーナーは、専門知識を持ち、技術とビジネスニーズを理解し、製品のビジョンを持っている必要があります。プロダクトオーナーはエンドユーザーや開発チームとやりとりし、必要なビジネスソリューションに向けてメンバー全員を誘導します。この役割を考えると、ユーザーからのフィードバックの窓口となり、明確な指針を提供し、要望を管理できる人が必要です。
図2:理想的なプロダクトオーナー
私の最初のプロジェクトでは、クライアントは2〜3週間以内にその製品を必要としており、ユーザーの受け入れ期間中に不具合を解決する必要がありました。実際に発生した不具合はすぐに解決されましたが、多くのユーザーからのフィードバックは追加機能の要望(不具合ではない)でした。ユーザーは、開発期間の2〜3週間以内に追加機能要求を提出し、すべてがリリースされることを期待していました。プロダクトオーナーは、エンドユーザーと協力して要望を管理したり、不具合と追加機能を切り分けたりしませんでした。単に開発チームに情報を渡して、すべてを開発させました。そのため、プロジェクトのリリースがどんどん延期されたのは驚くことではありません。プロダクトオーナーがプロジェクトのビジョンを推進し、ビジネス目標を理解することは不可欠です。そして、ユーザーの期待をしっかりと明確に管理する必要もあります。そうしないと、プロジェクトまたはプロジェクトのフェーズ1は決して完了しません。スコープクリープが発生します。
4. 要件が非常に複雑
プロジェクトが複雑になればなるほど、開発に時間がかかり、問題が増えます。複雑な要件に対処する場合は、開発チームがスクラムマスターとともに、可能な限りよいソリューションを計画して設計することが重要です。つまり、複雑な要件を小さな要件(ストーリー)に分割し、時間の経過と共に反復するのです。チームが何らかの障害が見えている場合や、スクラムマスターが将来的にプロジェクトの障害になるものがあると気づいた場合、それらの問題はすべて事前に洗い出し、計画を立てる必要があります。すべての問題を洗い出すことはできませんが、反復中にアプリケーションへ追加したすべての変更にはコストがかかります。時には開発者がプロジェクトの後半で大きな機能を変更することがあります。開発者はこの変更の影響がわかるかもしれませんが、エンドユーザーは、アジャイル開発なのだから問題なく変更されるだろうと期待しています。プロジェクトを成功させる唯一の方法は、反復期間を別に設定して期限を延長することです。
5.アジャイルに適したツールを使っていない
アジャイルのために作られたツールのヒントはMendixです。Mendixでは、迅速なプロジェクト提供のための適切なツールがすべて整っています。チームサーバーではすべての要件(ユーザーストーリー)とスプリントを管理します。以下はユーザーストーリーとスプリント開発の例です。
図3:スプリントとユーザーストーリーのスクリーンショット
図4:ユーザストーリーの進捗状況
プロジェクトの進捗を追跡するためにスプレッドシートやホワイトボードを用意する必要はありません。かんばんやバーンダウンチャートなど、チームサーバー機能が提供されています。Mendixは、開発プロセスをより簡単かつ迅速に行うことができるだけでなく、プロジェクトを効果的かつ素早く管理するための適切なツールを提供します。
アジャイルで失敗しないための注意点
アジャイル開発手法は、チーム内に信頼があり、「理想的な」スクラムマスターとプロダクトオーナーがソリューションに向かって協力し合い、プロセスを合理化するための適切なツールを組み合わせると効果的です。必要なトレーニングやサポートを受けて、プロジェクトのチームメンバーと信頼して進めることがプロジェクト成功のカギです。
翻訳元:https://www.mendix.com/blog/5-reasons-why-agile-fails-and-how-to-fix-it/
※このBlogはMendix社が作成してビルドシステムが翻訳したものです。