システム開発のプロジェクトでは、分業で業務を進めていくことが多いため、全体的な工程を知らない方もいるのではないでしょうか。全体像を理解しておけば、他チームと連携を取りやすくなり業務を効率的に進められる利点もあります。
そこで今回は、システム開発の代表的な3つの開発工程モデルと、7つの工程を解説します。また、システム開発に関わる業種やそれらの仕事に就く方法もご紹介しますので、システム開発関連で働きたい方は参考にしてください。
目次
システム開発の工程とは?
そもそもシステム開発の工程とは、システムを開発するにあたって出てくる工程のことで上流工程と下流工程に分類されます。各工程の詳細は後述しますが、基本的には、システム開発の要件定義に近いほど上流工程に属し、システムの保守や運用に近い業務ほど下流工程に属します。
一般的には、複数の企業がプロジェクトに参画し、分業しながら進めていくことが多いのがシステム開発の特徴です。
代表的な3つの開発工程モデル
開発工程モデルとは、システム開発を行うプロセスのことです。代表的な開発工程モデルは、以下の3つです。
- アジャイルモデル
- ウォーターフォールモデル
- スパイラルモデル
ここでは、各開発工程モデルについて詳しく解説します。
アジャイルモデル
アジャイルとは、「俊敏な」という意味を持つ言葉で、アジャイルモデルとは、機能ごとに小さな開発サイクルを何度も回す方法を指します。
後戻りすることを前提に工程を進めるため、要件定義、設計段階では詳細を定めず、全体を開発しながら必要に応じて修正を行います。そのため、新規事業で成果物のイメージがつきにくくても開発を進めるような、スピードが求められるプロジェクトで用いられることが多いモデルです。
ウォーターフォールモデル
ウォーターフォールトは、「滝」のことです。ウォーターフォールモデルとは、滝のように上流から下流に向かって進んでいく開発工程を意味します。
上流から下流に向けて開発を進める一方通行型の開発プロセスで、進捗を把握しやすいのが利点です。ただし、一つのプロセスが完了してから次のプロセスに移るため、開発途中で過去にさかのぼっての仕様変更や修正には対応しづらく、コストや時間がかかってしまうのがデメリットです。
スパイラルモデル
スパイラルとは、日本語で「らせん」のことです。スパイラルモデルとは、アジャイルモデルとウォーターフォールモデルの両方の長所を取り込んだ開発モデルを指します。
一つのサイクルが完了するごとにクライアントのレビューを受けてそのサイクルを評価し、結果を次の開発サイクルに生かすことができます。仕様変更や修正があったとしても、状況に応じて柔軟に対応できる開発工程モデルです。
システム開発の工程や具体的な流れ
一般的なシステム開発は、次の7つの工程から成り立っています。
- 要件定義
- 基本設計
- 詳細設計
- プログラミング
- テスト工程
- リリース
- 運用・保守
ここからは、各工程の具体的な流れを解説します。
1. 要件定義
要件定義とは、システムをどのような開発手法で作るのか、導入や運用方法、予算、開発期間などの開発に必要な要件をクライアントとともに決めることです。
開発工程における設計図を作る「最上流工程」にあたり、システム開発において重要なフェーズです。システム開発はこの工程で決定した内容に基づいて進めます。そのため、後々のトラブルを防ぐ意味でも、クライアント側と開発側との認識をすり合わせることが大切です。
2. 基本設計
基本設計とは、システム開発の全体の構造と主要な機能を具体化する重要な工程です。
基本設計では、画面設計、データベース設計、インタフェース設計などを行います。いわば、ユーザーから見える部分を決める工程であるため、図などを用いながら視覚的に分かりやすいものを作ることが重要です。また、クライアントが確認するため、専門用語などをなるべく使わずに作成されます。なお、基本設計の仕様書は、一般的にはシステムの機能ごとに作成します。
3. 詳細設計
詳細設計とは、エンジニアに向けて各機能の具体的な実装方法を設計する工程です。
この工程では、基本設計で決定した内容を基にして、プログラミングを行うエンジニア向けのより専門的な詳細設計書が作成されます。具体的には、システムの機能をさらにモジュールごとに分割して「機能仕様書」「データフロー図」「データベース物理設計書」などが作成されるのが一般的です。
4. プログラミング
プログラミングの工程では、設計書に基づいて、開発会社のSE(システムエンジニア)やプログラマーがプログラミングを行います。詳細設計が設計工程だったのに対して、プログラミング以降は製造工程に属します。
プログラミング工程で行われるのは、「コードを記述する」「レビューする」「改善する」の作業の繰り返しです。これらの作業により機能を実装してシステムを開発します。ときには単純な作業も含まれますが、設計どおりに機能が動作するかを確認しながら進めることが重要です。
5. テスト工程
テスト工程は、システム開発が完了した後に、システムが正常に動作するためにテストを実施する工程です。
テスト工程には、以下の4つのテストがあり、順番に行います。
- 単体テスト:システムの内部構造をチェックするテスト。プログラムを1行ずつ確認する。
- 結合テスト:システムの外部仕様をチェックするテスト。単体モジュールがインプットに対して正しくアウトプットできるかを確認する。
- システム全体のテスト:基本設計の仕様を満たしているかのテスト。画面遷移や機能の挙動などを確認する。
- リリース前の運用テスト:実際の運用環境下で行うテスト。要件定義に基づく機能要件を満たしているか、要望通りのシステムレベルを提供できているかなどを確認する。
テスト段階でバグが見つかれば、開発チームに差し戻して修正し、修正後のシステムを再度テストします。
6. リリース
リリースは、これまで運用していた旧システムから新たに開発したシステムに切り替える工程です。クライアント側の実際の運用環境で、システムを切り替えます。
企業によっては、システムの変更に際して業務プロセスの変更が求められ、現場の混乱を招く可能性があります。スムーズに移行するためにも、リリースの計画は慎重に行い、リリース後のサポート体制や不具合対応の準備もしておくことが大切です。
7. 運用・保守
システムを円滑に利用するためには、運用・保守の工程を継続的に行わなければなりません。
運用とは、システムの改修やアップデートなど、システムに変更を加えることです。また、保守は、システムが滞りなく稼働するようにデータを入力したり、サーバダウンなどのトラブルが発生したときに対応手順書に沿って処理をしたりすることです。
運用・保守は、システムを導入した企業の情報システム部門が担当する他、ベンダー(開発会社)が担当することもあります。
システム開発に関わる業種
システム開発に関わる業種には、SE(システムエンジニア)やプログラマー・プロジェクトマネージャーなどがあります。
- システムエンジニア:プログラマーがどのようにシステムを開発すれば良いかの詳細を記載したシステムの仕様書や設計図を作成する。概要設計・要件定義などの上流工程を担う。
- プログラマー:システムエンジニアが作成した仕様書に沿ってプログラミング言語でコードを記述し、システムを開発・実装する。プログラマーとして経験を積んでSEになることも可能。
- プロジェクトマネージャー:開発プロジェクトの管理者としてスケジュールや予算、人員管理、意思決定などを行う。システム開発全体をマネジメントする。
システム開発の仕事に就く方法
システム開発の仕事に就くには、主に以下の3つの方法があります。
- 派遣社員としてシステム開発に関わる
- 経験を積みプログラマーとして就職する
- IT業界に特化したリクルーティングサービスに相談する
システム開発の仕事に就く方法で一般的なのが、派遣会社に登録して、派遣社員として開発に関わる方法です。プログラマーとしての経験があれば、その年数や取扱い言語によって、最適な派遣先を紹介してもらえます。派遣会社が研修を実施しているケースもあり、未経験者でも目指すことが可能です。
また、独学でプログラミングを学んだり、未経験からプログラマーとして就職し、ソフトウェア会社に転職する方法もあります。プログラマーとしての経験が長くなれば、システムエンジニアへの転職や上級プログラマーとしての活躍も可能です。
既に、IT業界での経験がある方であれば、IT業界に特化したリクルーティングサービスや転職サービスに相談して、自分にマッチする求人を紹介してもらうのも良いでしょう。
システム開発の工程を理解して自分に合った関わり方を見つけよう
システム開発の工程は、要件定義、基本設計、詳細設計、プログラミング、テスト工程、リリース、運用・保守の7つから成り立っています。要件定義に近いほど上流工程、運用・保守に近いほど下流工程と呼ばれるのが一般的です。
システム開発の業務に関わる職種には、仕様書作成を行うシステムエンジニアや実際にコードを記述し開発を行うプログラマー、プロジェクト全体を管理するプロジェクトマネージャーがあります。
これらの仕事に就くには、派遣会社に登録する方法、プログラミングを学んでプログラマーとして活躍する方法、リクルーティングサービスを活用すると良いでしょう。
IT業界への転職を検討されている方は、IT業界に特化したリクルーティングサービス「HUGAN」へのご登録をおすすめします。経験豊富なプロによる最適な企業へのマッチングなどの転職支援を無料で実施していますので、どうぞご活用ください。