ソフトウェアの分野でよく聞く、開発手法の種類について

エンジニア就活_開発手法

ソフトウェアの開発分野で開発手法の話題を目にすることがありますよね。しかし、実践の場に立たないと手法の差やメリットデメリットは見えにくいもの。ここでは、就活生に向けて有名な3つの開発手法の特徴をわかりやすくご紹介していきます。あらかじめ知識を持っておくと、就職した際に慌てずに済むかもしれませんね。

1.ウォーターフォールモデル

ウォーターフォールモデルは、システム開発手法の中の基盤となる方法です。

IT分野では長いこと、ウォーターフォールモデルが主流でした。ウォーターフォールモデルを理解しておかないと、他の開発手法は理解できないかもしれません。しっかりと理解するようにしましょう。

ウォーターフォールモデルとは、トップダウンの開発手法です。
「要件定義」→「基本設計」→「詳細設計」→「システム開発」→「システムテスト」→「運用保守の構築」の一連の開発工程を実践し、顧客に納品し、システムをリリースします。リリース後には運用保守のフェーズに移行。すべての工程を上から順番に行っていく流れです。それぞれの担当は、自分の専門分野のみ責任をもち実践していきます。

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

ウォーターフォールモデルのメリットは、プロジェクト管理がしやすいこと、各担当者が専門分野に専念できることです。設計書ベースでの開発になるため、開発がしやすいと言えるでしょう。要件がきっちり固まった案件であれば、ウォーターフォールモデルは理想的な開発手段になります。

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

デメリットは、上流から下流に一方通行の開発手法のため、後戻りがしにくいことです。例えば、途中で顧客の要件が変更になった場合には、最初からやり直しになってしまうこと。ボトルネック箇所が発生し、プロジェクトの工程に遅れが出た場合には、下流工程の運用保守構築に負担がかかることです。システムのリリース時期が決定しているため、上流での遅れは下流で調整しなければいけません。

2.アジャイル開発手法

アジャイルソフトウェア開発とは、ウォーターフォールモデルのデメリットを補うための開発手法です。開発手法というよりも概念と考えればいいでしょう。そのため、アジャイルの考えを利用した開発手法は幾つか存在するのです。

アジャイルは、2001年にアメリカの有識者たちが、「アジャイルソフトウェア開発宣言」を行ったことに起因しています。アジャイルの意味は「素早い、身軽な、機敏な、頭の回転が速い」と言うものです。このような手法で開発される手法を総称してアジャイルと呼んでいます。アジャイル開発手法では、優先するべき機能から開発をしていき、そこに付加されるサブシステムができる前から順次リリースしていく手法です。素早い開発とリリースが可能となるでしょう。

代表的なものは、「スクラム」「エクストリームプログラミング」「リーンソフトウェア開発」など。その中でも有名な「スクラム」についてご紹介していきます。

2-1.スクラムについて

スクラムとは、一つのプロジェクトの中で、機能ごとに小さなチーム(4人~9人程度)を作って、開発に関わる全てのことを一つのチームが実践していく手法です。

各チームは、要件定義から、運用保守まですべての一連の作業を実践していくことになります。スクラムでは、開発の迅速さを追求するために、ミーティングはスタンディングで行います。毎日チームごとにミーティングを行い、「昨日から何を行ったのか」「明日までに何をするのか」「障害はないのか」などの報告を行う決まりです。

スクラムでは、3つの役割の人がチームに在籍します。「プロダクトオーナー」「スクラムマスター」「チームメンバー」で構成されるのです。プロダクトオーナーは、クライアントがチームに入ることが理想とされています。毎日のミーティングで要件とのズレがないことがチェックできるメリットがあるから。スクラムマスターはチームのマネージメントを行います。チームメンバーは個々に与えられた開発を実践するメンバーです。スクラムは、アジャイルの中でも、マネージメントに特化した手法のため、他の開発手法と組み合わせることによって、効率よく開発が進められることになります。

2-2.アジャイル開発手法のメリット

アジャイルでは、ウォーターフォールのように、トップダウンの手法ではないため、開発途中の予期せぬ要件変更にも柔軟に対応することができます。また、開発要件を機能ごとに小分けにすることによって、同時進行で開発業務が進められ、結果的に短いスパンでプロジェクトを遂行できるメリットがあるのです。加えて、優先的な機能から順次リリースできるため、機能が十分でなかったとしても、早期段階でシステムの利用が可能になります。

2-3.アジャイル開発手法のデメリット

アジャイル開発手法では、基本的に全ての開発で発生する業務を一つのチームが担っています。そのため、要件定義や開発業務、システムテスト、運用保守まで幅広い知識が必要となり、個人の技量が問われます。人材の確保が難しいケースもあるでしょう。各チームはプロジェクト全体の整合性を取りながら進める必要があるため、進捗管理がウォーターフォールと比較すると難しいかもしれません。また、後続の機能のリリース前に要件変更が発生した際には、すでにリリース済みのメイン機能に影響が発生する恐れがあることです。

3.スパイラルモデル

スパイラルモデルとは、ウォーターフォールモデルとアジャイルのメリットを取り入れた開発手法です。ウォーターフォールモデルの開発工程毎にプロトタイプ(試作品のこと)の提示をクライアントに行う方法。プロトタイプを提示することで、顧客に対して間違いのない要件の確認が可能となっています。アジャイルと組み合わせて、機能ごとに開発していく方法が取られることも。螺旋のように昇華していく手法のためスパイラルモデルと名付きました。

3-1. スパイラルモデルのメリット

スパイラルモデルのメリットは、各段階でクライアントと要件チェックができることでしょう。つまりは、ユーザの希望のシステム開発ができることです。後から要件変更が発生しにくく、プロジェクト全体のスケジュールがずれる可能性は低いのです。

3-2. スパイラルモデルのデメリット

スパイラルモデルでは、何度も、工程毎にプロトタイプを提示して要件をチェックしていくため、ユーザーに要件変更の機会を与えてしまうことがデメリットです。各プロジェクトでは予算と人員のリソースが限られています。場合によっては経営に関わる事態に発生する危険性があると言えるでしょう。また、工程毎にプロトタイプを提示する工数(作業時間)も発生することもデメリット。スパイラルモデルを取り入れる場合には最初の段階でプロトタイプを提示する回数を明確にし、その工数を含めた開発見積もりとスケジューリングを行う必要があります。

まとめ

代表的な開発手法をご紹介しましたが、2017年現在で、多くの開発現場で採用されている手法はアジャイル開発手法です。その中にスパイラルモデルを取り込んでいくケースもあります。しかし、ウォーターフォールモデルは開発手法の基礎となる考えですから、しっかりと理解しておくといいでしょう。開発の手順がわかるはずです。

おすすめの記事