発注者も知っておくべきシステム開発の流れを徹底解説!
こんにちは!
ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズのCTOの柳澤(やなぎさわ)です。 弊社は、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っている会社です。
こちらの弊社運営サイト、「スタートアップ開発ラボ STaP(スタップ)」では、企業の新規事業開発担当者の方や、システム開発責任者の方、事業責任者の方達に向けて、事業開発のコツや、自社プロダクトやWebサービスを立ち上げる際にポイントや注意点について、弊社ノウハウを包み隠さずにお伝えしています。
さて、システム開発はシステムベンダーが主体的にやってくれると思いがちな方もいらっしゃいますが、実はシステム開発の発注者であるシステムオーナーも知っておくべきことがありま寿司、知っておいた方が開発の流れもスムーズです。
今回は、システム開発の発注者も知っておくべきシステム開発の流れについて解説をしたいと思います。
発注者もシステム開発の工程を知っておくべき理由について
システム開発と聞いただけで、自分には関係ないし難しいと思われる発注者も少なくありません。
ただ、開発に関する専門用語も多いことから敬遠されるかたもいらっしゃることはなんとなく理解はできますし、システムはわからないからお任せします、といった言葉が聞かれることもしばしばです。
しかしながら、システム開発作業の佳境にはいり、システムベンダーからスケジュール通りの納期を守れないという報告を突然受けたり、追加の費用が発生すること、さらには最悪のケースでは、受け入れのテストやユーザトレーニングをしてみると、要求どおりにシステム機能が実装されていないことが見つかるなど、問題が発生することがあります。
中には、システムの発注者からシステムベンダーに対して訴訟を起こすケースもあります。
このような訴訟までに行き着くケースは稀ですが、システム開発においてはこのような最悪な事態にも陥る場合もあることは認識しておくと良いでしょう。
この最悪な事態にならないよう、システム発注者もベンダーの動きやシステム開発の工程において目を光らせる必要があります。
システム開発の工程を確認
システム開発の工程は基本的な流れがあります。
まずRFP(提案依頼書)を作成から始まり、RFPの内容に合意した時点で、システム発注者とシステムベンダーとの基本契約書を締結します。
その後、システム開発プロセスに移るのですが、その工程としては、
- 要件定義
- 基本設計
- 詳細設計
- 製造・単体テスト
- 結合テスト
- 総合テスト
- 受入テスト
- 納品
- 稼働
- 稼働後の保守メンテナンス
というプロセスとなります。
システム開発の工程をそれぞれ解説
RFP(提案依頼書)
まずRFP(提案依頼書)の作成過程では、システムに求める各要求事項を記載し、システムベンダーに提示します。
その後、ベンダーからのRFPの回答として提案書を受領し、内容を確認します。
RFPの回答は、RFPの記載内容に対して網羅ができているかどうかを入念にチェックします。
そして、RFPの回答に記載のないものはベンダーに記載を依頼します。
ベンダーからのRFPの回答に納得した場合は、システム発注者とベンダー間で、システム開発に関する基本契約書を締結することになりますが、基本契約書には稼働期間や瑕疵担保期間、開発費用、保守運用費用などの費用面や責任範囲に関する内容が明確に記載されていることを確認します。
場合によっては企業の法務部や企業の顧問弁護士とともに、基本契約書の記載内容が、法的に不利な内容でないかどうかも確認することも必要です。
基本契約書の締結後はいよいよシステム開発のプロセスにはいります。
まず要件定義です。
この工程は、システムに求める要件を決定し、システム発注者とシステムベンダーとで合意をします。
これがのちに基本設計や詳細設計につながります。
基本設計
次に基本設計です。
基本設計は、システムの要件定義の内容に従い、システムでの具現化ができるように要件を詰めます。
さらにこの過程においては、システムの保守メンテナンスを意識した設計も実施しておく必要があります。
詳細設計
その後の詳細設計では、システムのコードレベルまでに落としこむまでの細かいロジックまで設計し、エラーのハンドリングや例外処理の設計を行います。
製造・単体テスト
基本設計と詳細設計を終えたら、製造・単体テストです。
製造についてシステムのプログラムコードの作成、およびそのコードが単体で挙動するか否かの確認を単体テストとして実施します。
結合テスト
そして、単体テスト後には各モジュールを組み合わせての結合テストへ入り、1つのモジュールにまとめた時点で全体としてシステムが挙動するか否かの総合テストに入ります。
総合テスト
総合テストにおいては、全てのシステム挙動はもちろんですが、システムのパフォーマンステストや長時間稼働させてのシステムの状況を確認するロングランテスト、さらにはシステムの移行が伴う場合には、切り替えのテストや旧システムからのデータ移行のテスト、さらにはシステム運用を円滑に実施するための運用テストも実施していきます。
受入テスト・納品・稼働
以上のテストを踏まえ、最終的にエンドユーザを含めた受入テスト、およびエンドユーザのトレーニングを実施します。
検収で問題なければ、プログラムを含めた成果物の納品となります。そしていよいよ稼働というプロセスに入ります。
システムの稼働に際してはリハーサルを重ね、スムーズな稼働をすることにより業務混乱が発生しないように対処します。
稼働後の保守メンテナンス
稼働後は、システムの保守メンテナンスとなりますので、基本設計で検討した、システムの運用設計に従い、システム運用を実施して行くことになります。
まとめ
システムの開発においては、各工程がスムーズに実施されているか、稼働の遅延はないかといったリスクを局面ごとに確認して行く必要があります。
システムのことを知らないという理由で、すべてシステムベンダーにお任せということではなく、システム開発の当事者としてシステム発注者も積極的に関与して行くことが、システムの品質や信頼性を高めていくためには重要なことです。
この記事が皆様のお役に立てば幸いです。