システムの開発を依頼する際、全体の流れを知っておくと開発会社との調整もスムーズにいくものだ。本記事では、システム開発の発注を検討している方や、開発の進め方を知りたい方向けに、システム開発の流れを確認しながら発注側の注意点や進め方を解説していこう。
システム開発の流れ
開発手法によって実施方法など多少異なる場合はあるが、システム開発の殆どは下記流れで行われる
- 企画・立案
- 見積・発注
- 要件定義
- 設計(外部設計/内部設計)
- 開発(プログラミング)
- テスト(単体/結合/総合テスト)
- 受け入れテスト
- 納品
- 運用開始
- 保守・メンテナンス
システム開発 各工程の内容とは?進め方や注意点も合わせて解説
システム開発の各工程を順に解説していこう。
1.企画・立案
開発を依頼するにあたり、発注側が行なう作業である。
何のために、どのようなシステムを、いつから運用をスタートさせたいのかなどをまとめる。
下記、5W2Hの観点で整理すると開発会社への説明にも役立つだろう。
5W2H
- Why:なぜそのシステムが必要なのか
- What:何のシステムを作るのか
- Where:どこまで作るのか
- When:いつ運用スタートしたいか
- Who:誰が何をするのかなど、ステークホルダーの整理
- How:どのように実現するのか
- How much:予算はどの程度か
2.見積・発注
企画・立案でまとめた5W2HからHow much(予算)を除いた5W1HをRFP(Request for Proposal:提案依頼書)として整え、開発会社へ見積依頼を行なう。
提示された見積額が妥当なのか、システム開発の発注経験がない場合は判断が難しいが、注意すべき点は見積額を重視して判断してはいけないということである。
特に極端に安い場合は注意が必要だ。本当に仕様を満たしているのか、実装できる技術力があるのかなど、各社の提示内容を比較し、不明な点や疑問点は質疑を行なうなどで整理していくと良いだろう。
開発会社を選定できたら契約と発注を行ない、プロジェクトスタートとなる。
3.要件定義
3〜6は開発会社が行なう作業である。
要件定義は開発会社が主体となって行うものの、開発するシステムの詳細を決める工程のため、適宜両社で打ち合わせを行いながら仕様を決定し、ドキュメントやレビューなどで内容に問題がないかを合意しながら進める。
要件定義では、開発会社から依頼される確認作業や、判断・検討が必要な宿題事項が出てくるなど時間が取られることが多いため、担当者はそのつもりでスケジュールを組んでおくと良いだろう。
また、要件定義ではスケジュールの遅延が発生しやすいため、なるべくコンスタントに打ち合わせを行ない、「誰が・何を・いつまでに」という点を明確にして進めよう。
4.設計(外部設計/内部設計)
要件定義で決めた仕様を実現するため、画面のデザインや遷移設計、プログラムの構造設計、必要に応じてサーバなどのネットワーク設計も行なう。
外部設計ではユーザーインターフェースやシステムの大枠の設計、内部設計ではより詳細な設計、プログラムのインターフェースやデータベースのテーブル設計などを行なう。
設計工程以降は開発会社がメインの作業となるため、発注側が手を動かすことは少なくなるが、順調に進んでいるか、問題が発生していないかなどは定例会議などで逐次確認していくべきである。
5.開発(プログラミング)
設計に基づき、プログラミングを行なう工程である。
実際プログラミングを行ってから発生する課題や問題もあるため、発注側でも状況は把握しておくように気をつけたい。
開発中盤から終盤では、バグがあってもある程度システムが動くようになっているはずであるため、可能であれば開発会社にデモをして貰うなどで開発が問題なく進んでいるのか確認することでリスクを下げることができる。
6.テスト(単体/結合/総合テスト)
テストには、プログラムの最小単位の動作を確認する「単体テスト」、プログラム全体をテストする「結合テスト」、サーバーやネットワーク、データベースも含め実際の運用と同じ環境でテストをする「総合テスト」がある。
最近の開発スタイルでは、開発を行いながら単体テストや結合テストを行なうケースもあり、その場合、開発→テスト→開発→テスト→開発→テスト・・・というように小さなサイクルを繰り返しながら進める。
いずれの場合も、どの程度のレベルで開発ができているのかを発注側も確認しておくべきだろう。
システムの動きを確認し、動作不安定すぎる、不具合が多すぎるなどの場合は開発会社に増員や対策を要求して、スケジュールが遅延しないよう対策を取らなければいけない段階である。
7.受け入れテスト
発注側が行なうテストのことで、開発したシステムが要求通りに作られているか、バグが残っていないかなどを確認する。
受け入れテストは、「大丈夫だろう」という程度に甘く考えてはいけない。ここではしっかり時間を取って納品前の最終確認を行おう。
8.納品
受け入れテストで問題がないことが確認できたら納品となり、システム開発のプロジェクトは一旦完了となる。
9.運用開始
納品されたシステムの運用を開始する。
10.保守・運用
システムは、開発が完了して運用開始できたら終わりという訳ではなく、OSのアップデートや運用後に見つかったバグの対応など、なんらかの保守と、システムを運用する作業が必要となることが殆どである。
発注側が実施できる場合は自社で行なうが、システム開発を依頼した会社に引き続き運用を依頼する場合が多い。
以上、システム開発の流れと進め方を解説してきた。
システム開発において、発注側が開発会社をコントロールすることは容易ではないが、よく相談に乗ってくれるパートナー会社を見つけると、注意点も参考にしながらプロジェクトの進行に役立てていただきたい。