- 更新日 2024.10.21
- カテゴリー システム開発
システム開発のライフサイクルとは?発注に失敗しないポイントを解説【2024年最新版】
システム開発を行う上では、さまざまなステップを踏みながら進めていきます。そこで必要になる考え方が、システム開発の「ライフサイクル」です。ライフサイクルを知っておくことで開発を外注する際のポイントや全体像が掴めます。
本記事では、システム開発のライフサイクルの概要や具体的な内容、発注者が知っておくべき理由を解説します。また、システム開発を外注する上で、失敗しないポイントについてもご紹介します。
最後までご覧いただき、システム開発の発注の参考にしてください。
※無料でダウンロードできる中小企業向けシステム開発の進め方をご用意しています。こちらもあわせてご活用ください。
システム開発依頼前にチェック 中小企業向けシステム開発の進め方|完全ガイドブックのダウンロード | システム幹事 中小企業向けシステム開発の進め方 無料でプレゼントいたします! ・システム開発を成功させる7ステップ ・システム開発の4つ...
システム開発ライフサイクルとは
システム開発ライフサイクルとは、開発したいシステムの「企画から完成後の運用まで」の流れのこと。英語では、「System Development Life Cycle」と呼ばれその頭文字からSDLCと呼ばれることもあります。
システム開発におけるライフサイクルは、大きく5つの工程に分かれます。
1.要件定義(どのようなシステムが必要なのかを企画する)
2.設計(企画したシステムの内部・外部設計を実施する)
3.開発(実際に設計したシステムを開発・実装する)
4.テスト(システムが機能を満たしている、バグがないかチェックする)
5.運用・保守(完成後のシステムを安定稼働させる)
上記の5つの工程となり、具体的に何をするかは後ほど説明します。
システム開発のライフサイクルを発注者が知っておくべき理由
システム開発のライフサイクルを発注する側が理解しておくべき理由は、「発注側がどの作業にどんな関わり方をすればいいのか」を理解するためです。
システム開発の失敗で多い原因が、「素人だからといってプロ(開発会社)に丸投げしてしまう」こと。開発工程を完全に委ねてしまうことで、要求した機能が不十分な状態で後半の工程に行ってしまったり、余裕のないスケジュールが設定されてしまったり、発注者と密なコミュニケーションが取れないなどの原因となります。
その結果、大幅な修正が必要になる、納期が大幅に遅れるなどのトラブルに発展する危険性があるのです。逆に、システム開発のライフサイクルを把握しておくと、プロジェクトの流れが把握しやすくなり、開発会社とのコミュニケーションも取りやすくなるため、より理想のシステムに近づくことができます。
システム開発で多い失敗や炎上について説明した記事もあるので、参考にしてください。
関連記事:システム開発の失敗原因から防止対策まで徹底解説!依頼者は必見!
関連記事:システム開発で炎上しないために発注者が注意すべきポイント
システム開発のライフサイクルの5工程
続いて、システム開発のライフサイクルの5工程について説明します。ここでは、どんな作業が行われ、発注側はどうか関わるのかを理解してください。
1.要件定義
要件定義は、システム開発ライフサイクルの最初のステップです。要件定義は「どんなシステムを開発するのかを見える化すること」。発注者の希望を叶えるために必要な機能などを明確にする作業です。具体的には下のような項目を決めます。
・開発目的
・ターゲット
・予算
・必要な機能
・用いられる技術
・スケジュール(納期)
・必要な人員(工数)
・実装手順
要件定義の段階で、第1段階の見積もりが出されます(細かい機能なども含めた見積もりは基本設計)。要件定義は開発会社がヒアリングする形で進行しますが、ここで綿密な打ち合わせ・協議をしないと「納期が遅れる」「不十分な機能で納品された」などの事態になりかねません。プロジェクトの成否を左右する重要な工程なので注意してください。
関連記事:システム開発の要件定義とは?受託開発における重要性や進め方を解説!
要件定義の前に要求定義もある
実際のシステム開発では、要件定義の前に要求定義を行う場合があります。要求定義とは、発注者の目的やニーズをヒアリングしたうえで「開発するシステムに何を求めるのか」を具体化する工程のこと。どんな課題を抱えて、どうすれば解決できるのかを言語化していきます。例えば「○名が同時にアクセスして××を1秒以内に並列処理できるシステム」「○○ボタンをクリックすると、××と△△を処理できる機能」といった概要を決定します。
関連記事:システム開発における要求定義の重要性|要件定義との違いを解説!
2.設計
設計段階では、要件定義で定義したものをもとに、システムに実装する機能を明確化・具体化する作業です。「設計」は2つに分かれ、発注者が主に関わるのは基本設計。
「基本設計」…発注者が見ても分かる設計書を作成する
「詳細設計」…プログラマー向けの設計書を作成する
基本設計は発注側がシステムが開発される前に関わる最後の工程のため、要件定義と並んで重要な部分。開発会社が作成する「基本設計書」に的確なフィードバックをすることが大切なため、下記の記事を参考に、しっかりとコミュニケーションを取るようにしてください。
関連記事:システム開発の基本設計とは?重要性・発注者としての関わり方を解説!
関連記事:システム開発の詳細設計とは?プロジェクトの位置付け・役割をわかりやすく解説!
3.開発
Webシステム |
業務システム |
モバイルアプリ |
汎用系業務システム |
Java PHP Ruby Python JavaScript |
Java C/C++ C# Python |
Java JavaScript C# Swift Kotlin |
Java C++ COBOL |
開発は、先程の「設計」をもとに、上記のような様々な言語、後ほど紹介する4つの開発手法にもとづいてプログラムのコーディングを行います。開発者がプログラミングツールで定義されたガイドラインに従いながら、コードを作成していきます。
ここからシステムができるまで、発注側が関わることは稀です。そのため、前工程の基本設計の時点で、しっかり完成するシステムを固めておく必要があるのです。
関連記事:システム開発の主要言語を解説!業務アプリケーションによく使われている言語は?
4.テスト
単体テスト |
画面や機能ごとに、動作の検証をする |
結合テスト |
他の機能やシステムと連携させて、動作の検証をする |
総合テスト |
本運用を想定して、システム全体の動作を検証する |
受入れテスト |
納品前に仕様書の通り完成しているか確認する |
システムをリリースする前に、開発したシステムのテストを行います。完成したITシステムをテスト環境に展開し、バグがないか、欠損はないかなどをテストします。
テスト段階でバグや欠損が見つかった場合は、開発チームが修正して再テストを行い、実装レベルまで達しているかを確認します。
ここは発注者がメインでレビューをしますが、開発会社の協力も必要です。システムの操作方法といった基本的なことはもちろん、そのシステムに関するデータを用意してもらうなど、開発会社にも協力を依頼しましょう。
関連記事:システム開発のテスト工程を徹底解説!システムテストと受け入れテストの違いは?
5.運用・保守
・システム運用…システムを管理・監視し、稼働状況を常に把握する
・システム保守…障害が発生した際に原因を究明してシステムを復旧・修正する
システム運用
システム開発の運用は、開発・リリースされたシステムを継続的に安定して稼働させるため、管理・監視を行うことです。
システム内で稼働しているサーバーやネットワークなどが正常に稼働しているか、状態を常に、または定期的にモニタリング。悪影響を及ぼすリスクを回避するため、マニュアル更新やトラブル対策なども講じ、管理を行います。
システム保守
一方のシステム保守では、トラブル再発を防止する改善・修正など「システムの改変」も業務に含まれます。
運用担当・保守担当が連携しながらスムーズにシステムを稼働させるためには、システム開発時から運用・保守のしやすさを念頭においておくことも重要です。
また、運用・保守を自社内で行うには人件費や相応のスキルが求められます。運用・保守はすべて外注する企業も少なくありません。
システム開発においては、構築費以外にも、システムを導入してからのランニングコストなども含めたTCO(Total Cost of Ownership)の総額を考慮することが大切です。
システム開発の運用・保守で具体的に何をするかは下記の記事を参考ください。
※ここまで読まれて、システム開発を依頼する側にも相応の知識が必要であることが理解できたと思います。自社に合う最適な開発会社を選ぶのもハードルの高い仕事です。
関連記事:システム運用とは?開発との関係・保守との違い・重要性・作業内容を解説!
※システム開発の進め方については、こちらもあわせて参考にしてください。
システム開発依頼前にチェック!
中小企業向けシステム開発の進め方をまとめました。
無料でダウンロードする
システム幹事では、実際にシステム開発を経験したプロのアドバイザーが無料で開発会社を選定します。相談料・紹介料は一切かからない完全無料になりますので、お気軽にご相談ください。
システム開発の4つの手法
手法 |
向いているシステム開発 |
ウォーターフォール |
・機能・予算・納期が明確なプロジェクト ・大規模な業務システムの開発(銀行や公的機関など) |
プロトタイプ |
・前例のないWebアプリケーション・システムなどの開発 ・全体をコントロールしやすい小〜中規模プロジェクト |
アジャイル |
・要件や仕様が固まっていないプロジェクト ・ECやSNSなどのWebサービス、モバイルアプリやゲームなど |
スパイラル |
・品質重視の大規模プロジェクト(業務システム) ・途中で仕様変更が生じる可能性のある開発 |
システム開発を依頼するときは、ライフサイクルだけでなく、どんな手法で開発されるのか理解しておくことが大切です。依頼するシステムの内容によっては、向き不向きがあるからです。
関連記事:システム開発の手法4つの特徴・メリット・デメリットを解説!【比較表付き】
1.ウォーターフォール
ウォーターフォールモデルはシステム開発ライフサイクルの中でも古く、一般的なモデルです。「要件定義」>「設計」>「構築」>「テスト」と、作業工程をトップダウンで行っていきます。
ガントチャートを使用して、上記の工程を一度で終わらせる計画を立て、進捗管理をしていきます。
ウォーターフォール型が向いているシステム開発
・機能・予算・納期が明確なプロジェクト
・大規模な業務システムの開発(銀行や公的機関など)
ウォーターフォール型は、ひとつの工程が完了してから次の工程に進むため、プロジェクトの安定的な進行が期待できる開発手法です。つまりウォーターフォール型は、必要な機能や要件が明確であるプロジェクト、予算・納期が明確なプロジェクトに最適なシステム開発手法。
具体的には、業務要件のハッキリしている業務アプリケーション・システム開発や、専用のコンピューターを活用する汎用系のシステムなど。また、多くのエンジニアの動きを管理しやすいので、大規模システム開発にも向いている開発手法です。
関連記事:ウォーターフォール型システム開発とは?開発工程・メリットを解説!
2.プロトタイプ
プロトタイプ型の開発とは、開発(プログラミング)に入る前に試作品を作成して発注者に確認してもらう方法です。
開発の早い段階で試作品を開発し、ITシステムを利用する人が試作品を評価することで、システムの設計を開始します。ITシステムを利用する人にとって、プロトタイプモデルはそのITツールが仕様に適合しているかどうか比較検討が可能です。
向いている開発プロジェクト
・前例のないWebアプリケーション・システムなどの開発
・全体をコントロールしやすい小〜中規模プロジェクト
認識のズレを修正しやすく、発注者のニーズを反映させやすいプロトタイプ型は、仕様・要件のブレやすい「新規事業・新サービス立ち上げ」時のシステム開発プロジェクトに最適な開発手法。具体的には、前例のないWebアプリケーション・システムなどのプロジェクトが挙げられます。
試作品でイメージを具体化できるプロトタイプ型は、発注者がシステム開発に慣れていない場合にも有効な開発手法。ただし、関与する人数が多くなる大規模プロジェクトは、プロトタイプ型のデメリットが強調されがちなのも事実です。全体をコントロールしやすい小〜中規模プロジェクトがおすすめです。
関連記事:システム開発におけるプロトタイプとは?注目される理由・概要・メリットを解説!
3.アジャイル
アジャイル開発は、大きな単位でシステムを区切らず、小単位で実装とテストを繰り返して開発を進める方法です。従来の開発手法に比べて開発期間が短いため、アジャイル(素早い)と呼ばれます。
反復(イテレーション)と呼ばれる短い開発期間を採用することで、リスクを最小限に抑えようとする開発手法です。
向いている開発プロジェクト
・要件や仕様が固まっていないプロジェクト
・ECやSNSなどのWebサービス、モバイルアプリやゲームなど
機能ごとに小さく開発・リリースを繰り返すアジャイル型は、スモールスタートさせて市場の反応を見ながら成長を狙う新規事業、サービス開発などのプロジェクトに最適。
たとえば、要件や仕様が固まっていないプロジェクト、将来的な市場の動きを読むのが難しく、機能の優先度に変更が生じる可能性のあるプロジェクトなどが考えられます。
具体的には、ECやSNSなどのWebサービスやアプリケーション、モバイルアプリやゲームなど市場動向が予測しにくく、ライフサイクルが早いプロダクトが挙げられます。
ただし、方向性のブレやすいアジャイル型は、プロトタイプ型とは違った意味で大規模プロジェクトには向きません。発注側の担当者がしっかりとプロジェクトにコミットできないのであれば、アジャイル型の効果も発揮できないでしょう。
関連記事:アジャイル開発とは?メリット・デメリット、発注側の注意点を解説
4.スパイラル
スパイラル型の開発は、システムの開発工程をサブシステム(機能)ごとに分割し、重要な機能から開発していく手法です。
要件定義以降の「設計」>「構築」>「テスト」>「評価・改善」を1つのサイクルと捉え、ループ線を描くように反復してシステムを完成させます。発注者から1つの機能にOKが出たら、次の機能の開発に取りかかる手法です。
向いている開発プロジェクト
・品質重視の大規模プロジェクト(業務システム)
・途中で仕様変更が生じる可能性のある開発
スパイラル型の開発は、検証と改善を繰り返す手法のため、クオリティを重視する大規模なプロジェクトに最適です。具体的には、要求のクリティカルな業務システムなどが挙げられます。
あまりにもプロジェクトの規模が大きいと、トップダウン設計(全体から詳細に落とし込む)だけでは全体像をつかむことが難しいケースがあります。こうしたケースでは、ボトムアップ設計(パーツの詳細を詰めて結合する)を組み合わせることが非常に有効。
また、スパイラル開発はプロジェクトの計画段階では詳細を細かく決めないため、柔軟な対応が可能です。途中で仕様変更が生じる可能性のある開発に向いています。
関連記事:スパイラル型システム開発の特徴・メリット・デメリットは?アジャイル・プロトタイプとの違いも解説!
※ここまで読んで、どの開発手法が自社に合うのか迷っている方はシステム幹事に相談ください。実際にシステム開発を経験したプロのアドバイザーが無料で開発会社を選定します。相談料・紹介料は一切かからない完全無料になりますので、お気軽にご相談ください。
システム開発を外注する際に気をつける3つのポイント
最後に、システム開発を外注する際の注意点を解説します。以下の3つのポイントを知ることで、システム開発が成功に近づきます。
1.「何を作りたいか」を明確に言語化する
ITシステムを構築する場合、開発会社に丸投げしてはいけません。新しくシステムを導入して何を実現したいかを言語化しましょう。
要件定義の精度を上げるためには発注者側も下記の項目は明確にする必要があります。
・現在の業務の課題・問題点
・システム導入で改善される点
・全社にとってのメリット
RFP(Request for Proposal)」と呼ばれる提案依頼書で、プロジェクトの目的や達成したい目標、スケジュールなどを記載し、外注先とオリエンテーションを行います。RFPをもとに外注先は提案書・見積書を作ります。
また、ITシステム開発では、システム担当者だけでなく、システムを将来的に使う社員を巻き込むことも大切。新しいシステムの導入となると、社員は重荷に感じてしまう場合もあります。いかにこれから導入するITシステムが社員にとって有効なのかを示すことが重要です。
関連記事:システム開発の依頼準備8点!プロジェクトを成功に導く外注ガイド
2.見積額だけで外注先を選ばない
システム開発は膨大な費用がかかるため、つい金額の安い開発会社に依頼してしまいがちです。しかし、金額が安いことには理由があり、安易に格安の制作会社を選んでしまうと以下のようなトラブルにつながりやすくなります。
1.要望に満たない機能のシステムができてしまった
2.成果物をコントロールするのに時間が取られ、時間が取られてしまった
3.運用時点の要望に答えてもらえず、改善ができなくなってしまった
ITシステムを外注する場合、相場に詳しくない発注側からすると金額感がつかみにくいでしょう。そこで、複数の会社から見積もりをとり、価格の妥当性を確認しましょう。
「何に対してどのようなコストがかかるのか」、内訳を示してもらい、比較検討するのがベストです。安さばかりを重視すると、その後の保守・運用に費用がかかったり、汎用性に乏しかったりすることもあります。
システム開発にどれくらい費用がかかるのか、相場情報は下記の記事を参考にしてください。
関連記事:システム開発の費用・相場を徹底解説!料金を抑えるコツも紹介!
3.契約内容を確認する
トラブルを防ぎスムーズに外注をするには、契約内容の確認が必要です。主な契約には、成果物に報酬を支払う「請負契約」と労働自体に報酬を支払う「準委任契約」があります。システム開発は「請負契約」が多く、システム運用保守は「準委任契約」です。
このほか機密保持契約(NDA)の締結も必須です。知的財産権の所在や再委託の可否も明記しておきましょう。法務や総務のしかるべき有資格者にチェック依頼するようにしてください。
契約書のチェック項目は下記のようなものがあるので、詳しくは関連記事を参考ください。
・多段階契約か?一括契約か?
・システム開発対象の特定・明確化
・成果物の納品・検収
・委託費用とその方法
・成果物の所有権・知的財産権
・再委託の可否
・契約不適合責任の範囲・期間
・損害賠償の制限・範囲
関連記事:システム開発の契約とは?契約形態・契約書の注意点を解説!
システムの開発会社を比較するチェック項目
担当者の評価シート
カテゴリ |
質問(評価ポイント) |
担当者A |
担当者B |
相性
|
担当者の話は分かりやすいか 専門用語を丁寧に説明してくれるか |
◯ |
△ |
メールや返信など担当者のレスポンスは良いか |
◯ |
△ | |
自社の要望をしっかりヒアリングしてくれるか |
△ |
◯ | |
熱意 |
担当者の提案の数は多いか |
◯ | × |
自分の意見をはっきり言ってくれるか |
◯ | △ |
最後に、会社・担当者を比較するときにチェックすると良い評価シートを紹介します。
役員や上司など「意思決定者」に知識がない場合、価格だけで発注先を選んでしまいがちです。安易に格安の制作会社を選んでしまうと、思っていた成果につながらない可能性が高いです。
そこで重要になるのが担当者との相性。評価シートを活用し、多角的な視点から選定するようにしましょう。いくら有名で実績のある会社でも、担当者との相性が悪いと成果の出るプロジェクトになりません。担当者の動きもしっかり見ておくようにしましょう。
システム開発のライフサイクルまとめ
ITシステムの開発において、重要となるライフサイクルについて解説しました。各工程で、発注者側がどう関わるのかが理解できたと思います。ライフサイクルを知っておくことで開発を外注する際のポイントや全体像が掴めますので、システム開発の発注にお役立てください。
とはいえ、自社に最適な開発会社を選ぶのは時間もかかる上に、判断基準が難しいところ。その場合は、システム幹事にご相談ください。
専門のアドバイザーが、予算や目的を丁寧にヒアリングして、最適な開発会社をご提案いたします。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
システム幹事の紹介先に発注しなければならないわけではありませんので、まずは気軽にお問い合わせください。
Q. システム開発のライフサイクルとは何ですか?
システム開発のライフサイクルとは、開発したいシステムの「企画から完成後の運用まで」の流れのことです。大きく分けて「要件定義」「設計」「開発」「テスト」「運用・保守」の5つの工程があります。
Q. システム開発のライフサイクルとは?
システム開発のライフサイクルとは「開発したいシステムの企画から完成後の運用までの流れのこと」です。詳細は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人