
システム開発は、「システム企画」や「要件定義」などの上流工程を誤ると、想定外のトラブルにつながります。
「納期遅延」や「コスト増」、さらに「完成したシステムが現場に合わない」などのトラブルは決して珍しくありません。
本記事では、発注者としての「システム開発への向き合い方」を解説します。
開発プロセスの全体像から、よくある落とし穴、その回避方法などをまとめました。
システム開発を成功させたい方は、ぜひ最後までご一読ください。
1.一般的なシステム開発の流れ
まずは一般的なシステム開発を解説します。
システム開発は、一般的に次のような工程に分かれます。
(1)システム化計画
(2)要件定義
(3)仕様設計
(4)開発
(5)テスト
それぞれ詳しく見ていきましょう。
(1)システム化計画
まずは発注者側で「システム化計画」を行います。
システム化計画では、おもに以下の点を明確にします。
・どのようなシステムが必要か
・ビジネス上の目的
・解決したい課題
・投資に対する効果(ROI)
上記を検討し、システム化の基本構想を練り、プロジェクト全体の計画を立てます。
システム再構築の場合でも、企画段階で課題を議論しておくことがプロジェクト成功の鍵となります。
システム化の計画を行い、どのようなシステムが必要か明確になったのち、開発会社へ発注を行います。
(2)要件定義
まずは「発注者」と「開発者」の間で、要件定義を行います。
システム開発の要件定義では、おもに以下の点を明確にします。
・何をしたいか
・何を解決したいのか
この段階では、目に見える機能要件だけではなく、システムの性能や安定性、セキュリティなどの非機能要件も確認します。
要件定義が不十分なまま開発を進めると、後の工程で手戻りが発生し、納期の遅れや費用増加などのトラブルにつながります。
発注者にとって、要件定義は最も時間がかかる工程です。
しかし、要件定義を丁寧に行えば、後の工程は確認作業が中心となり、全体の進行がスムーズになります。
(3)仕様設計
仕様設計では、要件定義で決めた「実現したいこと」をもとに、システムの「設計図」を作成します。
仕様設計は、おもに以下の3つに分かれます。
外部設計:「画面のレイアウト」や「ボタンを押したときの動き」「帳票レイアウト」など、ユーザーが見たり操作したりする部分の設計。
基本設計:「どのサーバーがどの処理を担当するか」「画面とデータベースの連携」など、システム全体の構成をおおまかに設計。
詳細設計:「入力値にエラーがあった場合の処理」「データベースの参照テーブル」など、プログラムが動くための具体的な設計。
外部設計は、「発注者」と「開発者」が共同で行う工程で、画面のサンプルなどを確認しながら、開発するシステムのイメージを共有します。
それ以降の基本設計・詳細設計は開発者が担当し、最終的にプログラムが実装できるレベルまで設計を落とし込みます。
(4)開発
仕様設計に沿って、実際にプログラムを書く工程です。
具体的には、
・データベースの構築
・画面を作り業務の流れをシステムに落とし込む
・外部システムとの連携
などを行います。
チームで分担し、バグを出さないようレビューを重ねながら進めていきます。
(5)テスト
できあがったシステムが、設計どおりに正しく動作するか確認する工程が「テスト」です。
テストには、以下の種類があります。
・単体テスト:部品ごとに確認
・結合テスト:部品同士のつながり確認
・総合テスト:シナリオ通り動くか確認
・ユーザー受入テスト:(発注者により)イメージどおりのシステムか確認
それぞれのテストで不具合や仕様のズレを確認し、品質を高めていきます。
なお、テストは機能を確認するフェーズであり、基本的に機能変更はできないことを抑えておきましょう。
2.失敗するシステム開発
失敗するシステム開発には、いくつか共通するパターンがあります。
その多くは「システム企画」や「要件定義」など、いわゆる上流工程の詰めの甘さが原因です。
この章では、これまでに寄せられたご相談をもとに、失敗につながりやすい要因を以下の6つに整理しました。
(1)システム企画を軽視する
(2)参考システムの調査不足
(3)「参考システムと同じ」という要件定義
(4)事業責任者や業務部門の参画不足
(5)業務継続性が不明確
(6)システム再構築(モダナイゼーション)のリスク軽視
それぞれの要因を具体的に解説していきます。
(1)システム企画を軽視する
システム開発において、「今あるものを直すだけ」「とりあえず作ればよい」と考え、初期の計画を軽視することがあります。
しかし、システム企画の軽視は、以下の問題に発展します。
・方針が決まっていないため、仕様の統一に時間がかかる
・目的が曖昧で、適切な開発手法を選べず、コストが膨らむ
・要件の優先順位が定まっていないため、意思決定に時間がかかる
そのため、「どんな課題があるのか」「どんなシステムが必要か」を明確にし、関係者間で認識をそろえることが重要です。
この段階でリスクを把握し、対策を講じておくことで、後のトラブルを未然に防げます。
企画が不十分なまま開発を始めれば、やり直しが増え、プロジェクトの失敗リスクが高まります。
(2)参考システムの調査不足
システム構築を行う際に、開発会社から「参考システム」を提示されることがあります。
しかし、そのシステムを「画面の見た目」や「基本操作」だけで判断してしまうと、以下のようなトラブルにつながります。
・必要だと思っていた機能がなく、あとから機能追加が必要になる
・他のシステムと連携できず、手作業が発生する
・使用するパソコンやネットワーク環境に合わず動作しない
こうした事態を防ぐには、参考システムをより深く調べることが重要です。
たとえば、以下の点を確認しておくとよいでしょう。
・各機能が「何のために」「どのように」使用するのか
・どんな環境(ブラウザの種類、インターネットの条件など)で動くのか
・他システムとのデータ連携
これらは一例ですが、参考システムの全体像を把握したうえで、業務に必要な機能や環境を幅広く確認しましょう。
(3)「参考システムと同じ」という要件定義
「A社と同じでよい」「以前使っていたシステムのように」など、参考システムに頼った要件定義は、トラブルの原因になります。
見た目が似ていても、操作性や業務の背景が異なれば、意図しないシステムとなる可能性があるからです。
具体的には、以下のトラブルが想定されます。
・自動入力や補助的な機能が抜けており使い勝手が悪くなる
・実際の業務フローに合わず、仕様変更が生じる
・処理速度が異なり、運用に支障が出る
こうしたトラブルを防ぐには、「何を、なぜ、どう実現したいのか」をしっかり定義する必要があります。
また、画面や機能だけでなく、「運用ルール」や「非機能要件(処理性能など)」も含めて明確にしましょう。
発注者と開発側の認識を早期にすり合わせることが、トラブルを未然に防ぐ鍵となります。
(4)事業責任者や業務部門の参画不足
システム開発では、サービスや業務の方向性を決める責任者の参画が重要です。
とくに新規サービスの場合、責任者の判断がなければ、目的や優先順位が定まらず、開発の方針がぶれてしまいます。
また、実際にシステムを使う業務部門が参画しないと、運用上の要件が反映されず、必要な機能が抜け落ちることがあります。
仮に「情シス部門」と「開発者」だけで開発を進めてしまうと、責任者や現場との認識のズレが生じるでしょう。
その場合は、想定外の修正対応が発生し、予算オーバーや納期遅延につながります。
「システム企画」や「要件定義」の段階から、責任者・業務部門・情シス部門が連携して取り組むことが、システム開発成功の鍵となります。
(5)業務継続性が不明確
システム構築では、稼働開始後も業務を滞りなく続けられる「業務継続性」が重要な課題となります。
特に、災害や障害などの非常時に、どの業務を、どの程度まで復旧させる必要があるかを、事前に整理する必要があります。
大規模なシステムであれば、SLA(サービスレベル合意書)が求められます。
中小規模のシステムであっても、最低限以下の点は整理しましょう。
・重要業務の優先順位(どの業務が止まると困るのか)
・データのバックアップ頻度や復旧に要する時間の目安
・システム障害時の業務継続手段(紙対応、手作業など)
これらを整理せずに開発を行うと、トラブル発生時に業務の完全停止や復旧の遅れが生じ、損害の拡大につながります。
発注者は、開発初期段階から開発者に対し、「業務継続方針」の共有が不可欠です。
(6)システム再構築(モダナイゼーション)のリスク軽視
システム再構築には、特有のリスクがあります。
具体的には、以下のものです。
・現行業務の仕様書が存在しない
・現行業務を熟知した担当者がすでに異動、退職している
・長年の改修により肥大化、複雑化している
これらのリスクを軽視すると、設計や実装のやり直しが頻発し、結果としてスケジュールの遅延や予算超過につながります。
そのため、発注者は以下のタスクを主体的に取り組む必要があります。
・現行業務のヒアリングや棚卸しを行い、整理された業務フローを用意する
・業務知識を持つ関係者をプロジェクトに参画させる
さらにシステム稼働後も、以下のようなタスクは発注者が主体的に取り組む必要があります。
・新システムを活用した業務フローの作成
・データ移行後の確認作業
・システム稼働後の改善対応
上記は一例ですが、このようなタスクを発注者が主体的に対応すると、システムの効果を最大限に引き出し、投資対効果の高いプロジェクトが実現できます。
3.弊社のシステム開発の流れ
システム開発は、「要件定義」から「設計」「開発」「テスト」と進むのが一般的です。
しかし、工程を形式的に進めるだけでは、お客様が抱えている「本質的な課題」は解決できません。
弊社では、お客様の課題や目的を深く理解したうえで、ビジネスの成功に貢献するシステム開発を目指しています。
そのために、以下の独自アプローチでプロジェクトを支援します。
(1)システム企画:企画から携わり、成果にコミットする開発へ
(2)要件定義:モックを活用し、認識のズレを防ぐ
(3)開発:定期的な打ち合わせにより、進捗状況を可視化
(4)テスト:ユーザーテストによる品質担保
(5)運用:運用も見据えたカスタマーサポート
それぞれ詳しく解説します。
(1)システム企画 ~企画から携わり、成果にコミットする開発へ~
弊社が行うシステム開発では、企画段階から参画します。
システム企画から携わることで、お客様の課題を解決し、最適なシステムが提供可能となります。
具体的には、システム企画に携わることで、以下のメリットがございます。
① 「課題」や「ゴール」の共有
システム開発を検討されるお客様の中には、「何を依頼したら良いか分からない」方も多くいます。
弊社では、お客様の現状や課題、そしてシステム導入によって達成したいゴールを丁寧にヒアリングします。
単なる技術提案ではなく、お客様のビジネス背景を踏まえたうえで課題解決に貢献します。
②独自のメソッドで課題を「見える化」し、最適な解決策を提案
お客様と共に課題を深く掘り下げ、解決すべき問題を特定します。
弊社独自の「開発の手引」や「ヒアリングキット」を活用し、システム化によって得られる効果を可視化します。
これにより、「費用対効果が見えづらい」といった不安を解消し、納得したうえでプロジェクトに着手できます。
これまで160社以上のシステム開発に携わった経験をもとに、お客様の状況に合わせた最適な開発計画を提案します。
③フェーズ契約・KPI設定・補助金支援で、経営リスクを抑える開発へ
弊社では、ご提案に納得いただいたうえで、フェーズごとの契約が可能です。
フェーズ契約の採用により、リスクを抑えつつ、各段階での目標達成を確認しながら柔軟に進めることができます。
また、契約時にKPI(成果指標)を明確化し、成功の基準を事前に共有いたします。
これにより、目指すべきゴールをブレずに管理できます。
さらに、「IT導入補助金」や「ものづくり補助金」の申請支援にも対応し、コスト面からもプロジェクトを後押しします。
(2)要件定義 ~モックを活用し、認識のズレを防ぐ~
契約後は要件定義に進みますが、弊社ではこの段階からモック(試作機)を提供します。
それは、システム完成形のイメージを視覚的に共有するためです。
一般的な開発は画面や操作感が分かりづらく、完成後にお客様との認識のズレが生じがちです。
弊社では、モックを通じて実際の操作感や画面構成を確認いただき、フィードバックを得たうえで開発を進めます。
要件定義の段階でシステムイメージを共有できるため、認識の齟齬を防ぎます。
(3)開発 ~定期的な打ち合わせにより、進捗状況を可視化~
要件定義の終了後は、システム開発を開始します。
開発期間中は、お客様と定期的な打ち合わせを行い、進捗状況を共有いたします。
密なコミュニケーションにより、計画との乖離を防ぎます。
また簡単な「コーディング」や「コードチェック」のAI活用により、コストを抑えた開発が可能となります。
(4)テスト ~ユーザーテストによる品質担保~
開発が完了に近づき、納品を行う前に「納品前ユーザーテスト」を実施します。
開発者側だけでなく、お客様に確認いただくことで、
・システムが要件通りに機能するか
・業務で問題なく利用できるか
を相互に確認します。
(5)運用 ~運用も見据えたカスタマーサポート~
弊社はシステムを「開発して終わり」ではなく、リリース後の運用やカスタマーサポートまで支援します。
企画段階から携わるため、開発のゴールや目的を深く理解しており、お客様と同じ目線で伴走いたします。
その結果、単なる保守対応にとどまらず、運用改善の提案や業績向上につながる支援が可能です。
プロジェクト全体の成功に向けて、開発後も積極的に関与していきます。
4.システム開発に普通はない
システム開発は、「普通はこうだろう」といった共通認識は存在しません。
発注者が自身の常識で判断すると、開発側との間にズレが生じ、プロジェクト進行の悪影響につながります。
また、システム開発は限られた期間と工数の中で進行します。
テストなどの工程で追加要望や仕様変更があると、重要な機能の実装が後回しになります。
結果として、本来必要だった機能が実装できなくなる可能性が生じるでしょう。
さらに、追加対応にはコストや期間がかかり、予算オーバーや納期遅延のリスクが高まります。
こうしたリスクを防ぐには、開発の初期段階から疑問や要望を率直に伝え、開発会社と共通認識を築くことが重要です。
開発者には、決定された要件に基づいてシステムを「作る責任」があります。
一方で、「何を作るか」を決める責任は発注者にあります。
双方の密なコミュニケーションにより共通認識を築くことで、満足度の高いシステム開発の実現につながります。
5.システム開発は弊社にご相談ください
システム開発をご検討であれば、ぜひ弊社にご相談ください。
弊社はこれまで10年以上にわたり、160社以上の企業様に対し、システム導入を行って参りました。
また、単なるシステム構築ではなく、経営課題の解決や業務改革につながる仕組みづくりを支援しております。
弊社の強みは、開発の「企画段階」からご相談いただける点です。
お客様が抱える「課題」や「ビジネス目標」を整理し、投資対効果の高い開発計画をご提案いたします。
・開発が必要だが、何から始めるべきか分からない
・過去のシステム導入では、期待していた効果が出なかった
このようなお悩みをお持ちの方は、以下のフォームより気軽にお問い合わせください。
システム開発の一歩目からサポートいたします。
https://www.ipa.go.jp/archive/publish/qv6pgp0000000xvu-att/000030719.pdf
お問い合わせ
業務効率化や業務フローにお悩みの方はぜひお気軽にご相談ください。
弊社ではどこに課題があるのかから一緒になって考え、解決策を提案いたします。