オフショア開発, オフショア開発の基本, 失敗しないオフショア開発

オフショア開発でアジャイル開発を行うポイント -アジャイル開発とは-

92 View

オフショア開発でアジャイル開発を行うポイント

こんにちは、オフラボの花井です。

近年、システム開発では柔軟な開発を行うことができるアジャイル開発が主流になっています。
オフショア開発でも、アジャイル開発が可能なオフショア開発会社も少なくありません。

この記事では、オフショア開発でアジャイル開発を行うポイントについて説明していきます。

この記事は以下の3部構成です。

 

  1. アジャイル開発について
    アジャイル開発の特徴やメリットなどを説明します。

  2. オフショア開発のアジャイル開発のポイント
    オフショア開発でアジャイル開発を行うときのポイントについて説明します。

  3. アジャイル開発に強いオフショア開発会社の探し方・選び方
    アジャイル開発に強いオフショア開発会社の探し方について説明します。

 

アジャイル開発とは?

アジャイル開発とはなんでしょうか?

アジャイル開発は、システムやソフトウェア開発におけるプロジェクト開発手法のひとつで、大きな単位でシステムを区切ることなく、小単位で実装とテストを繰り返して開発を進めていきます。

従来の開発手法に比べて開発期間が短縮されるため、アジャイル(素早い)と呼ばれています。

アジャイル開発(アジャイルソフトウェア開発)は現在主流になっているシステムやソフトウェアの開発手法の1つで、

「計画→設計→開発→テスト→リリース」といった開発工程を機能単位の小さいサイクルで繰り返すのが最大の特徴。

分かりずらいですが、画像にするとイメージが掴みやすいです。

 

このように

  • 計画

  • 設計

  • 開発

  • テスト

  • リリース

を一つのサイクルとしているため、ウォーターフォール開発に比べ、機能実装のスケジュールや内容を変更しやすいため、柔軟性のある開発が可能です。

この一つのサイクルをスプリントと言います。

 

アジャイル開発のメリット

アジャイル開発のメリットは、柔軟な開発を行うことが出来ること。

顧客の反応を見ながら、または調査をしながら開発内容や開発の優先順位を変えて、顧客に求められるプロダクトを作ることが出来ます。

 

アジャイル開発のデメリット

アジャイル開発は、開発体制の仕組み、情報共有の方法、チームメンバーのスキルや経験によって大きくパフォーマンスが上下する特徴があります。

そのため、アジャイル開発で高いパフォーマンスを出すことは簡単ではありません。

また、プロジェクト情報を共有するためのコミュニケーションコストは高くなります。

 

アジャイル開発に向いているプロジェクト

開発スケジュールや内容が変わりやすいプロジェクトはアジャイル開発にオススメです。

 

 

ウォーターフォール開発とは

アジャイル開発と対比して説明されることが多い開発手法はウォーターフォール開発です。

ウォーターフォール開発とは

ウォーターフォールフォール開発とは、ウォーターフォール開発はシステムやソフトウェアの開発で用いられる、開発手法の一つです。ウォーターフォール(Waterfall)は英語で「滝」を意味します。その言葉通り滝のように上から下へ、つまり上流工程から下流工程へと順番に開発が進められていく開発手法です。

簡単に言うと、最初に何を作るかしっかりと決めたドキュメントを作成し、そのドキュメント通りに開発を行う手法です。

 

オフショア開発, アジャイル, ウォーターフォール

最初に決めたドキュメントの通りに、開発を進めます。

ウォータフォール開発のメリット

ウォータフォール開発では、最初に決めたドキュメント通りにデザインや開発などを行うため、アジャイル開発に比べ計画通りにリリースまで進めることができます。

また、工数などを予測しやすいため、人員確保や予算の予測がしやすい開発手法になります。

ウォータフォール開発のデメリット

アジャイル開発に比べ、柔軟性の低い開発手法になります。
途中で、開発内容に変更があった場合、多くの変更を行う必要があります

ウォータフォール開発に向いているプロジェクト

作りたいプロダクトやリリースの予定が決まっているプロダクトにウォーターフォール開発は向いているといえます。

 

アジャイル開発を成功させるポイント

前述したようにアジャイル開発では

スプリントを正確に早く回すことがアジャイル開発を行う上で重要になります。

スプリントを正確に早く回すためには

 

  1. 各ポジジョンのメンバーの役割

  2. 情報の共有と整理の円滑化

 

が非常に大切です。

各役割のメンバーが業務を正確に円滑に行う必要があります。

 

アジャイル開発に関連するポジション

主にアジャイル開発には、

  1. ビジネス層
    要件を決める役割
    ex) プロダクトオーナー

  2. マネジメント層
    スケジュールやタスクの振り分け、ドキュメント作成などを行う役割
    ex) プロジェクトマネージャー、開発責任者

  3. 開発層
    実際にプロダクトを作る役割
    ex) 開発者やデザイナー、テスター

などがあります。

 

オフショア開発, 開発ポジション

 

情報の共有と整理の円滑化

アジャイル開発のスプリントでは、

  • 計画

  • 設計

  • 開発

  • テスト

  • リリース

がありました。

 

オフショア開発, 見積もり

 

情報の共有と整理の円滑化には

  • スプリント全体の情報

  • スプリント内の各業務

の整理と円滑化が必要です。

 

スプリント全体の情報の整理と円滑化

スプリント全体の情報の整理と円滑化とは、チーム内での情報共有の方法を円滑にすることです。

  • ドキュメントのルール化、整理

  • スケジュール管理の方法

  • タスクの粒度やアサイン状況

など細かい内容を挙げればキリがありません。

 

スプリント内の各業務の整理と円滑化

スプリントの各業務を整理して、円滑にすることで、スプリントのパフォーマンスを上げることが出来ます。

 

  • 計画設計
    ビジネス層とマネジメント層でスプリントで行う開発要件やスケジュール、タスクを決めていきます

  • 開発
    マネジメント層と開発層で協議をして、タスクの注意点やスケジュール、開発ロジックなどの確認を行います。
    その後、実際に開発を行います。質問や不明点、改善などがあればマネジメント層またはビジネス層に確認をします。

  • テスト
    マネジメント層と開発層で協議をして、テスト内容や実施方法の確認を行います。
    実際にテストを行い、質問や不明点、改善などがあればマネジメント層またはビジネス層に確認をします。

  • リリース
    テストをクリアすれば、リリースを行います。リリースの確定日時やリリース後の対応などビジネス層とマネジメント層で協議をして対応策を決めておきます。

 

それぞれチームやプロジェクトごとに各業務には、パフォーマンスに違いがあります。

そのため、最適な方法があるわけではなく、少しずつチームやプロジェクトに合った方法に改善していくことになります。

 

まとめ

オフショア開発でアジャイル開発を行うために、まずはアジャイル開発のポイントについて説明しました。

関連記事

【オフショア開発失敗事例紹介】 決済サービスの申請トラブル

2022/11/28 オフショア開発の基本 詳しく

【オフショア開発失敗事例】決済システムの申請トラブル

2022/11/24 オフショア開発の基本 詳しく

【オフショア開発失敗事例紹介】テスト後の修正を拒否された事例

2022/11/23 オフショア開発の基本 詳しく

【オフショア開発失敗事例】タスク管理トラブル

2022/11/23 オフショア開発の基本 詳しく

【オフショア開発失敗事例】日本語での情報共有の誤解

2022/11/22 オフショア開発の基本 詳しく