プロジェクト開発手法を解説:ウォーターフォール、アジャイル、MVPの特徴

プロジェクト開発手法を徹底解説:ウォーターフォール、アジャイル、MVPの特徴
◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。SBOMを全く知らない人から、開発との統合までを紹介するので様々なレベルの方に学びがあるライブとなる予定です!
https://tech-lab.connpass.com/event/321422/

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!
https://tech-lab.connpass.com/event/319077/

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!
https://tech-lab.connpass.com/event/319532/

このブログでは、プロジェクトの開発手法(ウォーターフォール、アジャイル、MVP)について詳しく解説します。各手法の特徴、メリット、デメリット、向いているプロジェクトの種類について学んでいきましょう。

ご挨拶

皆さん、こんにちは!龍です。長らくブログの更新を休んでいましたが、今回は久しぶりに執筆をしています。YouTubeへの出演など、ブログ以外の活動も行っていますが、常に学び続けて良いブログを書くための知識を深めています。

今回は『プロジェクトの開発手法』について解説します。X(旧:Twitter)などで話題になることもありますね。業務を通じて得たプロジェクト進行に関する体験をもとに、所感を交えながら執筆していきます。こちらの解説をベースに「DevOps」の解説を進めていきます。DevOpsの記事はこちらです。

プロジェクトの進め方

開発手法をまとめてみます。具体的には「ウォーターフォール」「アジャイル開発」「MVP開発」について説明します。

ウォーターフォール開発

ウォーターフォール開発は、「要件定義」から「リリース」まで上流から下流まで順番に進めていく手法です。一つ一つのステップが終了するごとに次の工程に進むため、要件定義や設計が進まなければアプリケーション開発に入ることができません。各フェーズに対する理解が深まるため、各ステップの重要性が際立ちます。

- 「要件定義」から「リリース」まで上流から下流まで順番に進める - 前の工程に問題が発生した場合、手戻りの影響が大きい - 上流工程の品質を担保する必要がある
– 「要件定義」から「リリース」まで上流から下流まで順番に進める
– 前の工程に問題が発生した場合、手戻りの影響が大きい
– 上流工程の品質を担保する必要がある

メリット

  • 各フェーズごとに分担して開発
  • スケジュールの管理がしやすい

理想的な状態(バグもなければ、仕様変更もない)では、スケジュールの管理がしやすいプロジェクト手法です。

デメリット

  • 仕様変更が発生した場合の影響が大きい
  • すべての要件を考慮する必要がある

上流から下流までのすべてのステップがつながっているため、一つのステップが遅れることで「手戻り」としてスケジュールに影響します。仕様変更や要件漏れが発生するたびに影響が大きくなります。

向いているプロジェクト

ウォーターフォール向きなプロジェクトは、比較的要件が定まっているシステムです。

アジャイル開発

アジャイル開発は、「設計」から「リリース」までを1サイクルとして、短いスパンで繰り返すことで機能を開発する手法です。実装したい機能を細分化してサイクルに当てはめていきます。要件定義はサイクルごとに行い、サイクルの終了ごとにリリースが行われるため、頻繁なリリースが発生します。最終的なゴール(製品)に向かってマイルストーン(小さな機能)を設定しながら進む開発手法です。

- 「要件定義」を行い、機能ごとの小さな開発サイクルで開発する - 「設計」を機能ごとに行うため、急な仕様変更に対応できる - すべての機能開発が終了せずに基本機能のみ開発が終了すればリリースできる - 頻繁なリリースによって迅速な機能追加・変更が可能
– 「要件定義」を行い、機能ごとの小さな開発サイクルで開発する
– 「設計」を機能ごとに行うため、急な仕様変更に対応できる
– すべての機能開発が終了せずに基本機能のみ開発が終了すればリリースできる
– 頻繁なリリースによって迅速な機能追加・変更が可能

メリット

  • 仕様変更に柔軟に対応できる
  • リリースの頻度が高く、高い開発スピード

機能ごとに「要件定義」を実施するため、柔軟に仕様変更に対応できます。それすなわち、フィードバックを取り込みやすくなるということでもあります。

デメリット

  • メンバー全員に設計からテストのスキルが必要
  • スケジュール管理が難しい

スケジュール管理が複雑になる点です。僕が知っている手法では、1サイクルを2週間と設定してアジャイル開発を行っていました。1サイクルの中で対応する機能を適切に分割する必要があります。適切に分割されていない場合、サイクル内に対応できなかったり、予定よりも多い時間を投入したりといった事態が発生します。アジャイル開発を実施するには、アジャイル開発の手法に対する知識が必要です。

向いているプロジェクト

アジャイル向きなプロジェクトは、機能を細分化して実装できるシステムです。比較的に仕様の決定権がチームと近い位置にあるプロジェクト、自社サービスなどが向いています。

