2種類のシステム開発工程を徹底解説~ウォーターフォール型とアジャイル型~

2021年03月30日

目次

2種類のシステム開発工程

システム開発の工程には大きく分けて「ウォーターフォール型」と「アジャイル型」の2種類があります。若干違いはありますが、いずれも「要件定義」「設計」「プログラミング」「テスト」という工程を経て「リリース・運用保守」というのが大まかな流れです。

まずはシステム開発の各工程でどんなことが行われるのかを解説します。これを把握することで打ち合わせのタイミングや実際にシステムが使える時期、修正を依頼するタイミングなどがわかります。

システム開発工程の流れ

Phase.1 システム開発工程の要件定義とは?

まず一番初めに行うのが要件定義です。システム開発者が依頼者と打ち合わせをして「どんなシステムが必要か?」をヒアリングし、搭載する機能や仕様、運用方法などの方向性を決めます。「こんなシステムが欲しい」といったイメージや業務上の課題点を開発者に伝えましょう。ここで食い違いが起こると希望しているシステムと異なったものが出来上がってしまいかねませんので、しっかりと要望を伝えてすり合わせを行う必要があります。

Phase.2 システム開発工程の設計とは?

システム開発者は要件定義に基づきシステムを設計します。「ユーザーの要望を実現するためにはどんな機能が必要なのか?」「どうすれば使いやすくなるか?」といったユーザー視点で考えて仕様を決める「外部設計」と、コンピュータに実装したときに正常に作動するかどうかを検討する「内部設計」を行い、システムの構想を練っていきます。

Phase.3 システム開発工程のプログラミングとは?

設計が完了したらいよいよシステムを作る段階となります。設計工程で作成された設計書にもとづいて専門のプログラマーがプログラミング(コードを書いてソフトやアプリを作ること)を行い、システムを形作っていきます。システム開発の一番の肝です。

Phase.4 システム開発工程のテストとは?

プログラミングが終わってシステムが出来上がったらテストを行い、動作に問題ないか?ユーザーの要望どおりになっているか?を確認します。モジュール(プログラムの対象単位)ごとに行う「単体テスト」を行ない、各モジュールで問題がなければシステム全体の動作を確認する「結合テスト」を実施します。その後、ユーザーが要求している機能や仕様を満たしているかを確認する「システムテスト」や、実際にユーザーが使用する環境下で動作を確認する「運用テスト」を行い、徹底的にバグや不備がないかをチェックします。

Phase.5 リリースと運用保守

テストの結果問題がなければ、いよいよユーザーに納品となり、運用・保守という段階となります。前項のようにさまざまなテストを行なった上でリリースしますが、実際にユーザーが使っていく中でバグあるいは改善点が見つかることもありますので、逐一修正します。システムを使ってみて問題点が見つかった、使いにくいと感じたなどの要望が出てきたらしっかりと開発者に伝えましょう。また、使いやすさを向上させるためのアップデートを行う場合もあります。

システム開発工程において多用される専門略語まとめ

システム開発の業界ではさまざまな専門用語が飛び交います。もちろん開発会社の担当者は打ち合わせの際に一般の方でもわかるように説明してくれるかと思いますが、専門用語を知っておけば、よりコミュニケーションがスムーズになります。よく使われるものを表にまとめてみましたので、参考にしてください。

開発フェーズ 省略名 正式名称 意味
要件定義 RD Requirement Definition 要件定義
RA Requirement Analysis 要求分析
設計 SA System Architectural design システム方式設計
SP System Planning システム企画
BD Basic Design 基本設計
DD Detail Design 詳細設計
ED External Design 外部設計
FD Function Design 機能設計
ID Internal Design 内部設計
SS System Structure Design 構造設計
UI User Interface UI基本設計
PD Program Design プログラム設計
PS Program Structure Design プログラム(構造)設計
プログラミング PG Program / Programing プログラミング
CD Coding コーディング
テスト ST System Test システムテスト
UT Unit Test 単体テスト
IT Integration Test 結合テスト
OT Operations Test 運用テスト
PT Product Test 総合テスト

ウォーターフォール型のシステム開発工程の特徴~メリットとデメリット~

システム開発工程には「ウォーターフォール型」と「アジャイル型」の2種類があります。ウォーターフォールは直訳すると「水が流れ落ちる」という意味。川の水が上流から下流に流れるように、上流工程から計画にもとづいてそれぞれの段階を経て1つのシステムを完成させます。流れた水が元に戻らないのと同じように、基本的に前工程に戻ることはありません。多くのシステム会社あるいは開発者はウォーターフォール型でシステム開発を行なっています。

