🤽‍♀️

主流なチーム開発手法2つについて考えてみる

2021/02/16に公開

先日からチーム(とは言っても2人)でアプリの開発を始めたのですが、その中で個人開発にはない難しさを感じました。チーム開発ではどんな手法が主流なのかなと思い調べてみると、ある2つの手法が浮かんできたのでそれらがどんなものなのか言語化しておきます。

アジャイル型開発

アジャイル型開発とは、一度にまとめて開発を進めるのではなく、少しずつ確認をはさみながら進めていく手法です。利用者の反応や、関係者からの継続的なレビューを得ながら、計画を調整しつつ進めて行きます。

ウォーターフォール型開発

ウォーターフォール型開発とは、初めに決めた要件を期限までに完成させる手法です。ビジネスにおいては、契約 → 開発 → 納品 でフローが完了します。

メリット・デメリット

この2つの開発手法には、それぞれメリットとデメリットがありそうです。

開発手法 アジャイル型 ウォーターフォール型
メリット 手直しが簡単で仕様変更に対応可能 計画がシンプルで、進捗が管理しやすい
デメリット 進捗が把握しづらい 仕様変更に対応が難しい

こんな時はこの手法

最終的な要件がはっきりしていない場合 >> アジャイル

最小限の機能でプロダクトをリリースし、それ以外の残りの仕様は追々決めていくようなプロジェクトにはアジャイル型開発が向いていそう。必要な機能と任意の機能がある場合には"手直しが簡単で仕様変更に対応可能"というメリットを活かすことができそうです。

後々開発の優先度が変わりうる場合 >> アジャイル

状況に応じて仕様変更が予測されるプロジェクトにもアジャイル型開発は良さそう。アジャイルでは1〜4週間がサイクルとされているので、そのサイクル内で完成したものをユーザーに届けることができます。詳細まで時間をかけて完全体まで持っていくというよりかは、実際にある程度のレベルまで作成したらあとは改善点を探していくスタンスを取ることで、より速く開発を進めることができます。

要件が明確に決まっている場合 >> ウォーターフォール

明確に要件定義か固まっている場合には、仕様にそって開発を進めれば良いのでウォーターフォール型開発が良さそうです。メンバーの役割を明確に決めることで、効率的な開発に導けます。

大規模なアプリ開発の場合 >> ウォーターフォール

大規模なアプリ開発のようにたくさんのメンバーが関わるプロジェクトの場合、それぞれの役割を明確に決めることのできるウォーターフォール型開発の方が向いています。役割分担と期間を明確に決めることで、開発計画に沿ったスケジュール管理が簡単になります。

Discussion