2021.08.16 【責任編集】ラーニング・ツリー【解説】アジャイル外部委託のポイントを整理
ビジネスでは適宜に「外部委託(アウトソーシング)」を活用することが推奨されています。それは、昨今のシステム開発現場の主流になっているアジャイル開発も例外ではありません。
しかし、アジャイル開発の外部委託ではいくつかのポイントを押さえなければならず、プロジェクトの丸投げは厳禁です。アジャイル開発の特性を考えた上で、そのメリットを最大限引き出すにはどうすれば良いのでしょうか?
そこで、アジャイル開発を外部委託する際のポイントをご紹介します。
この記事を読まれる方が非IT企業従事者なら「アジャイル開発のメリットを最大限引き出すためのポイントを知る」ものとして、IT企業従事者なら「アジャイル開発を受託する場合、委託者側に何を求めるべきかを知る」ものとして、ご一読いただければ幸いです。
日本におけるアジャイル開発の動向について
昨今、柔軟性の高い開発手法として注目されているアジャイル開発。日本ではそのアジャイル開発を外部委託するケースが、海外諸国と比べて非常に多い傾向にあります。根拠となるデータを提示します。
日本のIT人材は、IT企業へ圧倒的に集中している
日本企業からすると「当然」と思われることでしょう。しかし、海外諸国ではIT人材の半分以上は非IT企業で活躍しています。IPA(情報処理推進機構)が2017年に発表した資料にて、データとして示されてます。
出典:IT人材白書 2017 IPA(情報処理推進機構)
日本では70%以上のIT人材がIT企業へ集中しているのに対し、その他の国では過半数に達していません。米国にいたっては35%未満となっています。
「ユーザー企業がSIer(システム開発の受託企業)に委託する」という日本のIT業界構造は、海外諸国では驚かれることが実は多いのです。それは、海外諸国ではIT人材が非IT企業に従事している割合が多いという上記データを見ると読み取れます。
アジャイル開発も当然、外部委託が基本
システム開発の現場では「ユーザー企業がSIerに委託する」が日本IT業界の当たり前ですから、当然ながらアジャイル開発も外部委託が基本になっています。
アジャイル開発は柔軟性に優れ、開発途中での仕様変更にも対応できることからユーザー企業も注目しています。従って「開発を進めながら自社要望を反映させて欲しい」と希望するユーザー企業が多いのです。
アジャイル開発を外部委託する際に注意すべきこと
従来より利用されている「ウォーターフォール開発」という開発プロセスには計画性はあるものの柔軟性には優れておらず、プロジェクト途中の仕様変更に対応しづらいのが難点であり、「アジャイル開発」が選ばれるケースが増えてきてはいますが、外部委託する際は従来とは違った点に注意する必要があります
委託者側のアジャイルに関する知見
ウォーターフォール開発ならプロセス初期の要件定義が完了すれば、残りのプロセスはSIerへ丸投げし、最終的なテストだけ立ち会うという対応も多かったと思われます。
一方、アジャイル開発では要件ごとに開発期間が区切られ、その中で設計・開発・テスト・改善が繰り返されるため委託者側の協力が不可欠です。従って、アジャイル開発では委託者側の知見が従来以上に求められます。
進行管理が重要
アジャイル開発は柔軟性に富んだ開発手法ですが、それゆえに「プロジェクトスケジュール管理がより重要になる」という点もあります。
プロジェクトを円滑に進め、予定通りのリリースを目指すには進行管理がとても重要であり、そのためにはやはり委託者側のアジャイル開発に関する知見が欠かせないのです。
コミュニケーション
「頻繁なコミュニケーション」はアジャイル開発の生命線です。アジャイル開発の代表的な手法である「スクラム」には、「プロダクトオーナー」という役割があり、プロダクトバックログの管理に対し責任を負っています。そのため、スクラムチームへの指導を行い、プロダクトレビューに参加し、開発チームにフィードバックを行い、レトロスペクティブメーティングで作業の改善提案を行い、チーム連携方法改善提案も挙げるなど、コミュニケーションが重要なのです。
同じくスクラムでは開発チームがデイリーミーティングを行い、進捗と仕様変更の確認を都度行いながら開発プロセスを見直し続けます。アジャイル開発に関わる全ての関係者が自身の役割を理解し、それぞれ頻繁にコミュニケーションを取ることがアジャイル開発の成否を握ります。
品質管理
ウォーターフォール開発で品質管理を行っていた人が、アジャイル開発での品質管理に戸惑うことが多いと聞きますが、基本的には、“品質は常にモニタリングする”“品質の責任はチーム全員が負う”が正しい品質管理の理解とすれば、両開発における違いはなく、具体的なやり方に違いがあると言えます。
アジャイル開発の品質評価はウォーターフォールで使用されるテスト密度やバグ密度は使用しません。品質管理は、バックログに記載された受け入れ基準を満たしているかで判断されます。ただ、それだけでは十分とは言えない場合もあり、プロセス品質やリソース品質なども測る事もあります。
こういった品質を判断する方法の違いを認識できていない事から、外部委託先と委託元との間で問題が起こってしまうのです。
以上の注意点から総じて言えること
委託者側もチームの一員という認識を持ってアジャイル開発に取り組むことが、とても重要です。
システムによるビジネスの成長効果を最大化するためにも、ビジネス側に立つ委託者が受託者と一丸になり「ビジネスにより良いシステムを開発する」という心構えを持ちましょう。
従って「アジャイル開発を外部委託する」という考え方ではなく、「アジャイル開発に必要なリソースを外部から調達する」という考え方がポイントになります。システムに加えられた変更・修正は委託者側も全て把握し、主体性を持ってアジャイル開発に取り組みましょう。
まとめ
日本のIT業界特有と言えるアジャイル開発の外部委託は、委託者側がアジャイル開発の知見を深めて積極的に開発チームに参画すれば、外部委託のメリットを最大限引き出せます。
兼ねてより「SIerに依存してベンダーロックに陥りがち」という問題点が日本のIT企業で提起されていました。しかしそれは、従来のウォーターフォール開発にありがちだった「プロジェクトの丸投げ」による産物かもしれません。
今回ご紹介したように、アジャイル開発を外部委託する際の注意点を押さえながら「委託者側も開発チームの一員だ」という認識を持てば、日本のIT業界特有の課題を解決しながらシステム開発に取り組めます。
そのことを念頭に置きながら、アジャイル開発の外部委託をご検討ください。