システムを構築するにあたり、突然プログラムを書き始めたりネットワークを構築することはできません。必ず段取りがあり、細かい部分の違いはありますがどの企業でも必ず行われます。
そこで今回は、システム開発を行うにあたりどのような流れを組んでいくのかをご紹介いたします。システム開発の流れを知ることは、システム開発の成功への第一歩です。これからシステム開発に取り組む方や、改めて頭に入れておきたいという方は、是非最後までお読みください。
システム開発の基本の流れは5つのステップ
システム開発を行うにあたり、企業ごとで細かな方法は違うにせよ必ず行う5段階のステップがあります。
- 要件定義
- 設計
- プログラミング
- テスト
- 導入・運用
のステップは、どの企業でも行っている項目です。
もちろん、全て同じ人が行うわけではないケースもありますが、この5つのプロセスはシステム開発をする上で基本的な事項となりますので、もし曖昧にしか覚えていない方は、是非覚えてください。
システム開発の流れ1.最も重要な”要件定義”
要件定義は別名「基本計画」とも呼ばれ、システム開発の流れの中でも最も重要な部分です。
どのようなシステムを作るのかを決定するのが要件定義ですが、作成のベースとなるのは顧客からのヒアリングです。どのような機能が欲しいのか、いくらまで出せるのか、納期はいつまでなのかを考慮しながら計画を立てていきます。ここで失敗してしまうと、完成品を見せた際に顧客から「こんなことは言っていない」と納品拒否をされてしまい、1から作り直さなかければいけなくなります。
とりあえずシステムを作り、顧客と相談した上で改善を進めるアジャイル開発の流れも近年よく見るようになってきましたが、要件定義にミスがあれば余計な工数がかかることになります。「計画が全て」と言われるように、要件定義の作成は特に力を入れて取り掛かりましょう。
システム開発の流れ2.”設計”で枠組みを構築
「この機能が欲しい」と顧客に言われたとしても、実際にどのように実現していくかは要件定義で定まっていません。そのため、「設計」では具体的にどんなプログラムをどのような構成で作成すれば実現できるかを検討し、固めます。設計を細かく分けると、3つに分けることができます。
外部設計
「外部設計」とは、利用者側からシステムを見るとどう見えるかを決定していきます。
スマートフォンのアプリを例にすると、「どのような外見か」「書き込みボタンはここに配置して使いやすいか」「画像表示は見にくくなっていないか」など、使い勝手に関わることを設計していきます。
内部設計
外部設計は利用者でしたが、「内部設計」は開発者からシステムを見るとどうなるかを決定していきます。利用者から見るとボタンを押すだけで決められた動きをするプログラムでも、開発者からするとどのような処理を走らせるのかを決定しなければなりません。外部設計を実現するためにはどのような構成にしていくのかを決めるのです。
プログラム設計
開発の枠組みが決まると、そこにどのようなプログラムで作っていくかを決定するのが「プログラム設計」です。外部設計で決定したことを、どう作るのかまで設計していきます。システム開発は多くの場合複数の人たちで開発するため、人によって差異がないようにどんなプログラムを行なっていくのかを決定していくのです。
システム開発の流れ3.胆となる”プログラミング”
設計ができたら、いよいよ「プログラミング」です。ここでは設計に沿った形でプログラムを行なっていきます。複数で各パーツを作っていくので、プログラミング言語や作り方などを改めて決める必要はありません。
ここでは、ひたすら手を動かして実際にシステムを組み立てていきます。コンパイルまで完了したら、プログラミングの工程は終了です。
システム開発の流れ4.”テスト”で納品前の最終チェック
「テスト」と聞いて、なんとなく簡単な気がするかもしれませんが、テストを終えるともう本番リリースです。バグがテストを通過してしまうと、納品後に顧客のシステムが停止してしまい大損害を被ることはもちろん、会社の評判も落ちてしまいます。そのため、テストを重要視する企業も少なくありません。
単にテストと言っても、いくつかの工程に分かれています。これは企業にもよりますが、基本的な4つをここでご紹介していきます。
単体テスト
「単体テスト」は、モジュール単位でのチェックとなります。車で言えばボルトなどの部品単位でミスなく作られているかというテストです。ここではプログラム設計通りできているかを確認するので、ミスがあればそもそも動かないということになります。しかし、単体テストを飛ばしてしまうとこの後のテストでエラーが出てしまい納期が遅れてしまいますので、単体テストも重要と言えます。
結合テスト
「結合テスト」はモジュールを組み合わせた際にエラーがないかをチェックしていきます。機能単位や処理単位でエラーがないのかをチェックしていくので、部品を組み立てて予定通りに動くかをチェックしていくイメージです。
システムテスト
いよいよ「システムテスト」に入ります。ここまで来ると、顧客からの要望通りのシステムになっているのかを最終的にチェックしていきます。システム全体が動作するようになるので、外部設計の確認もできます。システムテストが実質開発側でできる最終チェックと言えます。エラーを見つけた際には当然工数がかかってしまいますが、納品後の修正はさらにハードルが高くなります。完璧を目指し、システムテストを行いましょう。
運用テスト
「運用テスト」は実際の運用と同じ環境でテストを行います。ここで顧客の最終チェックが入り、要件定義通りにできているのかをチェックしていきます。ここまできてしまうと納期ギリギリであることも多いので、作り直すとなればかなり大変な作業となります。イメージとしては、ここでのエラーがないようにすることが納期を守る秘訣となります。
システム開発の流れ5.いよいよ本番環境での”導入・運用”
「導入・運用」に入ると、いよいよ本番環境でのシステム稼働となります。ここまで来てしまうと新たに発見されたバグやエラーは「事故」として扱われることが多いです。
基本的に導入後は運用・保守メンバーでエラー対応や新たな変更対応を行なっていくことになりますが、致命的なエラーとなると顧客のシステムを停止する事態にもなるので、エラーはあってはならないことです。
記憶に新しいものでは、銀行システムがエラーにより停止した事故がありました。詳細を調べていくと、納期段階で確認されていたエラーがトリガーとなり、システム停止に至ったそうです。
顧客や会社にもよりますが、何がなんでも納期を死守してしまうとこのような結果を招くことが多々あります。納期を守ることはもちろん大切ですが、どのようなエラーが発見されたのかと、それによりどんな障害が起こるのかをしっかり顧客に説明することで、会社の信用を保つことになります。
システム開発の流れは企業理念にもつながる
ここまでご紹介したのはシステム開発の基本的な流れであり、詳細を見ていくと様々なやり方が存在しています。また、要件定義前のヒアリングは営業部署が行なっていることがほとんどですので、どれくらい営業と開発側での連携が取れているのかが重要になります。
日本全体で見た際に、システムを開発して最終的に納品まで完了できるのは半分の5割ちょっとだと言われています。
もちろん、失敗した5割近くは赤字のままお蔵入りです。この数字を多いと見るか少ないと見るのは個人の判断にもよりますが、成功しているシステムを作る企業はテスト段階に膨大な工数を割いています。
また、今回ご紹介した流れをどれだけ開発者に浸透させるかも重要なポイントの一つとなります。テストに力を入れてシステム成功率を上げていくか、逆に数をこなして納期を早くしたり費用を抑えていくかは企業理念が関わってきます。
システム開発と言っても、開発者だけが関わるのではなく、営業や経営陣も巻き込み、同じ方向を向いて進んでいくことが成功への鍵だと言えることを忘れてはいけません。
まとめ
システム開発の流れと、成功に導くために重要なポイントを解説しました。
- システム開発の流れ5ステップ
- 要件定義
- 設計
- プログラミング
- テスト
- 導入・運用
- システムを開発して最終的に納品まで完了できるのは半分の5割ちょっと
- 成功しているシステムを作る企業はテスト段階に膨大な工数を割いている
「システムを開発したいがどのように相談すればよいか分からない」「企画段階から一緒に考えてほしい」などのご要望に応じるため、弊社ではDXワンストップソリューションサービスをご用意しております。
本サービスの強みは、ベンダー選定から設計・開発、導入支援、テスト、運用・保守、BPOまで、一貫したサービスを提供しており、どのようなニーズにもお答えすることができることです。
システム開発をお考えの企業さまは、是非お気軽にご相談ください。