この記事のポイント
- ソフトウェア開発手法には「ウォーターフォール」「アジャイル」「スパイラル」の3つが代表的です。
- 要件が固まっているならウォーターフォール、柔軟な対応が必要ならアジャイルが向いています。
- 現在の開発現場ではアジャイルが主流で、DevOpsや生成AI活用との組み合わせも広がっています。
ITエンジニアを目指す就活生へ
エンジニア就活に無料登録しよう
未公開求人の紹介や個別相談も、すべて無料で活用できます。
ソフトウェアの開発分野で開発手法の話題を目にすることがありますよね。しかし、実践の場に立たないと手法の差やメリットデメリットは見えにくいもの。ここでは、就活生に向けて有名な3つの開発手法の特徴をわかりやすくご紹介していきます。あらかじめ知識を持っておくと、就職した際に慌てずに済むかもしれませんね。
1.ウォーターフォールモデル
ウォーターフォールモデルは、システム開発手法の中の基盤となる方法です。
IT分野では長いこと、ウォーターフォールモデルが主流でした。ウォーターフォールモデルを理解しておかないと、他の開発手法は理解できないかもしれません。しっかりと理解するようにしましょう。
ウォーターフォールモデルとは、トップダウンの開発手法です。
「要件定義」→「基本設計」→「詳細設計」→「システム開発」→「システムテスト」→「運用保守の構築」の一連の開発工程を実践し、顧客に納品し、システムをリリースします。リリース後には運用保守のフェーズに移行。すべての工程を上から順番に行っていく流れです。それぞれの担当は、自分の専門分野のみ責任をもち実践していきます。
ウォーターフォールモデルのメリット
ウォーターフォールモデルのメリットは、プロジェクト管理がしやすいこと、各担当者が専門分野に専念できることです。設計書ベースでの開発になるため、開発がしやすいと言えるでしょう。要件がきっちり固まった案件であれば、ウォーターフォールモデルは理想的な開発手段になります。
ウォーターフォールモデルのデメリット
デメリットは、上流から下流に一方通行の開発手法のため、後戻りがしにくいことです。例えば、途中で顧客の要件が変更になった場合には、最初からやり直しになってしまうこと。ボトルネック箇所が発生し、プロジェクトの工程に遅れが出た場合には、下流工程の運用保守構築に負担がかかることです。システムのリリース時期が決定しているため、上流での遅れは下流で調整しなければいけません。
2.アジャイル開発手法
アジャイルソフトウェア開発とは、ウォーターフォールモデルのデメリットを補うための開発手法です。開発手法というよりも概念と考えればいいでしょう。そのため、アジャイルの考えを利用した開発手法は幾つか存在するのです。
アジャイルは、2001年にアメリカの有識者たちが、「アジャイルソフトウェア開発宣言」を行ったことに起因しています。アジャイルの意味は「素早い、身軽な、機敏な、頭の回転が速い」と言うものです。このような手法で開発される手法を総称してアジャイルと呼んでいます。アジャイル開発手法では、優先するべき機能から開発をしていき、そこに付加されるサブシステムができる前から順次リリースしていく手法です。素早い開発とリリースが可能となるでしょう。
代表的なものは、「スクラム」「エクストリームプログラミング」「リーンソフトウェア開発」など。その中でも有名な「スクラム」についてご紹介していきます。
2-1.スクラムについて
スクラムとは、一つのプロジェクトの中で、機能ごとに小さなチーム(4人~9人程度)を作って、開発に関わる全てのことを一つのチームが実践していく手法です。
各チームは、要件定義から、運用保守まですべての一連の作業を実践していくことになります。スクラムでは、開発の迅速さを追求するために、ミーティングはスタンディングで行います。毎日チームごとにミーティングを行い、「昨日から何を行ったのか」「明日までに何をするのか」「障害はないのか」などの報告を行う決まりです。
スクラムでは、3つの役割の人がチームに在籍します。「プロダクトオーナー」「スクラムマスター」「チームメンバー」で構成されるのです。プロダクトオーナーは、クライアントがチームに入ることが理想とされています。毎日のミーティングで要件とのズレがないことがチェックできるメリットがあるから。スクラムマスターはチームのマネージメントを行います。チームメンバーは個々に与えられた開発を実践するメンバーです。スクラムは、アジャイルの中でも、マネージメントに特化した手法のため、他の開発手法と組み合わせることによって、効率よく開発が進められることになります。
2-2.アジャイル開発手法のメリット
アジャイルでは、ウォーターフォールのように、トップダウンの手法ではないため、開発途中の予期せぬ要件変更にも柔軟に対応することができます。また、開発要件を機能ごとに小分けにすることによって、同時進行で開発業務が進められ、結果的に短いスパンでプロジェクトを遂行できるメリットがあるのです。加えて、優先的な機能から順次リリースできるため、機能が十分でなかったとしても、早期段階でシステムの利用が可能になります。
2-3.アジャイル開発手法のデメリット
アジャイル開発手法では、基本的に全ての開発で発生する業務を一つのチームが担っています。そのため、要件定義や開発業務、システムテスト、運用保守まで幅広い知識が必要となり、個人の技量が問われます。人材の確保が難しいケースもあるでしょう。各チームはプロジェクト全体の整合性を取りながら進める必要があるため、進捗管理がウォーターフォールと比較すると難しいかもしれません。また、後続の機能のリリース前に要件変更が発生した際には、すでにリリース済みのメイン機能に影響が発生する恐れがあることです。
3.スパイラルモデル
スパイラルモデルとは、ウォーターフォールモデルとアジャイルのメリットを取り入れた開発手法です。ウォーターフォールモデルの開発工程毎にプロトタイプ(試作品のこと)の提示をクライアントに行う方法。プロトタイプを提示することで、顧客に対して間違いのない要件の確認が可能となっています。アジャイルと組み合わせて、機能ごとに開発していく方法が取られることも。螺旋のように昇華していく手法のためスパイラルモデルと名付きました。
3-1. スパイラルモデルのメリット
スパイラルモデルのメリットは、各段階でクライアントと要件チェックができることでしょう。つまりは、ユーザの希望のシステム開発ができることです。後から要件変更が発生しにくく、プロジェクト全体のスケジュールがずれる可能性は低いのです。
3-2. スパイラルモデルのデメリット
スパイラルモデルでは、何度も、工程毎にプロトタイプを提示して要件をチェックしていくため、ユーザーに要件変更の機会を与えてしまうことがデメリットです。各プロジェクトでは予算と人員のリソースが限られています。場合によっては経営に関わる事態に発生する危険性があると言えるでしょう。また、工程毎にプロトタイプを提示する工数(作業時間)も発生することもデメリット。スパイラルモデルを取り入れる場合には最初の段階でプロトタイプを提示する回数を明確にし、その工数を含めた開発見積もりとスケジューリングを行う必要があります。
まとめ
現在も多くの開発現場で採用されている手法はアジャイル開発手法です。近年はDevOps(開発と運用を一体化して継続的にリリースする考え方)やCI/CD(継続的インテグレーション・継続的デリバリー)との組み合わせも一般的になっています。また生成AI(文章・コード・設計書などを自動生成するAI技術)を活用した開発支援ツールの普及により、アジャイル開発の速度はさらに高まっています。スパイラルモデルを取り込むケースも引き続きありますが、ウォーターフォールモデルは開発手法の基礎となる考えですから、しっかりと理解しておくといいでしょう。開発の手順がわかるはずです。
よくある質問
Q. ウォーターフォールとアジャイルはどう使い分ければよいですか?
要件が最初からきっちり固まっているプロジェクトにはウォーターフォールが向いています。一方、要件変更が発生しやすいプロジェクトや早期リリースが求められる場合はアジャイルが適しています。
Q. 就活生がソフトウェア開発手法を学ぶ必要はありますか?
入社後に開発現場で使われる言葉や進め方を事前に知っておくと、現場への適応がスムーズになります。特にアジャイル・スクラムは多くの企業で採用されているため、概念だけでも理解しておくと有利です。
Q. スクラムとアジャイルの違いは何ですか?
アジャイルは「素早く柔軟に開発する」という概念の総称で、スクラムはその中の一つの具体的な手法です。スクラムはチーム構成や毎日のミーティングなど、マネジメントに特化した仕組みが特徴です。
ITエンジニアを目指す就活生へ
エンジニア就活に無料登録しよう
未公開求人の紹介や個別相談も、すべて無料で活用できます。
編集後記
特にアジャイルやスクラムは多くの企業で使われているので、ぜひこの機会に理解を深めておいてください。
編集者
エンジニア就活
ITエンジニアを目指す就活生に向けて、求人情報・選考ノウハウ・業界研究など実践的なコンテンツを届けています。
就活生の疑問や不安に寄り添いながら、日々コンテンツを更新しています。









![[就活イベント]1日完結。現場のプロエンジニアのサポートのもと、SQLiteを学ぼう](https://d27vb9sappzlhp.cloudfront.net/wp-content/uploads/2014/09/engineer-shukatu-064-200x125.png)
![[就活イベント]1日完結。現場のプロエンジニアのサポートのもと、Titanium Mobileを使ってiPhoneアプリを作ろう](https://d27vb9sappzlhp.cloudfront.net/wp-content/uploads/2014/06/engineer-shukatu-020-200x125.png)