ソフトウェア開発の流れを把握して全体像を理解しよう!
企業でソフトウェア開発を行う際、自社内で作業が分担されるのはもちろん、他社へ委託するケースも少なくないため、全体像をしっかりと理解出来ていないIT関係者は意外と多くいます。
しかし、企業でソフトウェア開発に取り組む場合はもちろん、外注する場合にも担当者が全体像を理解出来ていないと、適切なスケジュールや仕事を割り振ることは出来ません。
自身が携わる工程以外の部分も把握して、ソフトウェア開発の全体像を理解することで、プロジェクトを効率的に進めることが可能となります。
本記事では、企業のWeb担当者・ソフトウェア開発担当者の方向けに、ソフトウェア開発の流れを最初から最後まで工程別にご紹介していきたいと思います。
ソフトウェア開発の流れを事前に把握し、企業として効率的な開発を行う準備を進めましょう。
※本記事では、受託開発を想定してソフトウェア開発の流れを説明していきます。
目次
ソフトウェア開発の流れ1:営業から受注
ソフトウェア開発が始まる第一段階の流れとして、企業や個人から仕事の発注を受ける必要があります。
ソフトウェア開発をすることで得られるメリットやアイデアを提供し、予算やスケジュールに合意してもらって初めて契約の受注に到ります。
- 営業
- ヒアリング
- 企画・提案
- 見積もり・契約
営業
ソフトウェア開発は、業務の効率化を目的として行われることがほとんどです。
営業の段階では、新規開拓顧客・既存顧客に関わらず、現在の業務内容や運用方法を把握して、新しくソフトウェアを開発すること・既存のソフトウェアを改修することで、業務がどのように効率化出来るのかを模索する必要があります。
効率化の大まかなアイデアが固まった段階で、まず第一案として顧客候補に営業を掛けることになります。
顧客が少しでもアイデアに興味を持ち、ソフトウェア開発を検討してもらうことが出来ないと、次の工程に進むことは出来ません。
ヒアリング
ソフトウェア開発に興味を持ってもらうことが出来れば、次に顧客となる企業のより具体的な要望や業務についての情報をヒアリングする必要があります。
営業で提案した第一案では、あくまで外部情報を頼りに業務改善案を提案した状態です。
顧客となる企業独自の業務内容や改善要望に合わせて、どういったソフトウェアを開発するべきかの情報をより詳しく仕入れるのがヒアリング工程となります。
また、ヒアリングの段階で、いつまでに納品する必要があるのか、ざっくりとした予算、同業他社のシステム化状況などについても把握しておくことで、大まかなスケジュールや開発規模を把握します。
企画・提案
顧客からヒアリングした内容を元に、実際に開発するソフトウェアの企画を練り提案する段階です。
顧客の要望や問題を解決するためには、どのようなソフトウェアが必要か、費用対効果はどれくらい高いのかといった内容を開発する企業側で企画・提案します。
企画や提案は、通常一度きりで行うものではなく、何度も提案と修正を繰り返しながら、顧客側の要望を洗い出し、不安や疑問を解消しながら進めていくことになります。
見積もり・契約
実際に企画案が採用されると契約に移るわけですが、その前に開発に掛かる予算やスケジュールの見積もりが必要です。
企画案で決まったソフトウェア開発を実際に制作するには、どれくらいの期間が必要で、費用がいくら掛かるのかを見積もります。
予算とスケジュールの見積もりに顧客が合意した段階で、初めて契約が結ばれ、以降の開発工程に進んでいきます。
ソフトウェア開発の流れ2:要件定義からリリース
ここからは案件を受注した後の、実際にソフトウェア開発を実施する流れとなります。
一般的な開発では「要件定義」~「テスト」までを1つずつ順番に完了させていく「ウォーターフォール開発」が採用されているため、今回の説明でもウォーターフォール開発を行う前提でご紹介していきます。
- 要件定義
- 設計
- 開発
- テスト
- 納品
要件定義
要件定義の工程では、企画で提案したソフトウェア開発を実現するために必要な「要件」を全て洗い出す作業となります。
要件定義以降の作業では、要件定義で洗い出した内容をどのようにして実現するかを決め、実装することになるため、必要な機能を漏れなく抽出する必要があります。
顧客側はシステムに対する知識が豊富でないケースも多いため、開発企業が如何に顧客の望む、業務に必要な機能を聞き出すことが出来るのかが重要なポイントです。
設計
要件定義で挙がった機能を実際にシステムとしてどのように実現するのかを考えるのが「設計」工程です。
設計の中でも「基本設計」と「詳細設計」の大きく2つに作業が分かれます。
基本設計では、画面デザインやデータベース、各種要件をどの機能で実装するかなどを考えます。
詳細設計では、複数の機能で利用するモジュール単位の分割や実際にプログラムを実装出来るように条件分岐やデータ入出力の具体的な方法などについて明確化します。
開発
開発工程では、設計工程で確定した仕様書に従って忠実に実装します。
開発の段階では、新たに何かを決めることは基本的にありません。
これまでの要件定義・設計で決まった内容に沿って、ソフトウェアとして実現出来るようプログラムに落とし込む作業となります。
ソフトウェア開発の中でも「開発(実装)」は最も期間を要する作業工程です。
テスト
開発したプログラムが、設計書通りに動いているかを確認するのがテスト工程です。
テスト工程は「単体テスト」「結合テスト」「システムテスト」の大きく3つに分けられます。
単体テストでは、開発した各画面や各機能単位で設計書の通り漏れなく動いているかを確認します。
結合テストでは、各画面や機能を一連の流れで動かした際に、想定した通り画面表示され、データが登録されているかのテストを実施します。
システムテストでは、実際に顧客が利用することを想定した使用方法で不具合が起きないかを試します。
システムテストは運用テストとも呼ばれ、顧客の業務を1年または数年分想定して、システムの動作確認を行う方法がテストの最終段階として一般的です。
納品
テストまで完了したソフトウェアを実際に納品します。
Webシステムの場合には、サーバーにソフトウェアを配備して、ブラウザからインターネットを介して利用出来るように設定します。
アプリケーション開発では、顧客が利用するコンピューターにセットアップまでして納品完了となるケースが多いようです。
最終的に顧客側に動作確認を行ってもらい、承認をもらって納品完了となります。
納品は開発したソフトウェアだけでなく、一般的に仕様書や運用マニュアルなども含まれます。
ソフトウェア開発の流れ3:運用・保守
ソフトウェアの納品が完了した後も、一定期間または半永久的に運用・保守と呼ばれる工程を開発企業が請け負うケースも多くなります。
- 運用
- 機能改善
- 保守
運用
運用業務では、問い合わせ対応やシステムの機能チェックなどを定期的に行います。
ソフトウェアに関する疑問点や不具合に対する対応はもちろん、ハードウェアやミドルウェアが要因となる問題が起きていないかを一定間隔でチェックする必要があります。
規模の大きなシステムでは、開発企業に依頼されることが多く、規模の小さいシステムでは運用マニュアル通りに顧客自身が運用を行うケースが多いようです。
機能改善
機能改善は必須工程ではありませんが、追加依頼として顧客から要望が出るケースも少なくありません。
顧客側で実際に運用を始めると、こんな機能が欲しい、この機能は改善が必要などの新しい要望が生まれてくるものです。
顧客の新しい要望に答える形で、機能改善の対応が必要になることも珍しくないと考えて良いでしょう。
保守
保守工程は、運用と同義として捉えることも可能ですが、あえて別工程として解説していきます。
保守では、主にソフトウェアの周辺環境が要因となる不具合対策や問題解決が業務となります。
例えば、OSアップデートやブラウザアップデートなどが実施された際に、ソフトウェアが問題なく動くことを確認したり、場合によっては修正を加えることが保守作業です。
運用業務では、実際にプログラムに変更を加えることはほとんどありませんが、保守作業ではプログラムの改修も含めて動作保証のサポートを実施します。
まとめ:ソフトウェア開発の流れを把握してスムーズにプロジェクトを進めよう!
本記事では、ソフトウェア開発の流れを「営業」~「運用・保守」に渡るまで全工程に渡ってご紹介してきました。
ソフトウェア開発においては、「ソフトウェア開発の流れ2」で紹介した内容ばかりが意識されがちですが、実は企業で開発を進める場合、営業や保守に関してもしっかりと理解した上でプロジェクトを進める必要があります。
今回ご紹介した内容を基本として理解し、実際のプロジェクトを効率的に進めることが出来るよう、事前準備に取り組んでみてください。