ウォーターフォール

この記事はウォーターフォールについて解説した記事です。会話形式のやさしい文章で「ウォーターフォール」の用語のイメージを紹介した後に、採用に役立つウォーターフォールの知識を解説しています。

1分で分かる!ウォーターフォールとは?

ねぇねぇ、ジャバード先生。システム開発ってどうやって進めているの?

なるほど。システム開発の進め方か。いくつかの開発手法があるんだけど、今日は「ウォーターフォール」という開発の進め方を教えてあげるね。

ウォーターフォール?

水ってさ、上(高いところ)から下(低いところ)へ向かって流れていき、基本的に逆流することはないよね。

うん。当たり前のことだよね…?

そうそう。その当たり前の様子にたとえて「上流から下流へ水が流れるように工程を進めていく開発手法」をウォーターフォール開発って呼んでいるんだ。

なんだかよくわからないなぁ…。

まず、一言でシステム開発といっても、実は様々な作業に分かれることは知っているかな?

たしか、前に要件定義設計製造テスト(結合総合っていうのは教えてもらったよね。

そうそう。その工程を「1つずつ進めていきましょうね」っていうのがウォーターフォールなんだ。

あぁ、そういうことか。わかったようなわからないような…。

つまり、要件定義が完了したら設計へ、設計が完了したらテストへ…といった感じで1つの工程をきっちりと完了させて次工程へ進みましょうねっていう開発手法だね。

なるほど。そういわれると料理も一緒だよね。カレーをつくるときに、具材を切らずに鍋にぶちこんで炒めるなんてことはしないもんね。

いい例えだね。ことりん君がいうように、ちゃんと具材を切る→軽く炒める→水を入れてルーを入れる→煮込むっていう工程を1つずつ進めていかないとおいしいカレーはできないよね。そういう意味では、たしかにウォーターフォールは料理と同じような進め方といってもいいかもしれないね。

じゃあさ、ほぼすべてのプロジェクトはウォーターフォールを採用しているの?

いや、最近はアジャイルという開発手法を採用するプロジェクトが増え始めているね。アジャイルについては、また今度詳しく説明するね。

ふ~ん。いろんな開発手法があるんだね。ちなみにウォーターフォールってどんな特徴があるの?

メリットとしては大規模な開発に向いているという点と、要件が明らかになっているものには最適な開発手法だね。

ふむふむ。

よく「〇万人月のシステム」とか聞くでしょ?ああいった大規模なシステムをアジャイルで開発するのは、ほぼ不可能なんだよ。1つのゴールに向かって多くのメンバーが並行しながら進めることができるのはウォーターフォールの強みといえるだろうね。

なるほど。

あとは開発対象がきちんと確定しているものは、スケジュールも計画しやすいからウォーターフォールが合うんだよ。

でもさ、システム開発って途中でクライアントがわがままいって「これやってくれ」「あれやってくれ」って言われるんでしょ?ウォーターフォールだと対応できなさそうだよね。

いいところに気が付いたね。たしかにウォーターフォールは仕様変更などにはあまり向いていないんだ。

あぁ、やっぱりそうなんだね。

そうそう。ウォーターフォールで仕様変更が発生すると、前の工程に戻る必要がでてくるからね。これは大きな労力を伴うことになるから、きちんと仕様変更のルールを決めたり、場合によっては見送ることも大事になってくるんだよ。

仕様変更には要注意ってことだね。

まぁ実際には仕様変更をすべて断るっていうのも難しいし、できるだけクライアントのやりたいことを実現したいと考えるエンジニアが多いから、そこはプロジェクトマネージャープロジェクトリーダーの腕の見せ所といえるだろうね。

ジャバード先生ありがとう!ウォーターフォールっていう開発手法についてはなんとなく分かった気がするよ!

またいつでも聞いてね!

ウォーターフォールとは?採用に役立つ基礎知識

ウォーターフォールとは、開発手法の1つです。このウォーターフォール型開発とアジャイル型開発を指して、2大開発手法と呼ぶこともあります。

システム開発は、いくつかの工程に分類されます。具体的には下記のとおりです。

要件定義 → 設計(基本設計/詳細設計) → 製造 (プログラミング/単体テスト) → テスト(結合テスト/総合テスト/受入テスト)  →  構築運用・保守

ウォーターフォールは、要件定義がすべて完了したら設計へ、設計がすべて完了したら製造へ…といった具合で開発を進めていきます。また、原則として1つ前の工程へ戻ることは許されていないという特徴があります。

このように上流工程(要件定義/設計)から下流工程(製造/テスト)へ水が流れていくような様子から「ウォーターフォール」と呼ばれるようになったといわれています。

ウォーターフォールに関連するエンジニア

ウォーターフォールに関連するエンジニアは、フロントエンドエンジニアサーバーサイド(バックエンドエンジニア)など、さまざまです。

また、インフラ(サーバー)エンジニアなどといったインフラ系エンジニアもウォーターフォールで開発を進めるケースが多いです。

ウォーターフォールに関連するエンジニアの特徴と在籍業界

ウォーターフォールは日本で最もスタンダードな開発手法です。そのため、ほぼすべてのエンジニアがウォーターフォールによる開発経験があるといっても過言ではないでしょう。

なお、ウォーターフォールは大規模開発や高い品質が求められるシステム開発時に最適な手法です。そのため、SIer業界などにはウォーターフォールでの開発はもちろん、マネジメントに長けたエンジニアが多く在籍しています。

採用する時に知っておくとよいこと

ウォーターフォールは時代遅れ?

前述したとおり、ウォーターフォールとアジャイルは2大開発手法と呼ばれますが、互いによく比較されることが多いです。

そして、一部の有識者?は「アジャイルこそ正義」「ウォーターフォールは時代遅れの手法だ」という主張をしていることもあります。

ただ、ウォーターフォールは現在もなお使われている開発手法であり、使用に値するメリットは十分にあります。

ウォーターフォールで進めているプロジェクトが「悪」ではないという点は、しっかりと認識しておきましょう。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

ウォーターフォールの豆知識

ウォーターフォール関連のイベント

CloudNative Days 

CloudNative Daysは、クラウドネイティブに関する最新事例やナレッジの共有を目的とした大規模なテックカンファレンスです。2021年のイベントでは、Microsoft社、Red Hat社、GMOインターネットグループをはじめ、そうそうたる顔ぶれがスポンサーに名を連ねています。

2021年に開催されたCloudNative Days Tokyo 2021では「クラウドネイティブ時代の大規模ウォーターフォール開発」というセッションも開催されています。

参考:CloudNative Days Tokyo 2021

 

関連記事

  1. Haskell

  2. AtCoder

  3. Bash

  4. ASP.NET

  5. Backlog

  6. カオスエンジニアリング

技術用語一覧


Warning: Undefined array key "show_date" in /home/xs490239/lein.co.jp/public_html/techlab/learning/wp-content/themes/gensen_tcd050/widget/styled_post_list1.php on line 59
  1. UiPath

  2. アジャイル

  3. Alibaba Cloud

  4. REST-API

  5. PowerBI