システム開発の手順をわかりやすく解説!

システム開発の手順をわかりやすく解説!

システム開発に携わっていて、基本的な手順を知りたいという方は多いでしょう。本記事ではシステム開発の手順はどのようになっているのか、各工程でどのような作業が行われるのか、などについて解説します。システム開発の流れには一般的とされるものがありますが、詳細はもちろんプロジェクトによって異なります。ここでは基本を理解しておきましょう。

システム開発の工程とは

システム開発にはいくつかの工程があり、決められた順に沿って進められます。一般的には、要件定義に近いと「上流工程」、運用・保守に近いと「下流工程」と呼ばれます。

要件定義とは、顧客やプロジェクト内のエンジニアと話し合い、システムの概要を決め、人員・予算・期間などを設定することです。この要件定義がシステム開発の土台となり、作業が進んでいきます。

要件定義の後には設計の工程があります。設計は基本設計と詳細設計に分かれていて、基本設計の方はよりシステムの根幹に関する全体設計です。詳細設計はより細部のロジックに関する設計書で、プログラミング工程で実装するソースコードを設計書にそのまま記入する場合もあります。

詳細設計の次にプログラミングの工程です。プログラミングの工程では詳細設計を元にプログラムを書いていきます。システムはプログラムによって動くので、このプログラミングの工程が直接的なシステム開発と言えます。実際にシステム開発といえばプログラミングのイメージが強いでしょう。

ただし、システム開発においてプログラミングだけが重要なわけではありません。前の工程の設計や、次のテストの工程も重要です。テストの工程では単体テスト、結合テスト、総合テストとそれぞれ徐々に処理の単位を大きくしながらテストを実施し、最終的にシステムをリリースします。

以上がシステム開発についての大枠の工程ですが、以下では具体的にそれぞれの工程について解説します。

システム開発の手順

ざっくりとしたシステム開発の工程はおわかりいただけたかと思います。もちろん実際は、要件定義の前にも作業があり、要件定義後も多くの作業があります。順を追って説明していきましょう。

1. RFPの作成

RFPとは「Request For Proposal」の略で、日本語では「依頼提案書」という意味です。システム開発においては、システムの概要や目的、予算、納期などを記載したものになります。RFPの段階では内容は決定しておらず、位置づけとしては最初の依頼書です。

RFPの内容で大まかに方針が決まったら、次のステップに進みます。

2. 発注先の選定

RFPは複数のシステム開発会社宛てに送付し、複数のシステム開発会社から回答を得ます。それらを見て、どの企業に依頼するかを検討します。RFPの内容に近い形で開発を受けてもらえる、システム開発会社側から新たな提案がされている、保守・運用も含まれている、などの項目を判断基準にすることが多いでしょう。

3. 基本契約書締結

基本契約締結とは、開発費用や保守対応を記載した基本的な契約書によって、契約を行うことです。大きなトラブルにならないよう、必ず「個別契約書作成」を行います。基本契約書の段階では厳密に内容が確定している必要はなく、ここから契約内容に変更があっても問題ありません。

システム開発会社からすると、基本契約書の締結後にシステム開発のための準備に入っていくので、準備の労力や時間が無駄にならないように基本契約書を締結するという意図もあります。

ただし、基本契約書締結後はシステム開発の依頼をいっさい取り下げられないというわけではありません。詳細は契約内容により、システム開発会社から提示された要件定義が基本契約書の内容とまったく異なるといった問題があれば、当然依頼を取り下げることも可能です。

依頼企業側の都合で契約を取り下げた場合のペナルティは、契約によって異なりますが、市場の相場として違約金は発生しない場合が多いと言えるでしょう。ペナルティを設けるわけではなく、基本的には企業間の信頼関係で基本契約書が締結されています。

4. 要件定義

要件定義から先の工程は、本格的なシステム開発です。要件定義では、「具体的にどのようなシステムにするのか」「予算や人員はどれだけ必要か」「開発期間はどの程度か」などを正確に決定します。

要件定義があいまいだと開発を進められないので、具体的な数字でしっかりと内容を固めます。この要件定義で決められた内容に基づき、システム開発が始まります。

5. システム設計

システム設計の工程には、内部設計と外部設計があります。外部設計は基本設計、内部設計は詳細設計とも呼ばれます。外部設計は処理の大枠の流れを記載し、内部設計は処理の詳細を記載するイメージです。

内部設計では処理内容を日本語で記述するだけでなく、プログラミングを行う際の具体的なコードまで記載するケースが多いです。外部設計・内部設計が完了したら、これに基づいてプログラミングを実施します。

6. テスト計画・コーディング

テスト計画とは、開発したプログラムが適正かどうかの検証項目を設定することで、Excelやツールを用いてチェックリストを作るのが一般的です。計画が終わったら、スケジュールと品質のバランスを意識しながらコーディングを行っていきます。

システム開発において、コーディングは重要な工程です。しかし、設計までの段階でしっかりと内容が固まっていれば、コーディングは設計に基づいてコードを書いていくだけの作業になり、比較的容易に作業を進められます。

7. 各種テスト

コーディングが完了したら、テスト計画に基づいてテストを実施します。具体的なテストには、「単体テスト・結合テスト・総合テスト・運用テスト」があります。開発現場によって具体的なテスト内容は異なりますが、大枠の流れは共通です。

まず単体テストとして、個々の処理を実行して動作を確認することからスタートです。テストの結果不具合があれば当然コーディングや設計の手順に戻って再度実施します。再度設計書やソースコードを修正したら、また単体テストから実施し直します。

単体テスト後は、結合テスト、総合テスト、と再度テストを実施します。結合テストは単体テストの複数の処理をまとめたテスト、総合テストはシステム全体のテストです。運用テストは、実際の運用環境でテストを実施する工程です。

8. 納品

テストがすべて完了したらいよいよ納品です。ただし、事前に発見できなかった不具合が発生するケースも多いため、導入体制や手順をしっかり整えておく必要があります。納品方法としては、システムをすぐさま稼働できる状態に整え、設計書などの書類も一緒に納品します。

すべて情報をそろえた上で、顧客が使用しやすい状態に整えて納品することで顧客満足度が向上します。この考え方については、システム開発だけに限ったことではなく、ほかの業界、ほかのサービスと同様です。

そのため、顧客目線で「使用しやすいシステム」を作る意識が重要です。またシステムの使い方がどうしても難しくなってしまう場合、顧客に説明する機会を積極的に設けるとよいでしょう。システムの使い方がわからなければ、顧客にとってストレスになるので、結果的に顧客満足度が下がります。逆に納品時のサービス精神こそ、継続的な契約につながると言えるでしょう。

9. 本稼働・システム運用保守

顧客へ納品が完了したら、本稼働・システム運用保守へと移行します。保守やメンテナンスに関しては、基本的に有償となります。なぜなら開発とは別のプロジェクトとして、保守・メンテナンスは稼働するのが一般的だからです。基本的には、納品の段階でシステム開発のプロジェクトは完了と扱われます。

ただし、最初から本稼働、システム運用保守も含めて契約をする場合も多いと言えます。また、不具合対応に関してはシステム開発プロジェクトで対応するのが一般的です。どのくらいの期間、どの程度の不具合まで対応するかなどは契約によりますが、顧客目線で最大限サポートする体制になっていることが多いでしょう。

サポートを充実させるとそれだけエンジニアの負担も大きくなるのですが、顧客との信頼関係にはプラスにはたらきます。ただし、開発チームのエンジニアが対応できない場合は、顧客企業の業務が停止して損失につながってしまう、というリスクもあります。これを避けるために契約内容に縛られないサポートを行う開発企業も少なからず存在します。例えば、契約上は「システム開発プロジェクトの責に帰する場合のみ、不具合対応する」となっていても、実際は顧客側のミスによる不具合にも対応するケースもあるでしょう。

こうした状況を最初から予測し、「充実したサポートを約束する」という前提で、それも込みの金額で契約を進めた方が、結果的に費用対効果が向上する場合も多いでしょう。

まとめ

システム開発の手順は基本があり、これを把握しておくと現場でも作業の流れがわかりやすいでしょう。とはいえプロジェクトごとに差があり、また大枠だけ把握していても実際に作業ができるわけではありません。

今回紹介したような作業をこなせるようになるためには、プロジェクトで経験を積む必要があります。実践的なプロジェクト経験を積んでシステム開発の手順を理解するためには、Microsoftが提供するプロジェクト「Cloud Native Dojo」の利用を検討するのもよいでしょう。

RELATED POST関連記事


RECENT POST「アプリケーション開発」の最新記事


システム開発の手順をわかりやすく解説!

RANKING人気資料ランキング

RECENT POST 最新記事

RANKING人気記事ランキング