ウォーターフォール型システム開発

ウォーターフォール型のメリット

事前に決めた計画に従って工程を進めていき、後戻りも少ないので、納期やスケジュール管理がしやすいのがメリット。希望するシステムの内容が決まっている、明確に導入時期が決まっているというケースに向いています。また、システム開発の業界ではウォーターフォール型が主流となっています。システム会社や開発者に経験やノウハウがあれば、ある程度ルーチンで作業を進めることができるため、大きな問題が発生しにくいというのもメリットです。

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

あらかじめ納期やスケジュールがわかるのがメリットですが、段階を経て1つのシステムを構築していくので、アジャイル型と比較するとリリースまでに時間がかかるケースがあります。また、一旦仕様変更や大きな問題などが発生すると一からやり直しになってしまうため、大幅な納期遅延が発生する危険性も無きにしもあらずです。納期まで時間がない、スピード感を重視したいのであれば、後述するアジャイル型のほうが向いているかもしれません。

アジャイル型のシステム開発工程の特徴~メリットとデメリット~

「アジャイル」は「俊敏な」「素早い」という意味です。システムを構成する機能(モジュール)ごとに開発を進めていき、最終的に一つのシステムとしてリリースするという流れとなります。料理に例えるとウォーターフォール型はコース料理をお客と話して決めて、お客さんの目の前にはそれが一度に出てくるイメージですが、アジャイル型は一皿ごとに出てきて、お客さん次第で前菜の内容を変えてもらったり、中華コースから和食コースへ変更してもらったりして最終的にコース料理が完成するイメージです。アジャイル型の工程の場合、モジュールごとに要件定義~リリースの小サイクル(イテレーション)が発生します。

アジャイル型システム開発

アジャイル型のメリット

アジャイル型のメリットはその名のとおり納期が早いことです。システムを分割してそれぞれのモジュールを同時並行で作っていくので、ウォーターフォール型と比較すると大幅に納期を短縮することができます。特にリリースまでの期間が短い、あるいは比較的規模が小さいプロジェクトに向いている開発方式です。また、仮に問題が発生しても大幅な納期遅延のリスクが少ないのも利点と言えます。

アジャイル型のデメリット

システム開発はウォーターフォール型が主流なため、アジャイル型の開発に対応できるシステム会社が少ないのがデメリットです。また、ウォーターフォール型では最初の段階で仕様やスケジュールなど綿密に計画を立てた上で開発を進めますが、アジャイル型は大枠の方向性を決めて各工程においてすり合わせていくという流れになります。そのため、当初の計画との乖離が生じるリスクもあります。

ウォーターフォール型とアジャイル型のシステム開発徹底比較

ウォーターフォール型とアジャイル型の違いについて、改めて一覧表でまとめてみました。

ウォーターフォール型 アジャイル型
特徴 すべての工程を段階的に行う 複数のモジュール作成を同時並行で進める
メリット ・スケジュール管理がしやすい
・要望通りのものが出来る可能性が高い
・対応しているシステム会社が多い
・納期が短い
・仕様やスケジュール変更に柔軟に対応できる
デメリット ・問題が発生すると納期遅延につながるリスクがある
・納期が若干長くなる
・計画どおりの仕様・納期にならない場合がある
・対応しているシステム会社が少ない
向いているケース ・作ってほしいシステムが決まっている
・導入時期が決まっている
・作ってほしいシステムが具体的でない
・なるべく早くに導入したい

それぞれメリット・デメリットがありますので、しっかりと把握した上でどちらの方式が自社に合っているか検討してみましょう。

2つの開発工程の費用は異なる?

5941_02ウォーターフォール型はあらかじめ立てた計画にもとづいて仕様を決め、機能を実装します。それに対してアジャイル型は大まかな方向性を決めた上で必要なもののみを実装していくスタイルなので、アジャイル型のほうが費用は安い傾向があります。ただし、仕様変更や機能の追加、修正などが重なってしまうと、その分費用が高くなってしまう可能性もありますので注意が必要です。

パッケージソフトの開発工程はどうなる?

パッケージソフトの導入であれば開発は不要だと思われるかもしれません。もちろん、既製品をそのまま使われるのであれば、インストールするだけで終わります。しかし、お客さまのご要望に応じたカスタマイズを行うのであれば、やはり上記のような開発工程を踏む必要があります。

弊社ではお客さまのご要望に応じたオーダーメイドシステムを開発する体制が整っています。使い勝手が良いシステムを安くお作りしますので、ぜひご相談ください。