支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • ウォーターフォール型開発とは?各工程

ウォーターフォール型開発とは

IT業界におけるシステム開発の案件は大規模なプロジェクトから小規模なプロジェクトまで多種多様で、 プロジェクトの目的・プロジェクトの予算・プロジェクトのスケジュールなど様々な面から開発手法が検討され、決定されます。 ウォーターフォール型開発はシステム開発の代表的な開発手法で、その名の通りウォーターフォール(滝)のように上から下に水が流れるように上流工程から下流工程に順番に作業を進めていくことがその語源となっております。 ウォーターフォール型開発の最大の特徴は作業工程を明確に分割を行い、上流工程の作業が完了してから 次の工程に取り掛かりプロジェクトを遂行していくという方法にあります。 このように作業工程を明確に分割し、完了してから次の工程に進むことで各工程の品質を担保することや、 前工程に対しての手戻りが少なくなりますので効率的に開発を進めるということが可能となります。 一方でウォーターフォール型開発に対して「前工程に問題がないことを前提としている」「イレギュラーな事態に対しての対応力に欠ける」「開発スピードが遅い」「潤沢な予算があることを前提としている」「前時代的である」など批判的な意見を述べる専門家も少なくありません。 いずれにせよ現在の日本のIT業界においてはウォーターフォール型開発が主流を占めており、今後もその開発手法や考え方はプロジェクトを運営する際に大きな影響を与えることは間違いありません。 特に日本においてはSIerを頂点とした下請け構造によりプロジェクトが推進されていることもあり、ウォーターフォール型開発と相性が良い点も見逃せません。 以上がウォーターフォール型開発についての解説となります。

ウォーターフォール型開発の工程について

ウォーターフォール型開発の工程について説明させていただきます。 すでに説明させていただいたように、ウォーターフォール型開発は上流工程から作業を行い各工程が完了後、次の工程に作業を進めていく開発手法です。 各工程の作業の内容や意義を正確に理解することで、エンジニアは高い品質の成果物を生み出すことができるでしょう。 ここでは、要件定義・外部設計・内部設計・開発・テスト・運用と6つの開発工程に分類し それぞれの作業内容について詳しく解説させていただきますので参考にしてみてください。

要件定義

ウォーターフォール型開発の工程の一点目が要件定義です。 要件定義はシステム開発を始める前の前段階の準備として必ず必要となってくる工程です。 具体的には「クライアントが何を必要としているのか?」「何を実現しようとしているのか?」という点を整理し、クライアントと開発側で認識をあわせていく業務となります。 システム開発において最も大事なミッションはクライアントの希望するサービスや機能をシステム開発を通じて実現することになります。 要件定義の段階でユーザー自身が何を実現したいのか明確でないケースや、課題になっている点を把握できていないケースもありますので要点定義の工程でしっかりとヒアリングを行いそれを明らかにしていくことは非常に重要です。 また、要件定義の際にはユーザーの希望を本当に実現できるのか?という点を技術的な観点で検討することも必要です。 プロジェクトを運営する中でユーザーの希望を技術面・予算面との折り合いをどこまでつけ実現するかということは開発側がしっかりと調査し報告を行い、クライアントと認識を合わせておく必要があります。

外部設計

ウォーターフォール型開発の工程の二点目が外部設計です。 外部設計は基本設計と呼ばれることも多く、要件定義で決定した内容や項目を参考に外部設計書もしくは基本設計書の作成を行います。 外部設計の工程では「システム機能一覧」を作成し、クライアントがシステム全体像を把握できるように 準備することが一般的で、画面構成・出力帳票・ハードウェア・ネットワークといったシステムの主要部分について簡単に理解できるように設計書を作成する必要があります。 外部設計において重要な点は要件定義を正確に理解したうえで作業を行うことです。 要件定義を正確に把握してない状況で作業を進めることで、手戻りが発生してしまうなど無駄な工数が生まれてしまう可能性が高まるでしょう。 また、外部設計時には標準化したルールを設定するなどプロジェクトに関わる開発者が効率的に作業を行うことができるような配慮も必要となってきます。

内部設計

ウォーターフォール型開発の工程の三点目が内部設計です。 内部設計は詳細設計と呼ばれることも多く、外部設計で決定した内容を参考に内部設計書もしくは詳細設計書の作成を行います。 外部設計はクライアントが確認することが多い一方で内部設計はプロジェクト内部の開発者向けの 資料というニュアンスが強く、より具体的な機能の実装方法について記述が行われております。 具体的には機能における処理方法・画面や帳票における詳細な説明・フローチャート図の作成などが開発者にとって必要な内容が記述されております。

開発

