ラボ型開発(ラボ契約)はオフショア開発・ニアショア開発の1種で、アジャイル開発との組み合わせが注目を集めています。その理由は何でしょうか?「アジャイル開発」について、ラボ型開発との相性、アジャイル開発のメリット・デメリット、適用例、成功事例を紹介します。最後に、アジャイル開発を導入を考える企業が開発会社を選ぶ際のポイント、SES契約(準委任契約)との相性についても探ります。基本知識:オフショア開発の1種である「ラボ型開発」とは?オフショア開発の1種である「ラボ型開発」とはオフショア開発の一種であり、一定期間にわたり開発のための専属チームを確保し、開発者がクライアントのプロジェクトチームの一部となり、委託元の指示で開発を行う開発手法です。ラボ型開発を活用することで得られる効果としては、契約期間におけるエンジニアの確保や、外注では難しい自社での経験・ノウハウの蓄積などが挙げられます。ラボ型開発についての詳しい解説は以下をご参照ください。ラボ型開発とは?メリット・デメリット、請負型との違い、注意点を解説「アジャイル開発」とは?「アジャイル開発」または「アジャイル型開発」とは、システムやソフトウェアの開発における効率的なアプローチの一つであり、柔軟性と迅速性を重視する開発手法です。この開発手法の最大の特徴は、「計画→設計→実装→テスト」という開発工程を、機能単位の小さいサイクルで繰り返すという点です。 優先度の高い機能から順に開発を進めていき、最終的には開発した各機能を集合させ、1つの大きなシステムを形成します。この「計画→設計→実装→テスト」のサイクルを短期間で繰り返すことで、必要な機能や改善点を素早く特定でき、製品の品質向上と効率的な開発を実現します。また、顧客のニーズが変化する市場環境にもすばやく対応できるため、競争力を保つ上で有効です。なぜ「ラボ型開発」と「アジャイル開発」は、相性がいいのか?「ラボ型開発」と「アジャイル開発」が相性が良いとされる理由はいくつかあります。理由1)柔軟性ラボ型開発は開発期間を決めて、開発チームを作り、システムやソフトウェアの開発を行う方法です。こn開発期間内であれば、柔軟に色々な開発を行う事ができます。一方、アジャイル開発は、短い開発サイクルに区切って、その開発サイクル内で柔軟に、ときには開発の方向性を変更しながら開発を行う手法です。この両者の柔軟性が相互に補完し合うことで、効率的な開発が可能になります。理由2)チームの変更ラボ型開発では、必要に応じて開発者を入れ替えることができます。これはアジャイル開発の特性と合致しており、プロジェクトの進行に応じて必要なスキルを持つ開発者を迅速に投入することが可能です。理由3)長期的な視点ラボ型開発は長期間のプロジェクトに適しており、アジャイル開発はそのプロジェクト全体を通じて継続的な改善と進化を促進します。この相互作用によって、プロジェクト全体の品質と効率が向上します。理由4)コスト効率ラボ型開発は長期間にわたるプロジェクトであればコスト効率が良く、アジャイル開発では短期間で具体的な成果を出すことが可能です。これらの組み合わせは、コスト効率の良いプロジェクト運営を実現します。以上の理由から、「ラボ型開発」と「アジャイル開発」は相性が良いと言われています。「アジャイル開発」と「ウォーターフォール開発」の違いは?「アジャイル開発」と比較して語られるのが、従来よく用いられていた開発手法のひとつである「ウォーターフォール開発」です。「ウォーターフォール開発」では、開発プロセス全体を複数工程に分割し、時系列に沿って各工程の開発を順番に進めていきます。前述したように、「アジャイル開発」が機能単位で小さなサイクルを繰り返すのに対し、「ウォーターフォール開発」は、何を作るかの全体像を決め、全体を設計してから開発し、一つのフェーズが終了してから次のフェーズが始まります。具体例で説明します。例えば、機能A、機能B、機能Cを実装したシステムを開発する場合、「アジャイル開発」では、まず機能Aを「計画→設計→実装→テスト」という工程で開発、次に機能Bを「計画→設計→実装→テスト」という工程で開発、機能Cも同じように開発するというように、機能単位で開発していきます。これに対して「ウォーターフォール開発」では、機能A、機能B、機能Cの計画を同時に行い、次に機能A、機能B、機能Cの設計を行い、同じように実装、テスト、といった具合に開発を進めていきます。「アジャイル開発」のメリット - アジャイル開発の強み4点を解説「アジャイル開発」のメリットを4つ紹介します。メリット1)不具合があったときに戻る工程が少ない「アジャイル開発」は機能単位で開発を進めるため、不具合が起こった時に、戻る工程や修正にかかる工数が少なく済みます。メリット2)開発途中の仕様変更に柔軟に対応できる「アジャイル開発」は、従来よく用いられていた「ウォーターフォール開発」のデメリットだった「開発途中での仕様変更がしにくい点を改善する目的で生まれた開発手法」であり、仕様を変に柔軟に対応することが出来ます。メリット3)ユーザビリティが向上する「アジャイル開発」はその特性上、開発工程で何度もリリースとテストが行われます。そのたびに委託元やテストユーザーからの意見を取り入れることが可能なため、システムやソフトウェアにユーザーの意見を取り入れながら開発を進めることが出来ます。その結果、よりユーザビリティの高いシステムやソフトウェアを完成させることが出来るのです。メリット4)チームワークが向上する「アジャイル開発」は基本的に小さなチームで作業を行うため、メンバー間のコミュニケーションがスムーズに行え、効率的な作業が可能となります。しかし、デメリットも存在します。アジャイル開発はフレキシブルですが、その分、計画性が低下する可能性があります。また、適切なフィードバックが得られないと、開発が方向性を見失う恐れもあります。また、経験豊富なリーダーが必要となるため、人材の確保に難しさがあります。「アジャイル開発」のデメリット - 注意すべき3点を解説「アジャイル開発」は高い柔軟性とスピードを持つ開発手法ですが、一方でデメリットも存在します。「アジャイル開発」のデメリットを3つ紹介します。デメリット1)計画性に欠ける「アジャイル開発」では、開発が進行するにつれて要件が変わることが多々あるため、開始時点での完全な計画立案が困難です。開発チームは日々ミーティングを行うので、短いスパンでのスケジュール管理や進捗状態は把握しやすい一方、開発全体のスケジュールをイメージしたり、進捗状態を把握するのは困難な傾向にあります。また、何度も仕様変更が起きた場合、リリースまでのスケジュールがズレる可能性もあります。その結果、当初予定していたリリース日に間に合わなかったり、予算オーバーとなったりする恐れがあります。デメリット2)方向性がブレやすい「アジャイル開発」では機能単位での仕様変更が可能なので、これを繰り返すうちに、プロジェクト全体の方向性がブレやすくなります。また、委託元の正しい要求が導き出せないままプロジェクトが進行し、場当たり的な開発に陥ってしまう懸念もあります。デメリット3)コミュニケーション能力が必須「アジャイル開発」では、常にプロジェクトメンバー間がミーティングを繰り返し、コミュニケーションをとることが重要となるため、メンバーの技術レベルやコミュニケーション能力が均一でないと、プロジェクト全体の進行が難しくなる可能性があります。「アジャイル開発」の種類「アジャイル開発」には、複数の種類が存在します。今回は主な6つを紹介します。1)スクラム「スクラム」はラグビーのスクラムのように、少人数のチームが密接にコミュニケーションを取り、連携しながら開発していく手法です。この開発手法では、短期間で開発・テスト・リリースを行うので、開発プロジェクト全体が見通しやすくなります。ただし「スクラム」では、毎日のミーティングで状況を事細かに共有するほか、開発における意思決定も基本的にチーム内で行うので、メンバー一人一人のコミュニケーション能力が重要となります。2)カンバン「カンバン」は、タスクの進行状況を可視化することで、管理しやすく、流れをスムーズにする開発手法です。この手法では、To Do・進行中・完了というような、わかりやすい3つのエリアを用意し、各タスクを状況に合わせて配置します。このエリアは物理的なボード(黒板など)でも、ITツールでも構いません。「進行中」のタスクが完了したら「完了」に移動させるまど、進行状況を可視化することで、各タスクの状況が、一目見て素早く把握できます。3)エクストリーム・プログラミング(XP)「エクストリーム・プログラミング(XP)」は、要件が変化することを前提にして、その変化に柔軟に対応できるフレキシブルな開発手法です。開発の初期段階では綿密な計画を立ず、委託元の要望をこまめにヒアリングしながら開発を進め、動作するソフトウェアを頻繁にリリースするのが特徴です。4)ユーザー機能駆動開発(FDD)「ユーザー機能駆動開発(FDD)」は、顧客・ユーザーが必要としている機能に焦点を当てて開発する手法です。この手法ではまず、開発すべき機能を網羅したリストを作成し、それに沿って機能ごとに計画・設計・構築(実装やテスト)を進めていきます。5)リーンソフトウェア開発(LSD)「リーンソフトウェア開発(LSD)」とは、「無駄をなくすこと」を意識した開発手法です。基本的に、明確な定義やプロセスはありませんが、無駄を省いて品質の高い開発を行うことを重視しているのが特徴です。この手法は、もともとは1980年代の日本でトヨタやホンダが取り入れた「リーン生産方式」を、ソフトウェア開発に応用したものです。6)適応型ソフトウェア開発(ASD)「適応型ソフトウェア開発(ASD)」は、仕様変更が継続的に発生することを前提に、それに適応することに重きをおいた手法です。この手法は、思索・協調・学習のサイクルを繰り返しながら開発をすすめることが特徴です。「アジャイル開発」に向いている案件・プロジェクト「アジャイル開発」は、「要件の全体像がはっきりしていないプロジェクト」や「変更の多いプロジェクト」に適しています。なぜなら、全体像が決まっていない状態でも必要な機能から開発に着手でき、途中で要件の変更があっても、柔軟に対応できるからです。具体的には、新しい技術やビジネスモデルを試したいスタートアップ企業や、デジタルトランスフォーメーション(DX)を進める企業において有効です。また、「アプリケーション」「Web関連サービス」「ゲーム」関係の開発などにも向いている場合が多いです。もちろん「アジャイル開発」は全てのプロジェクトに適しているわけではなく、長期間にわたる大規模なプロジェクトや、詳細な設計が必要なプロジェクトでは、前述した「ウォーターフォール開発」の方が適している場合もあります。「アジャイル開発」を成功させ、最大限のメリットを享受するには、プロジェクトがアジャイル開発に向いているかどうかを見極めることが重要です。日本国内での、アジャイル開発の成功事例を紹介株式会社デンソー自動車部品メーカーである株式会社デンソーは、早くからアジャイル開発に取り組んでいる企業として有名です。デンソーは「フリートオペレーションサービス mobi-Crews」をアジャイル開発によって開発しました。サービスは2019年にリリースされ、開発自体は2018年の事例です。ペイパルジャパン株式会社(PayPal)「アジャイル開発」を導入したPayPalは、生産性が約29%向上し、開発チームの規模も8%縮小されました。また、導入前までは企業の成長スピードに開発のプロセスが追いついておらず、スピーディーな開発が求められていましたが、「アジャイル開発」を取り入れたことで、生産性の向上につながりました。KDDIKDDI は、アジャイル開発手法やサービスデザインの実践知に基づいたプロセスを用いて、本質的な価値の追求をパートナーと共に行う共創事業を提供する「KDDIアジャイル開発センター株式会社」を設立しました。KDDIアジャイル開発センターの具体的な事例として、「空間自在ワークプレイス」というプロジェクトがあります。これは離れた拠点間をつなぎ、バーチャルなワークプレイスを構築するソリューションです。大型スクリーンに互いのオフィス空間を実寸に近い4K画質の画像で投影し、スクリーン越しに2つの空間がリアルにつながっているような視覚効果が生まれます。このプロジェクトは、KDDIアジャイル開発センターが提供する「サービスデザイン」「アジャイル開発」「クラウドネイティブ」の3つの要素を活用しています。これにより、ユーザーは物理的な距離を超えてコラボレーションを行うことが可能となり、新たな働き方を実現しています。「アジャイル開発」の導入を考えている企業が、開発会社を選ぶポイント「アジャイル開発」を導入を検討している企業が開発会社を選ぶ際、以下のポイントに気を付けるといいでしょう。1)その会社が「アジャイル開発」の精神を理解し、体現しているかどうかアジャイル開発は「変化を歓迎する」ことをコンセプトに掲げていますから、その柔軟性とスピード感を持った開発体制を持つ企業を選ぶことが肝心です。2)アジャイル開発の経験と実績、ノウハウがあるか選んだ開発会社の過去の実績などを予め調べておくことで、蓋を開けたらアジャイル開発に精通していなかった、などの事態を未然に防ぐことが出来ます。選び方に迷ったら、導入を成功させた企業の事例を参考にするのがおすすめです。3)柔軟な対応力と迅速なフィードバックがあるか「アジャイル開発」は全体像がはっきりしていないプロジェクトに適した開発手法であり、当初とは違う要件に変更することも多々あります。その変更に柔軟に対応し、さらに、細かなフィードバックを行ってくれる会社を選びましょう。4)コミュニケーションが円滑か「アジャイル開発」では、コミュニケーションが非常に重要なキーワードです。良好なコミュニケーション体制が整っていなければ、アジャイル開発のメリットが十分に生かせないので、委託元と開発会社、また開発チーム内部でしっかり意思の疎通ができる会社を選びましょう。SES契約(準委任契約)とは?アジャイル開発との相性は? SES契約(準委任契約)とは?SES契約(準委任契約)とは、成果物を提供するのではなく、委託元のシステム開発・ソフトウェア開発・インフラ環境構築などを行うために客先に常駐して、ITエンジニアとして「技術的なサービス」を提供する契約形態です。このSES契約(準委任契約)と「アジャイル開発」との相性は良好です。なぜなら、アジャイル開発は迅速なフィードバックと変更への対応を重視する開発手法であり、SES契約の一時的な人材活用と相まって柔軟な開発体制を形成することが可能だからです。しかし、SES契約にもデメリットもあります。SES契約による人材は一時的であるため、プロジェクトの長期的な視点や専門知識が欠ける可能性があります。また、アジャイル開発は密なコミュニケーションを必要とするため、外部のSES人材とのコミュニケーションが不足するとプロジェクトの進行が滞る可能性があります。そのため、SES契約(準委任契約)と「アジャイル開発」に適しているのは、一時的に人材を借り入れ、アジャイル開発の柔軟性を活かすような、短期間でのプロジェクトが適していると考えられています。まとめ今回は、「ラボ型開発」と相性の良い「アジャイル開発」について、メリット・デメリットと適用例・成功事例を紹介しました。ラボ型開発とアジャイル開発は、共に変化に対応する強さを持つ開発手法であり、両者は相性の良い開発手法と言えます。もちろん、これらの手法にはデメリットもあるので、適用する際にはチームのコミュニケーション、透明性、柔軟性が重要となりますが、国内・海外問わず、多くの企業がアジャイル開発を用いることで、期待を超える成果を達成しています。オフショア・ニアショアと開発体制を検討される中で、アジャイル開発という一手を是非検討ください。