「ウォーターフォール」と「アジャイル」の違いとは?マーケティングとの関係も解説!

ソフトウェアの開発手法としてよく名前が挙がる「ウォーターフォール」と「アジャイル」。
自社で使っているツールの開発手法はどちらで、一体どんな恩恵があるのか……開発手法の名前は聞いたことがあっても、ユーザー目線での実感は難しいのではないでしょうか。

今回はマーケティングツールの開発・運用の双方を自社で手掛けている弊社の特徴を生かし、デベロッパー・オペレーター両者の目線から、「ウォーターフォール」と「アジャイル」の開発手順の違いと、マーケティングの現場におけるメリットを紹介していきます。

「ウォーターフォール」と「アジャイル」の違いとは?

「ウォーターフォール」とは?

「ウォーターフォール」とは?

「ウォーターフォール」を英語で書くと「Water Fall」で、「水が落ちること」「滝」などの意味を持ちます。
システム開発の手引きなどを確認すると、資料によってステップ数やステップごとの中身に差がありますが……

  • ソフトウェアにどんな機能をつけるか? を決める「企画」(要件定義、計画などとも)
  • 企画に基づいて詳細なデザインやシステムの動きの仕様を決める「設計」
  • 仕様通りにソフトウェアを作成していく「実装」
  • できあがったソフトウェアが仕様通りに動くことを確認する「試験」

こういったステップをひとつずつ、順番にこなしていくのがウォーターフォールです。
すべてのステップが完了すると、最後にある程度完成したソフトウェアがお目見えする……ということになっています。

この開発手法は、原則として前の手順に戻らないことから、落ちた水が戻らず一方的に落ちていく様子に例えて「ウォーターフォール」と名づけられました。

このウォーターフォール方式は、開発したいソフトウェアの機能がはっきり決まっている場合に有効な開発手法とされています。それまで属人性の高い職人芸であったソフトウェア開発を、工業的かつ大規模に実行するために、こういった手順が開発されたそうです。

この手法を使っている主な現場のひとつが、あのNASA(アメリカ航空宇宙局)です。
1機ずつロケット(の制御用ソフトウェア)を作って、飛ばして、失敗/成功して……というNASAの仕事を考えると、ウォーターフォール形式は非常に有効な形式だったのではないでしょうか?こういった「ゴールの決まっているソフトウェア」の開発において、ウォーターフォールはとくに力を発揮すると言われています。

「アジャイル」とは?

「アジャイル」とは?

「アジャイル」を英語で書くと「agile」で、「素早い」などの意味を持ちます。
「agile」の名詞形は「agility(アジリティ)」で、敏捷性 · 俊敏性などの意味を持ちます。
もしかしたら名詞形のほうが親しみのある方もおられるかもしれませんね。

こちらもウォーターフォールと同様、システム開発の手引きなどの資料によって、ステップ数などの差がありますが……

  • ソフトウェアにどんな機能をつけるか? を決める「企画」(要件定義、計画などとも)
  • 企画に基づいて詳細なデザインやシステムの動きの仕様を決める「設計」
  • 仕様通りにソフトウェアを作成していく「実装」
  • できあがったソフトウェアが仕様通りに動くことを確認する「試験」

アジャイルはこれらのステップの繰り返しを何度も繰り返し、少しずつシステムを作りこんでいく形式です。この四つのステップのセットを「スプリント」と呼び、アジャイル開発の最小単位とします。

各ステップの説明ですが、あきらかに見覚えがある……と思った方もおられるでしょう。
実はこの各ステップ、名前も説明も基本的にウォーターフォールと同じです。
アジャイルの場合、すべてのステップが完了した時点でできてくる、1スプリントあたりの成果物だけがウォーターフォールと少し異なります。

ウォーターフォールでは先述どおり「ある程度完成したソフトウェア」ができますが、アジャイルではスプリントごとに「基本的に未完成のソフトウェア」がひとつずつできてきます。

「ウォーターフォール」と「アジャイル」の差とは?

「ウォーターフォール」で得られる「ある程度完成したソフトウェア」と、「アジャイル」で得られる「基本的に未完成のソフトウェア」……
なんともあいまいで嫌な言い回しです。