ウォーターフォール型開発の工程の四点目が開発です。 内部設計書もしくは詳細設計書に基づきプログラミングの作業を行っていくことが開発工程の業務となります。 開発工程においては納期を守るためにスピードも当然ですが、品質も非常に重要であることは言うまでもありません。 プロジェクト管理者や開発管理者が品質について管理を行い、チームでレビューを行うなどの方法で品質の担保を行います。 また、テスト工程のとなった際に問題が発生しないように細心の注意を払いながら作業を行っていきます。 プロジェクトがスケジュール通りに進まない際の原因は様々ですが、何からのトラブルが起きた際には開発工程のスケジュールに大きな影響ができます。 炎上プロジェクトにおいては開発工程のスケジュールに遅れが大幅に遅れていることがほとんどで、そういった際にはチームメンバーでカバーを行いながら業務を進めていくケースがよく見受けられます。

テスト

ウォーターフォール型開発の工程の五点目がテストです。 テスト工程では、開発を行ったシステムが設計されたとおりに稼働するかについてのテストを行います。 テスト工程はは単体テスト・結合テスト・システムテスト・受け入れテスト・運用テストなどに分離されており、それぞれの工程において役割が異なります。 クライアントの要望に対して応えることができているのかという観点で厳重にテストを行い、 納品を行うというのがウォーターフォール型開発の一般的な流れとなります。

運用

ウォーターフォール型開発の工程の六点目が運用です。 テスト工程においてシステムの動作が正常であることを最終確認し、実際のシステムを運用する流れとなります。 システム開発の現場では運用後のサポートや修正もシステム開発会社が 携わるケースが多いため、クライアントとの良好な関係を構築することで追加発注などをもらえるなどのメリットがあります。

ウォーターフォール型開発のメリットについて

ウォーターフォール型開発のメリットについて説明させていただきます。 ポイントを4つに絞り紹介させていただきますので、是非参考にしてみてください。

スケジュール管理を行いやすい

ウォーターフォール型開発のメリットの一点目はスケジュール管理を行いやすいということです。 プロジェクトには納期が存在し、納期までに開発が完了するように予定を組んでいきます。 ウォーターフォール型開発においては納期から逆算し、各工程の期間を設定しやすいということが 大きなメリットです。 ウォーターフォール型開発と対照的な開発手法がアジャイル型開発です。 アジャイル型開発においてはスピーディーな開発が行われる一方でスケジュール管理が難しいという 面も存在します。例えば予期しないトラブルが起きた時に問題個所の特定が困難になり大幅に納期が遅れてしまうというケースも少なくありません。 ウォーターフォール型開発は各工程において期間の予想を立てることができるため、 仮にプロジェクトが遅れたとしても最小限の範囲で済むという点がメリットです。

進捗管理を行いやすい

ウォーターフォール型開発のメリットの二点目は進捗管理を行いやすいということです。 プロジェクトが現在どの工程を行っていてどういった状況にあるのかという進捗を管理者が把握しやすいのは ここまでの説明でご理解いただけるはずです。 進捗管理を正確に把握することでプロジェクトマネージャーやチームリーダーが課題やトラブルの原因を発見しやすく迅速に対応にあたることができるという大きなメリットがあります。 また、クライアントに対しての進捗報告を細かく行うことができるため、信頼感を獲得することができるという点もウォーターフォール型開発のメリットと言えるでしょう。

品質を担保することができる

ウォーターフォール型開発のメリットの三点目は品質を担保することができるという点です。 ウォーターフォール型開発と対照的な開発手法であるアジャイル開発では、開発スピードを重視する一方で 何度も手戻りが発生するというデメリットがあります。その都度適切に改善がされ高い品質を担保できればいいのですが、どうしても納期に間に合わせるために品質が充分でないまま開発を進めてしまうケースが少なくありません。 ウォーターフォール型開発は一定の品質を担保したうえで次の工程に進むため、品質にばらつきが少ないため 成果物の品質も上がるというメリットがあります。

実績が豊富である

ウォーターフォール型開発のメリットの四点目は実績が豊富であることです。 日本のIT業界において大規模開発の多くはウォーターフォール型開発で行われてきました。 大手企業が発注するシステムや多くのユーザーが使うシステムなど多くの実績があることから、 ウォーターフォール型開発に対する信頼感が高いことは間違いありません。 クライアントとの信頼関係がないとシステム開発はスムーズにいきませんので、 実績が豊富なウォーターフォール型開発を導入するメリットは大きいと言えるでしょう。

まとめ

いかがでしたでしょうか? ウォーターフォール型開発における各工程の説明ウォーターフォール型開発のメリットを説明させていただきましたので参考にしていただけましたら幸いです。