フリーランスエンジニアのためのウォーターフォールの基本を解説
ウォーターフォールモデルとは、システム開発を上流から下流まで複数の工程に分けることにより、定められた工程を順次たどって計画的に開発を進めていく手法です。ウォーターフォールとは、文字通りに滝(waterfall)のことです。工程が次の段階に移行したら、基本的に前の工程には戻らず、上から下へ流れていくことから滝の動きにたとえられたものです。
システム開発知識をサポート
アイウィルではフリーランスエンジニアを強力に支援するシステム開発手法の講習会や知識習得支援を積極的に実施しています。アイウィルで活躍しているフリーランスエンジニアには常に無料で様々なガイダンスや勉強会を行っていますので、どうぞお気軽にお問い合わせください。
ウォーターフォールの歴史
ウォーターフォールモデルの原型
1968年に、当時のNATOが後援する国際会議において、ウォーターフォールモデルの原型となる手法が発表されたといわれています。限られた人材だけが作成できる一種の職人芸と見なされていたソフトウェア開発の手法を、広く取得できる工業製品として活用しようとしたものです。提唱された手法のポイントは、製品の製造がいくつかの過程に分けられるように、ソフトウェア開発もいくつかの工程に細分化しようとしたことです。
受注案件との関連性
フリーランスのシステムエンジニアやプログラマーが受注する案件では、一部の工程(たとえば製造工程)が発注されることもあります。上流から下流まで複数のITエンジニアが担当する大規模なプロジェクトで多く用いられています。フリーランスの受注案件では、特にこのウォーターフォールモデルによる開発が多くなっているのではないでしょうか。
ウォーターフォールモデルの基本工程
①工程毎の基本的な作業
各工程の基本的な作業は以下のとおりです。
- 【要件定義】:要求されるシステム要件を定義する作業。実現すべき要件やシステム化すべき範囲を確認。
- 【外部設計(基本設計)】:システム実装方法を設計。画面設計、外部インターフェース設計など。
- 【内部設計(詳細設計)】:基本設計で定めた機能毎に詳細で具体的な設計を実施。
- 【プログラム設計】:詳細設計に従って、一本一本のプログラムの設計を実施。
- 【プログラミング】:実際にプログラミングを実施。また策定した規約に基づいて実装を行います。
- 【テスト】:不具合やバグがないかのテスト。
②ウォーターフォール開発の工程管理手法
開発の流れを複数の工程に分け、工程が完了する際にそれを示す文書を作成します。これは工程完了報告書等と呼ばれます。フリーランスエンジニアであっても、上流工程等を担当されるシステムエンジニアの方であれば、この工程完了報告に立ち会うことが多いものと思います。主に以下のような工程の内容について記述します。
- 工程の概要
- ステップあたりの試験項目数の密度や設計書の時間あたりのレビューページ数密度
- ステップあたり、または頁あたりのバグ(故障)密度
- 目標とする指標(試験密度、故障密度)との対比結果
- 定量評価(数値で測れるもの)と定性評価(数値で測れないプロジェクトの諸条件や原因)
- 故障の収束状況と品質分析結果
- 次工程への申し送り事項、今後の課題
- 総評など
このような工程毎の品質分析や評価を行いながら進めることによって、作業の進捗やシステムの品質が管理しやすくなるのです。
ウォーターフォールモデルのメリット
メリットの例
ウォーターフォールモデルによるシステム開発は、以下のようなメリットがあります。フリーランスエンジニアのSEであれば、その多くを経験していると思いますので、非常にイメージしやすいでしょう。
- 上流工程でシステムの概要を綿密に定義するため、何を作ればいいのか明確にしやすい。
- 完成イメージをメンバー間で共有しやすい。
- 工程が終わるごとに、その成果をドキュメント化し評価するため、開発進捗を管理しやすい。
- 成果を文書化することで誰にとっても課題や改善点などが把握しやすくなる。
- 各工程の役割が明確であり、手戻りを抑制し開発が進めやすくなる。
ウォーターフォールモデルのデメリット
デメリットの例
ウォーターフォールモデルには以下のようなデメリットがあります。
- 開発の初期段階で主要な決定を行うため、改善すべき点などが発覚しても、後から仕様変更するのが難しい。
- 変更に関するコストが高くなる傾向にある。
- 開発の後半に検証を行うので、大幅な改善措置を実施するのが難しい。それによってシステムを利用するユーザーの意見を反映しにくくなる。
- 不具合が判明した場合に、工程をさかのぼってやり直す工数によって、当初想定よりもコストが増大されてしまう。
まとめ ーフリーランスのためのウォーターフォールの基本知識-
ウォーターフォールモデルとは、システム開発を要件定義やテストなどの複数の工程に分け、滝が上流から下流に下っていくように順番に工程を処理していく手法です。システム開発の手法として古くから用いられており、完成イメージを共有しやすいことから、複数のメンバーで行う大規模なシステム開発などに適しています。
一方、後から仕様変更するのは難しいなどのデメリットもあります。フリーエンジニアが案件を受注する際にも、このようなウォーターフォールモデルのメリットとデメリットを把握しつつ、効率の良いシステム開発のために自らの役割に対して何を求められているのかを常に意識していけば、評価にもつながっていくはずです。
アイウィルでは、フリーランスエンジニアを徹底サポートしています。ウォーターフォールモデルのご紹介だけでなく、アジャイル型の開発やハイブリッド型の開発など様々な知識習得支援を実施しています。相談したい、サポートサービスを知りたい、案件にも興味あるなど、いつでもご遠慮なくお問い合わせください。