そもそもITのプロジェクトって?
みなさん、”ITのプロジェクト”と聞いて、どのようなものを想像しますか?
スマートフォンアプリの開発?ECサイトの構築?あるいは企業の基幹システムの導入でしょうか?
はい、そうです。これらは全てITのプロジェクトです。
その中でも今回は、Iaas, Paas, Saasなどに分類されるソフトウェアの開発について解説したいと思います。
ソフトウェア開発の流れ
主な流れはこのように分けられます。
- 営業
- 具体的なニーズのヒアリング
- システムの企画、提案
- 見積、契約
- 要件定義
- 設計(基本設計、パッケージ設計、プログラム設計)
- プログラム開発
- テスト(単体テスト、統合テスト、システムテスト)
- 運用テスト
- 納品
- 保守
大まかにはこんな感じでしょうか。
1つ1つ見ていきましょう。
営業
この部分には開発案件の掘り起こしも含まれています。
顧客(新規開拓顧客、継続取引顧客)が現在の業務を、あるいは新規業務をどのように展開しようとしているのか? それには、運用中のシステムの改善で対応可能か、または新システムを開発する必要があるか、などについて情報を収集する。
具体的なニーズのヒアリング
システム化対象業務の内容、システムへの要求事項、顧客の同業他社のシステム化動向、運用開始時期、開発予算、開発組織等を確認する。
システムの企画、提案
ここには概算の見積も含まれています。
顧客の課題を解決するシステム企画案(システム化方式、開発概算費用、開発期間、開発体制等々)、費用対効果等を提案する。
この提案を数回繰り返すことにより、お客様の疑問、不安を解消しながら、提案および見積の内容を固めていくと同時にお客様との信頼関係を築く。
見積、契約
詳細見積(開発費用、開発期間、品質目標、納期等々)を提示し、顧客の承諾を得ることができれば受注となり、契約書を取り交わす。
要件定義
システム化する業務(コンピューターに仕事をさせる業務)、システムが備えておくべき機能、性能などを定義する。
設計
要件定義を基に、入出力(画面、帳票、データベース等)、処理方法、テスト方法、セキュリティの確保方法、運用方法等のシステム全体を設計(基本設計)する。
システムの機能を段階的に小さな機能(システム⇒サブシステム⇒プログラム)に分割、整理し設計を進める。サブシステムの設計をパッケージ設計、プログラムの設計をプログラム設計という。
プログラム開発
プログラム設計書の内容をコンピューターが処理可能な言語(Java、C等々)でコード化する(プログラムを記述する)。
テスト
プログラム、サブシステムおよびシステム全体が、設計書どおりに動くことを確認する。
プログラム単体のテストを単体テスト、プログラムをいくつか組み合わせたサブシステムのテストを統合テスト、システム全体のテストをシステムテストという。
運用テスト
顧客が実際に使用する実務データに基づき、システムが要求通りに動作するかを検証する。
納品
運用テストの結果、実運用に移行しても良いという判断が出た時には、成果物(設計書、プログラム、運用マニュアル等)を顧客に納品する。
(顧客は納品を受けたシステムの運用を開始する。)
保守
障害への対応やユーザの追加要望(機能追加)などに対応する。機能追加の際は、ここまでの流れを繰り返し、開発を行う。