システム開発 コラム記事

システム開発における見積りって何をチェックすればいい?

自社のシステム開発を行う際は、大抵の場合は、制作会社に委託することになるでしょう。
そこで、こちらの要望を具体的に制作会社に伝えるためには、まずはシステム開発の工程について、知る必要がありますよね。
ある程度のシステム開発の工程の流れや、専門用語を知っているだけで、開発が円滑に進んだり、リスクを回避することができます。
そこで、この記事では、初心者の方にも分かるように、システム開発の工程や、専門用具について解説します。

■そもそもシステム開発の工程とは
システム開発は、決められた工程に沿って進められます。

例えば、料理に例えて考えてみましょう。ホットケーキを作るときには、レシピの通り、まずは粉と卵、牛乳を、混ぜますよね。続いて、それらを混ぜたものを、フライパンで焼きます。このように、料理には、その手順を示すレシピが存在します。

これと同様に、開発工程とは、システム開発におけるレシピのようなもの。
この工程のおかげで、計画通りに、品質を保ちながら、システム開発を進めることができるのです。

■システム開発の工程について
それでは、実際にシステム開発の工程について、詳細をお伝えしていきます。

1.要件定義(要求定義)
この工程では、新しく開発するシステムに、どんな要素を盛り込みたいかを明確にします。さらに、この要求をもとに、予算や人員、期間を計画していきます。

2.外部設計
要件定義の内容をもとに、ユーザーインターフェースを設計します。
ユーザーインターフェースとは、簡単に言うと、画面などの外見的な見た目のこと。ユーザーが使いやすいシステムを作るためには、重要な工程です。

3.内部設計
外部設計が決まりましたら、次は内部設計、つまりプログラミングの設計を行います。

4.プログラミング
内部設計で、ある程度のプログラミングが設計できましたら、それに基づき、プログラムの作成を行います。

5.単体テスト
ここでは、実際に作成したプログラムの1つ1つが、最初の要件定義で求められている基準を満たしているか、確認します。

6.結合テスト
単体テストの次は、複数のプログラムを組み合わせた状態で、それらがうまく機能するかを検証します。

7.システム(総合)テスト
単体テスト、結合テストが完了したら、それらすべてを含めたシステム(総合)テストを行います。
その名の通り、全てのプログラムが、本当に要件定義の通りに動くのかを確認する工程です。

8.運用テスト
無事システムテストをクリアしましたら、実際に業務に取り入れることができるかを確認します。今までのテストと比較すると、非常に実用性に重点を置いたテストとなります。

9.システム移行(リリース)
実際に、使えるよう、旧システムから切り替える工程です。
一気に切り替える一斉移行や、徐々に切り替える順次移行などの移行方法があります。

10.運用・保守
問題なく運用できるよう、メモリの利用状況などを確認するのが、この工程です。さらに、より良い状態でシステムを利用できるよう、随時アップデートを行うことも、この工程に含まれます。

■「ウォーターフォールモデル」と「アジャイルモデル」
システム開発には、実はいくつかの種類があるのです。ここでは、最も代表的な2種類を説明します。

・ウォーターフォールモデル
上流の工程から、下流の工程へ、順に行っていくのが、このウォーターフォールモデルというシステム開発の種類の特徴です。
プロジェクトによって、例外はあるものの、基本的に、先ほど紹介した10つの工程に分けられます。
それらの各工程を、確実に、順に行っていくのが、ウォーターフォールモデルということです。

そのため、外部設計がまだ完了していないのに、内部設計の工程に先に進んでしまう、ということがありません。
これにより、ウォーターフォールモデルは、進捗状況の把握が容易であることや、計画的に工程が進むため、品質が担保しやすいというメリットを持っています。
そのため、スピード感を求める場合は、ウォーターフォールモデルは適さないものの、スケジュール管理が必要な、大規模なシステム開発には、ぴったりの開発方法と言えるでしょう。

・アジャイル開発
アジャイルとは、日本語で、「素早い」という意味を持ちます。
その名の通り、アジャイル開発は、とにかくスピード感のある開発方法です。

ウォーターフォールモデルでは、1つ1つの工程を順に行いますが、アジャイル開発では、そのような決まりはありません。むしろ、全体を作りつつ、随時変更や修正を行っていく開発方法と言えるでしょう。

この開発方法は、とにかく素早く成果物が欲しい時や、要件定義が明確にできておらず、とりあえず作ってみて随時修正をしたいときには、最適な開発方法です。

■略語について
エンジニアの方との会話の中で、様々なアルファベット2文字の言葉を耳にするかと思います。それらは、システム開発の用語の略語であり、システムに携わる人の共通言語のような役割を果たします。
普段はシステム等に接点がない方でも、システム開発の担当者になった暁には、これらの略語を理解できると円滑に仕事を進めることができるでしょう。

企画SP
要求分析SA
システム方式設計要求分析SA
要求分析SA
要件定義RD–UI
基本設計UI
基本設計BD
構造設計SS
機能設計FD
詳細設計DD
詳細設計PD
詳細設計PS
プログラム設計PD
コーディングCD
プログラミングPG
総合テストPT
運用テストOTO

この記事が気に入ったらサポートをしてみませんか?