🔖
ハイブリット開発手法(ウォーターフォール+アジャイル)に挑戦してみた
ハイブリット開発とは?
ハイブリッド開発とは、システム開発における手法である「ウォーターフォール開発」と「アジャイル開発」を組み合わせた手法です。
ウォーターフォール開発は、事前に決めた要件やスケジュールに沿って計画的に開発を進める手法ですが、大規模なシステムにも対応できる反面、開発中に仕様変更しにくい点が弱点でした。
それに対してアジャイル開発は、クライアントのニーズにあわせて柔軟に進められる開発手法です。
臨機応変に開発していけますが、要件が曖昧になりやすいなどの弱点があります。
デメリットを補うために生まれた開発方法が「ハイブリッド開発」で序盤はウォーターフォール開発、中盤はアジャイル開発などのように、工程や時期によって開発方法を組合わせます。
導入きっかけ
開発メンバーが少人数である一方、クライアント関係者が多人数であるため、スクラム開発が難しいと感じました。また、開発はAPI機能のみで、外部システムと連携する必要があるため、プロジェクトの特性上、ハイブリッド開発が適していると思ったためです。
実際に感じたデメリット
- ウォーターフォールとスクラムの境界線を決めるのが難しい
プロジェクトの特性を考慮してウォーターフォールとスクラム開発の境界線を決める必要がありますが、明確なルールがないため判断が難しい - スクラム開発部分は議論ベースで進むため人数に制限がある
5人以上のチームになると議論がまとまりにくく、意思決定に時間がかかってしまうため大人数では不向き
期待されるメリット
ハイブリット開発を始めてまだ浅い(1スプリント目の開発中)のではっきりと記載することができないので一般的に言われているメリットを記載します。
- 柔軟にフィードバックを得られる
アジャイルの特性を活かし、小さなサイクルでの開発を進めることで、早期にプロトタイプを検証環境にリリースするためクライアントからのフィードバックを迅速に反映できる。 - 修正や手戻りが発生しても早い段階で対応可能
ウォーターフォールではテスト期間中やリリース後に手戻りが発生した場合、対応が難しいですが、スクラムを取り入れることで迅速に対応でき、プロジェクト全体の遅延を最小限に抑える
最後に
ハイブリッド開発を始めてまだ浅く、実際に見えていない部分が多くあります。全ての開発が終わったら、改めて感想を書こうと思います。
Discussion