MVP(Minimum Viable Product)

MVPは「アジャイル」と混同されがちな開発手法です。実際に僕も勘違いしていました。

MVPは、リリースごとに目的をはっきりとさせて実装していく手法です。「アジャイル」や「ウォーターフォール」では機能のリリースに注目しますが、「MVP」ではリリース後のフィードバックを取り込んでプロジェクトを成長させることに注目しています。

- 必要最小限の機能を持ったプロダクトを開発する - 顧客からのフィードバックをもとに機能を追加して開発を進める - 開発からリリースまでのスパンが短い

以下のようなイメージで進めます。

Ver目的成果物
1甘いものクッキー
2柔らかい甘いもの薄いパンケーキ
3柔らかく、ホイップクリームがのっている甘いものベルベットケーキ
4柔らかく、ホイップクリームと果物がのっている甘いもの豪華なパンケーキ

最初に「甘いもの」の最小限の要望で「クッキー」を作りました。その後、フィードバックを受けながら最終的に「豪華なパンケーキ」にたどりつきました。フィードバックを取り込みながら開発を進めるのが「MVP開発」の最大の特徴です。

メリット

  • フィードバックを開発に取り込みやすい
  • リリースの頻度が高く、高い開発スピード

デメリット

  • フィードバックの分析や解析の知識が必要
  • スケジュール管理が難しい

大規模な開発には適応が難しい点が挙げられます。

プロジェクトの目的が明確に決まっていない場合、フィードバックの選択によって当初想定していたプロジェクトとは異なるプロジェクトになる可能性があります。

向いているプロジェクト

フィードバックをもとに取り込むため、比較的小さなプロジェクトや仕様が決まっていない(プロトタイプ)開発に適しています。

実際に「MVP開発」に取り組んで学んだ観点ですが、プロジェクトの目的を忘れてはなりません。「フィードバック」が大きな要素となります。どのフィードバックを機能として盛り込むのかは、プロジェクトの目的と照らし合わせながら判断する必要があります。目的がぶれると、作成段階でまったく異なるアプリケーションになる可能性があります。

比較

どの開発手法が良いかはプロジェクトごとに判断する必要があります。ここでは、メリットとデメリットを列

挙し、所感を交えながらどのようなプロジェクトに向いているかを述べます。

- ウォーターフォール - メリット - 各フェーズごとに分担して開発 - スケジュールの管理がしやすい - デメリット - 仕様変更が発生した場合の影響が大きい - すべての要件を考慮する必要がある - 向いているプロジェクト - 比較的要件が定まっているシステム - アジャイル - メリット - 仕様変更に柔軟に対応できる - リリースの頻度が高く、高い開発スピード - デメリット - メンバー全員に設計からテストのスキルが必要 - スケジュール管理が難しい - 向いているプロジェクト - 自社サービス - MVP - メリット - フィードバックを開発に取り込みやすい - リリースの頻度が高く、高い開発スピード - デメリット - フィードバックの分析や解析の知識が必要 - スケジュール管理が難しい - 向いているプロジェクト - プロトタイプ - 小さなプロジェクト

どの開発手法を採用するにしても、要件定義はしっかりとする必要があります。「ウォーターフォール」と比較して、他の二つでは高頻度なリリースが想定されます。高頻度なリリースが発生する開発手法では、GitHubを活用したCI/CD環境の構築などが必要です。

おわり

今回の記事をまとめましょう。今回はプロジェクトの開発手法について詳しく見てきました。それぞれの手法には特徴、メリット、デメリットがあり、また、特定の種類のプロジェクトに向いていることを理解することが重要です。

「ウォーターフォール」は一つ一つのステップを順番に進める手法で、要件が比較的決まっているプロジェクトに適しています。「アジャイル」は短いスパンで開発を繰り返す手法で、機能を細分化して実装できるプロジェクトに適しています。そして、「MVP開発」はリリースごとに目的を明確にして実装を進め、フィードバックを取り込むことに焦点を当てた手法で、仕様が決まっていないプロジェクトやプロトタイプ開発に適しています。

それぞれの手法の選択はプロジェクトの具体的な状況や要件によります。適切な手法を選ぶことで、開発の効率性と成功率を高めることができます。

次回のブログでは、DevOpsについて詳しく解説します。DevOpsは開発(Development)と運用(Operations)の統合を目指す考え方で、アジャイル開発やMVP開発など高頻度リリースを支えるための重要な手法です。次回もお楽しみに!

それでは、今回はこれで終わります。ご覧いただきありがとうございました。

アバター画像
About 龍:Ryu 109 Articles
2022年入社で主にフロントエンドの業務でTailwindと遊ぶ日々。お酒とうまいご飯が好きで、運動がちょっと嫌いなエンジニアです。しゃべれるエンジニアを目指しておしゃべりとブログ執筆に注力中(業務もね)//
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる