システム開発の工程・流れを徹底解説〜知っておくべき略称や注意点も〜
自社の課題を解決するのに、システムの導入は高い効果を発揮します。そのため、実際にシステム開発の依頼を検討している人・企業も多いのではないでしょうか。
しかし、システム開発を依頼するうえで工程や流れを知っておかなければ、重大なトラブルにつながる可能性があります。
本記事ではシステム開発の工程や流れについてまとめました。その他、システム開発で覚えておきたい略称や注意点も紹介していますので、ぜひ参考にしてください。
システム開発の工程を知っておくべき理由
システム開発を発注する側がシステム開発の工程を知っておくべき一番の理由は、各工程に対してどのような関わり方をすべきかを把握するためです。前提として、システム開発で最も失敗につながるのは「発注側が開発側にすべてを丸投げしてしまうこと」があげられます。
システム開発を大きく分けると、上流工程・下流工程の2つです。当然ですが、この2つではやることがそれぞれ異なります。
上流工程は主に「要件定義」「機能定義」「構成管理」「計画立案」のことを指し、システム開発における初期段階の工程といえるでしょう。対して下流工程は実際にシステム開発や製造を行う段階で、作成したシステムのテストなども含まれてきます。
このとき、システム開発の工程を知らないでいると、要求した機能が不十分・スケジュールに余裕がないなどといったトラブルにつながりかねません。コミュニケーション不足から、莫大なコスト増加につながる可能性も考えられるでしょう。
上記のことから、システム開発の工程についてはきちんと把握しておく必要があります。また、大まかには以下の流れで進んでいくことをあらかじめ知っておけば、どのタイミングで関わるべきかの判断にも役立つでしょう。
- 要件定義
- 外部設計
- 内部設計
- プログラミング
- 各種テスト
- 納品
- 運用・サポート
希望するシステムを開発・納品してもらえるよう、発注して終わりではなく、コミュニケーションを取る・定期的に要望する機能がきちんと実装されているか確認することを忘れないでください。
代表的な開発方法
システムの開発方法にはさまざまなものがあります。その中でも、特に代表的な開発方法を4つ見ていきましょう。
ウォーターフォール型開発 | 上流工程から下流工程を順にこなしていく手法 |
アジャイル開発 | 計画→設計→実装→テストの工程を反復する手法 |
プロトタイピング型開発 | 開発初期で試作品を完成させ、試作品に機能や仕様を肉付けする手法 |
スパイラル型開発 | 品質が保証されていないシステムを納品し、発注者の声を取り入れながら品質を上げていく手法 |
上記の中でも、特にメジャーな開発方法は以下の2つです。
- ウォーターフォール型開発
- アジャイル開発
各開発方法の詳細について、詳しく解説していきます。
ウォーターフォール型開発
ウォーターフォール型開発は、システム開発における工程を一から順にこなしていく開発方法です。主なシステム開発の手順は、以下のようになっています。
- 要件定義
- 外部設計
- 内部設計
- コーディング
- 単体テスト
- 結合テスト
- 運用テスト
- リリース
ウォーターフォール型開発はあらかじめ開発の工程が決まっているため、品質を担保してもらいやすいのが特徴です。初期段階で「どのようなシステムを作りたいか」が定義されるため、仕様を固めやすいのはメリットといえるでしょう。
また、開発工程の大まかな流れが決まっている分、スケジュールや進捗確認もしやすくなります。発注側も「どの段階なのか」がわかりやすいため、システム開発へ関わりやすいといえるでしょう。
ただし、他の方法と比べると開発が長期化しやすいデメリットもあります。そのため、スピード感重視でシステム開発する場合には向きません。
また、システムの仕様・計画も変更が難しく、仮に途中で変更する場合は労力やコストが膨らみやすいことも覚えておきましょう。
アジャイル開発
アジャイル開発は、細かい単位で実装とテストを繰り返して開発を進める手法です。アジャイルを直訳すると「素早い」「機敏な」などの意味があるように、従来の手法よりもスピーディーに開発を進められます。
アジャイル開発のメリットは、不具合があった際に戻る工数が少ない点です。小単位で計画・設計・実装・テストを繰り返しているため、問題が発生した分だけ工数をやり直せば問題ありません。
加えて、開発途中のコミュニケーションが定期的に発生するため、要望通り進められているかだけでなく、仕様の追加・変更に対応しやすいのもメリットといえるでしょう。
対して、計画段階で仕様が固まり切っていないため、開発の方向性がブレやすいというデメリットがあります。計画を詳細に決めきっていないことから、スケジュールの把握がしにくいのもアジャイル開発の注意点です。
システム開発の工程・流れ
システム開発を発注するなら、工程や納品までの流れを知っておくべきです。大まかなシステム開発の流れは、以下のように進んでいきます。
- 発注・契約
- 設計・開発
- 各種テスト
- 検収・導入
- 運用
各工程の詳細について、詳しくみていきましょう。
発注・契約
まずはシステム開発を発注する背景を整理します。現状の課題を洗い出し、どのようなシステムが必要なのかを決定したら、RFP(提案依頼書)を作りましょう。このとき、目的・予算・納期の3つは必ず設定しておく必要があります。設定していないと、発注する会社側があいまいな見積もりしか出せません。
企画書の内容をもとに見積もりをもらったら、実際に契約を検討しましょう。なお、見積もりは3~4社からもらっておき、分からないことはしっかり質問することが大切です。安さだけに注目すると失敗する可能性も高いため、自社の目的が達成できるかどうかに焦点を置いて依頼会社を決めましょう。
設計・開発
実際にシステム開発に移行する場合、まずは「要件定義」と呼ばれる段階が必要になります。要件定義では発注の希望に対して必要な機能を明確にする作業で、この時点でシステムのクオリティが決まるといっても過言ではありません。
要件定義をしっかりしておかないと、以下のようなトラブルにつながる可能性が考えられます。
- 開発に時間がかかる
- 希望の機能がなく使えない
- 予算を大幅に超えてしまった
要件定義では、譲れない条件・必ず搭載したい機能を納得いくまで話し合いましょう。要件定義で話した内容をもとに作成した要件定義書をもとに、実際にシステム開発が進んでいきます。
設計段階では内部設計書・外部設計書などが作成され、これらは開発会社から発注者側に提示される納品物の一つです。
各種テスト
システム開発が進んでいくと、適宜システムのテストが行われます。主に実施されるテストは、大きく以下の3つです。
- 単体テスト:画面推移や機能ごとのテスト
- 結合テスト:他の機能やシステムと連携させた動作テスト
- システムテスト:システム全体の動作テスト
テストごとにテスト仕様書が作成され、テスト結果は随時まとめられることも覚えておきましょう。
また、開発工程とテスト工程をリンクさせたV字モデルと呼ばれるものもあり、定義や設計に対して正しい内容が実装されているか確認します。
- 単体テスト:詳細設計の内容を確認
- 結合テスト:基本設計の内容を確認
- システムテスト:要件定義の内容を確認
上記のテストで問題がなければ、発注者側への検収および導入・運用に進んでいきます。
検収・導入・運用
開発会社側でのシステムテストが問題なければ、発注者側での検収が必要です。納品された成果物があらかじめ設定された仕様を満たしているかを確認し、問題なければ実際の導入に移ります。
検収終了後は開発会社側で初期設定することが多く、操作方法の説明やマニュアルの作成・旧システムがある場合はシステム移行も実施されます。
導入後は実際に運用し、必要に応じて保守も必要です。運用・保守の方針や予算を決めておき、運用時にシステム会社に求めることも整理しておきましょう。
システム開発の工程でよく聞く略称や英語
システム開発の工程を知っておくなら、よく聞く略称や英語についても押さえておきましょう。
SP(System Planning) | 企画 |
SA(System Architectural design、Service Analysis、System Analyze) | 要求分析 |
RD(Requirements Definition) | 要件定義 |
UI(User Interface)・BD(Basic Design) | 基本設計 |
SS(System Structure Design) | 構造設計 |
FD(Function Design) | 機能設計 |
DD(Detail Design)・PS(Program Structure Design) | 詳細設計 |
M(Manufacture) | 製造 |
UT(Unit Test) | 単体テスト |
CD(Cording) | コーディング |
PG(Programing) | プログラミング |
IT(Integration Test) | 結合テスト |
ST(System Test) | システムテスト |
OT(Operation Test) | 運用テスト |
いずれも頻出する単語となっているため、チェックしておくことでコミュニケーションがスムーズに進む効果が期待できます。
システム開発の工程と併せて知っておきたい注意点
システム開発の工程について、あわせて知っておくべき注意点は以下の3つです。
- 要件定義の内容をしっかり詰める
- メンバーの実績やスキルは必ずチェックする
- コミュニケーションは定期的に取る
システム開発のトラブルを避けるためにも、上記の注意点は意識しておきましょう。
要件定義の内容をしっかり詰める
システム開発の工程の中でも、要件定義はかなり重要です。要件定義の内容があいまいだと、システム開発自体が失敗につながる可能性が考えられます。実際、要件が詰め切れていないことで考えられるリスクは、以下のようなものがあげられます。
- スケジュールの遅れ
- 作業コスト増加
- システム品質の低下
- パフォーマンスダウン
- 運用時の業務効率低下
要件定義は、開発側と発注側の方向性を擦り合わせる大切な場です。この時点で内容が一致しないのは、開発側だけでなく発注側にも責任があります。
修正や納品遅延など、双方がトラブルを生まないようにするためにも、要件定義書の内容はしっかりとチェックしましょう。そうすることで、スケジュール通りに希望のシステムが納品される可能性が高まります。
メンバーの実績やスキルは必ずチェックする
システム開発を依頼するうえで、人件費は必要経費の大多数を占めます。人件費を削減しようとすると、実績のないメンバーばかりが割り振られるかもしれません。
メンバーの実績やスキルが足りないと、満足いくシステムが開発されないリスクも生まれます。メンバーの実績やスキルをチェックして、適切な人材を正しい価格で割り当ててもらうようにしましょう。
また、開発会社によっても所属しているメンバーのスキルや実績は大きく変わります。評判を確認したり、見積もり段階でどこまでできるのかは必ず確認しておきましょう。
コミュニケーションは定期的に取る
システム開発を進めていくうえで、コミュニケーションは定期的に取りましょう。開発前のコミュニケーションよりも、開発が始まってからのコミュニケーション量が大切になります。
しっかりとコミュニケーションをとっておけば、トラブル発生時の対処も迅速に進みます。加えて、お互いに相談しやすい環境を整える効果も期待できるでしょう。
開発側の負担を減らしつつ、発注側が満足いくシステムを納品してもらえるよう、コミュニケーションはしっかり取ることをおすすめします。
まとめ
今回はシステム開発の工程について解説しました。システム開発の工程は大まかに「発注」「設計」「開発」「導入」の順に進んでいきます。
システム開発の工程を理解しておくことは非常に重要です。発注側がどのタイミングで関わるべきか、どのような関わり方をすべきかの判断につながり、結果として満足いくシステムを導入できるようになるでしょう。
まずは要件定義の段階でしっかりと内容を詰め、そのうえでコミュニケーションを定期的に取ることをおすすめします。
この記事で紹介した内容をもとに、システム開発の工程を把握し、満足できるシステムの導入・運用を目指してください。
クリーヴァでは、システム企画から実行までをワンストップでお任せいただけます。気になる方は、以下URLより弊社サービスをご覧ください。