けれども、こういう言い回しをするのには理由があります。

先ほど「ウォーターフォール」の話をした際、ロケットの制御用ソフトウェアを例に出しました。このロケットの制御用ソフトウェアですが、1つ完成したらそれですべて終わりでしょうか? 次のロケットの制御用ソフトウェアはまた1から作るのでしょうか?

おそらくそんなことはないはずです。

失敗したロケットがあれば、次に使うロケットの制御用ソフトウェアは改修されるでしょう。1から制御用ソフトウェアを作るにしても、前回のソフトウェアを作ったときの企画・設計などが流用される場合もあるかと思います。
あのアポロもなんと17号まで飛んでいますからね!

こういったリリースの繰り返しは、「ウォーターフォール」でありながら、「アジャイル」にとてもよく似ています。

逆もまた然りで、「アジャイル」でスプリントを繰り返すうちに、最終的な目標が達成される瞬間が来るかもしれません。そうやって見ると「アジャイル」は「ウォーターフォール」の繰り返しとそっくりです。

最初から完全無欠のソフトウェアを開発できない限り、「ウォーターフォール」と「アジャイル」のふたつに根本的な違いはほとんどありません。最初にどんなに完ぺきな「企画」を立てても、環境が変化する場合があるならなおさらです。
ですので「ウォーターフォール」では「ある程度完成したソフトウェア」が、「アジャイル」では「基本的に未完成のソフトウェア」ができてくる……というあいまいな言い方になってしまうのです。

それでも「ウォーターフォール」と「アジャイル」の明確な差を挙げるなら、ひとつは「期間」の決め方です。

「ウォーターフォール」ではソフトウェアの規模などから工数を算出し、流動的に開発期間を決定します。
「アジャイル」では1スプリントは1週間などと期限を決め、その工数に収まるような開発を繰り返します。

とはいえ現場では「ウォーターフォール」でも納期優先でいったん仮リリースしてしまう場合があります。
逆に「アジャイル」でも大規模なシステムの開発の場合は、複数スプリント分の開発が済んでからリリースを実施する場合があります。

また、ふたつの差として、「開発(デベロッパー)」と「運用(オペレーター)」の連携の近さも挙げられます。

ウォーターフォールの現場と比較して、アジャイルの現場では頻繁に「企画」の工程が行われます。そのため、「アジャイル」では「開発」と「運用」の人間が密に連携して、「運用」からの要望をすぐに反映することできます。

逆に開発・反映させた新しい機能をすぐに「運用」側で試してもらい、次の「企画」に向けたフィードバックをもらうことも可能です。
この「開発」と「運用」の緊密さが「アジャイル」の成功の鍵とも言われています。
「アジャイル」の現場には「Development」と「Operations」をくっつけた「DevOps(デブオプス)」という言葉があるほどです。

もちろん「ウォーターフォール」でも「開発」と「運用」が密に連携できるに越したことはありません。しかしながら「ウォーターフォール」では一旦「企画」を終えてからのちの工程に移る関係上、最初のコミュニケーションに比重が偏りがちになる場合が多いです。

マーケティングプラットフォームの開発現場では

リードプラスはお客様のマーケティングをお手伝いさせていただく以外に、自社でマーケティングに関するシステムの開発を行っています。この開発の現場では「アジャイル」方式を取り入れています。

とくにインターネット広告の現場では、仕様が頻繁に変わること・競合する他社が多いことなどから、継続的な機能強化が可能な「アジャイル」との相性がよいためです。

実際に日々変わっていく媒体の仕様変更をキャッチアップし、対応を実施していくのは至難の業です。弊社ではマーケティングの現場で働く運用メンバーと開発メンバーが共同し、媒体への対応のみならず、よりお客様に寄り添ったシステムの開発を心がけています。

最後に

リードプラスが独自に提供する、広告経由のあらゆるデータを一元管理できる広告運用ダッシュボード「MyFolio」、いつでも、どこでも、簡単にWebサイトのアクセス状況を確認できる「LeadPlus Oneもアジャイル方式で開発しているシステムです。

MyFolioはデモサイトもございますので、ぜひ実際にお試しください!

リードプラス独自開発「MyFolio」