アジャイルで大規模開発はできる?
アジャイル開発は、チーム人数が10人以下の小規模な開発向けの手法とされています。
始めに綿密な計画を立てず、進行途中でフットワークの軽さが求められる特性が、小規模開発に効果的です。一方、大規模開発向けの手法としては、正確な計画を共有できるウォーターフォール型開発があります。
しかし、アジャイル開発を大規模開発に適用できないわけではありません。チームを10人程度の小規模なものに分割することで、アジャイル開発が可能になります。実際に海外では、アジャイル開発で大規模開発に成功した例が増えています。
ただし、日本ではまだそのような考えが浸透していません。複数の小規模チームに機能を分割する方法や、それらを統括的に管理する手法の点で不安を感じる企業も多いようです。
アジャイルで大規模開発をする方法は?
では、大規模開発をアジャイルで実現するにはどうすればよいのでしょうか。ここでは4つのフレームワークを紹介します。
SAFe(Scaled Agile Framework)
SAFeは企業や事業部が一丸となって開発に取り組む手法です。アジャイル開発の手法にそのほかの思考法などを取り入れ、実践例も踏まえたうえで体系化されました。2012年に書籍「Agile Software Requirements」が刊行され、数年に一度改訂されています。
SAFeの特徴は、意思決定や実行の階層を以下の3つに分けていることです。
- ポートフォリオレベル
- 企画を評価・審査
- プログラムレベル
- 複数チームの連携による開発
- チームレベル
- 各チームによる開発
プログラムとは、複数のチームによって構成される集団のことです。小規模開発におけるアジャイル開発と異なり、このようなチーム間での連携が重視されます。
Nexus Framework
Nexus Frameworkは2015年に提唱された手法です。アジャイル開発の一種であるスクラムを、大規模開発向けにアレンジしたものと言えます。
スクラムは、透明性を重視した開発手法。開発メンバーが日々状況を報告し、問題が生じればチームで補い合いながら完成を目指します。また、定期的に顧客の前で成果物のレビューを行って成果を確認することで、認識の齟齬をなくします。
Nexus Frameworkは、スクラムのこれらの特徴を大規模開発にどう適用するかを定めたもの。チーム内での協調を、チーム間でも実現できる環境を目指します。
LeSS(Large Scale Scrum)
LeSSはNexusと同様、スクラムの手法を大規模開発へと適用したものです。「LeSS」と「LeSS Huge」に大別されます。LeSSは、2~7チーム程度の規模の開発に適用。一方、LeSS Hugeの対象は数百~数千人程度の規模の開発です。
経験ベースで構築された手法であるため、LeSSに従いさえすれば成功するというものではありません。試行錯誤を繰り返し、現状に合う形に調節しながら開発を進める必要があります。
DAD(Disciplined Agile Delivery)
DADでは、以下の3つのフェーズを設けることでスクラム開発における意思決定をフレームワーク化します。
- 方向付けフェーズ
- 関係者間での合意やチーム編成、初期計画などの決定を行います。アジャイル開発は途中での変更を柔軟に受け入れる方法ですが、すべて受け入れるわけにはいきません。
- そこで、このフェーズで定めた方向付けをもとに、その後の変更への対応を決めます。
- 構築フェーズ
- プログラミングやテストなど、実際に開発を進める段階です。
- 移行フェーズ
- 完成した成果物を、実環境で使える状態にします。物理的な準備に加え、利用者教育なども行います。
\ 開発ツール の製品を調べて比較 /
製品をまとめて資料請求!
資料請求フォームはこちら
アジャイルで大規模開発に成功した事例は?
大規模開発をアジャイルで成功させた事例を2つ紹介します。
事例1:100人規模で世界各社のコード共有化に成功
A社は、複数の企業を買収した結果、各社で使っているシステムが違うという問題を抱えていました。これでは、企業間の情報共有がうまくいかず、システム開発に支障をきたします。
そこで、A社は統合的な開発環境の構築を目指しました。通常ならウォーターフォール開発で行うところですが、A社はアジャイルで開発することを決めます。
7か国以上に渡る120人以上もの従業員が関わるプロジェクトですが、A社はこれを4~10人程度のチームに分割。優先順位の高いタスクから、開発やテスト、リリースを4週間程度の短期間で終わらせていきます。
すべてのチームで同じ短期間のリズムで作業を繰り返すことで、全チームを統合的に管理できました。さらに、連絡手段として電話会議システムを活用。その結果、アジャイル開発に欠かせない密なコミュニケーションが実現し、プロジェクトは成功しました。
事例2:システムの開発スピードが大幅に向上
B社は、南米にある銀行のネットバンキング開発に取り組みました。その手法として、Nexus Frameworkを利用しています。
Nexus Frameworkを導入する前は、プロダクトバックログを複数あるチームにアサインして進めていました。ところが、これでは開発速度が計画の2割程度にしかなりませんでした。
そこで、B社はNexus Frameworkの導入を決意。その方法論にしたがってチーム構成を見直しました。それでも、バックログの依存関係が分からず業務が停滞するなどの問題が生じました。しかし、それらは大勢のチームで情報共有しやすい方法を模索するなどして解決。
その結果、開発速度は計画の7割程度まで改善。Nexus Frameworkの導入により、約3倍の速度を実現したことになります。
大規模開発でアジャイルをうまく実施するには?
大規模開発にアジャイルを適用するためのフレームワークには、いくつかの種類があります。しかし、共通するのは、単にフレームワークを当てはめただけではうまくいかないということです。
たとえば、スクラムをベースにした手法では、毎朝の朝会によって近況を報告するのが一般的です。大規模開発でも情報共有が重要なのは変わりません。
しかし、必ずしも毎朝集まることが有効とは限らないはずです。特に複数の拠点のチームが協力する場合、ほかの連絡手段が求められるでしょう。このように、プロジェクトの状況を踏まえて、手法をアレンジして用いる必要があります。
その際に有効なのが、開発ツールの導入です。開発ツールとは、ソフトウェア開発を支援するツールの総称で、さまざまなものがあります。上述の例で言えば、朝会の代わりとなる情報共有ツールの導入が有効でしょう。
アジャイルで大規模開発を行い、プロジェクトを効率化!
アジャイル開発は小規模開発向けの手法ですが、大規模開発にも適用可能です。そのための代表的なフレームワークは以下の4つです。
- ■SAFe
- ■Nexus Framework
- ■LeSS
- ■DAD
これらをうまく活用し、大規模開発をアジャイルで行った例が多くあります。ただし、手法をそのまま当てはめるのではなく、現状に応じてアレンジすることが大切です。以上を踏まえ、アジャイルでの大規模開発を成功に導いてください。