システム開発は、業務に影響を及ぼす大きなファクターです。しかし、実際にはシステム開発に失敗する事例は少なくありません。これらの中には、発注者側がシステム開発への関わり方が分からず、開発会社とうまくコミュニケーションを取れなかったことが要因となっていることもあります。システム開発の際には、発注者側もシステム開発工程を理解し、適切に関わっていくことが大切です。
本記事では、発注者が覚えておくべきシステム開発工程と、システム開発への関わり方をご紹介します。
目次 |
システム開発工程とは?
システム開発工程とは、システム開発における手順のことです。システム開発ではあらかじめ決められた工程に従って開発を行うことで、期限内に高品質なシステムを作れます。各フェーズで管理をしっかり行うことで、コストも抑えることが可能です。
システム開発には、要件定義や設計などの基礎となる「上流工程」と、コーディングからテストなど実際にシステムを作る「下流工程」があります。このうち上流工程は、特に発注者側が積極的に関わっていかなければなりません。なぜなら、上流工程が疎かになると、発注者が期待しているシステムとは違うものになってしまうためです。
10年ぶりに実施した「ITプロジェクト実態調査 2018 」(日経クロステック)によると、当初の計画通りにシステムが利用されていない理由として、最も多いのが「要件定義が不十分」で35.2%。次が「システムの企画が不十分・適切でなかった」で31.8%と、上流工程の不十分さによって、システム開発が失敗していることも少なくありません。
中には、発注者と開発会社で意思疎通ができておらず、システム開発が上手くいかなかったために裁判となった事例もあります。システム開発を成功させるには、発注側も工程を理解し、適切に協力することが大切です。
システム開発の流れ(ウォーターフォール)
システム開発には、主に「ウォーターフォール開発」と「アジャイル開発」、2つの開発方法があります。まずは、ウォーターフォール開発の流れについてご説明します。
ウォーターフォール開発とは
ウォーターフォール開発とは、開発の手順を順番になぞっていく開発手法のことです。基本的にはひとつの工程のすべてが終わってから、次の工程に移るという方法を採用しています。
ウォーターフォール開発は、予算や納期、スケジュールが把握しやすく、上流工程をしっかり詰めておくことで上質なシステム開発が可能です。また、どんなシステムでも開発しやすいこともメリットと言えます。
一方で、ウォーターフォール開発では、後戻りが想定されていません。開発の途中で仕様変更などがあると、スケジュールやコストに大きく影響するというデメリットもあります。
【ウォーターフォール開発の手順1】要件定義
要件定義はシステムの種類や予算、納期など、システムの基礎を決めるフェーズであり、システム開発において最も重要な部分です。現在抱えている課題と目的を伝え、必要な機能やシステムを開発会社とすり合わせていきます。
要件定義で大切なことは、目的を一貫させ、要望を漏れなく伝えることです。先述したように、ウォーターフォール開発で仕様変更を行うと、納期の延期やコストの増大といった問題が発生します。要件定義の段階で、システム開発によって自社が達成したいことや解決したい問題などをすべて伝えられるように準備しておきましょう。
おすすめは「提案依頼書」を作成すること。提案依頼書とは、開発の背景や希望する品質・納期、予算などを記載したものです。事前に提案依頼書を作成しておき、それを元に開発会社と相談を行いましょう。お互いの認識に齟齬がないように、しっかり確認することが大切です。
【ウォーターフォール開発の手順2】設計
要件定義が終わったら、それを元に開発会社がシステムの設計を行います。
設計には見た目を作る「外部設計」と、機能を作る「内部設計」がありますが、発注者として注視したいのは、外部設計と機能の内容です。操作性や効率の良いデザインになっているか、足りない機能はないかを確認しましょう。
次の開発段階に入ってしまうと、変更は難しくなります。機能やデザインは、設計の段階でよく確認することが重要です。
【ウォーターフォール開発の手順3】開発
設計が終わったら、プログラミングで実際に開発をしていきます。この工程は全面的に開発会社の仕事となるため、発注者が関わることはほとんどありません。
ただ、コーディングに利用する言語を軽く知っておいた方が、要件定義や設計の段階で話がしやすくなります。システム開発で利用する略称を後述しますので、参考にしてください。
【ウォーターフォール開発の手順4】テスト
コーディングが終わったら、計画通りに動くかテストを行います。テストには、個々の機能を確かめる単体テスト、機能を組み合わせて確認する結合テスト、システム全体をテストする総合テスト、現場環境での動作確認を行う運用テストの4つがあります。
この中で発注者が関わるのは、4つ目の運用テストです。運用テストでは、実際に社内の環境でシステムを利用して、操作性や不具合などを確認していきます。業務の流れに沿ってシステムを利用し、不具合があった場合には開発会社に報告しましょう。
運用テストは、発注側にとってシステムの最終確認です。リリースされてから不具合などが確認されると、別途費用がかかることもあるため、ここでしっかり確認を行いましょう。
なお、先述したそれぞれのテストは、開発を折り返しとした「V字モデル」を利用すると、上流工程と対応するテストが分かりやすくなります。
【ウォーターフォール開発の手順5】リリース・運用
テストが終わったら、リリースして運用となります。移行や導入の初期設定は基本的に開発会社が行いますが、リリース直後は問題が発生しやすい時期です。スケジュールに余裕を持たせたり、システム対応の人員を配置したりして、トラブルに対処できるようにしておきましょう。同時に、メンテナンスを行うためのコストも必要です。
もし改善点が見つかった場合には、発注側と開発会社が連携して修正を行いましょう。加えて、社内利用のための操作マニュアルなどを作成し、社内に浸透させることも大切です。
システム開発の流れ(アジャイル開発)
システム開発には、ウォーターフォール開発のほかに、開発スピードを重視した「アジャイル開発」があります。ここからは、アジャイル開発の流れについてご説明します。
アジャイル開発とは
アジャイル開発とは、設計からテストまでを繰り返し行い、ブラッシュアップしながら完成させていく開発方法です。1つの工程を完全に終わらせてから次の工程に行くのではなく、小さく区切った単位ごとに開発を行い、改善点を見つけ出して再度開発。これを繰り返して、プロダクトをより良いものにしていきます。
アジャイル開発にはいくつか手法がありますが、代表的なものが「スクラム」です。スクラムではそれぞれが決まった役割を行い、コミュニケーションを密にして開発を進めていきます。
ウォーターフォール開発では基本的に後戻りはできませんが、スクラムではテスト後に評価して再設計を行うことが基本となっているため、仕様変更に対応することが可能です。またコミュニケーションを密にすることで、プロダクトの進捗も把握しやすいことがメリットです。
一方で、仕様変更のしやすさ故に目的を見失いがちになる可能性もあります。
アジャイル開発の詳細については、下記の記事をご覧ください。
アジャイル開発とは?アジャイル開発の特徴とウォーターフォール開発との違い
アジャイル開発の手順
アジャイル開発でも、要件定義からリリースまでの流れはウォーターフォール開発と同じです。ただ、アジャイル開発の場合は、修正を前提としたスピード感重視の開発手法であるため、ウォーターフォール開発ほど、要件定義や設計を固める必要はないとされています。
一方で、ウォーターフォール開発よりも仕様変更が気軽にできることから、プロジェクト迷走の原因となるデメリットもあります。
単純な機能実装や最終形が固まっていない場合には、アジャイル開発を検討すると良いでしょう。
JBアジャイルの場合
JBアジャイルは、従来手法と比較して半分の開発期間、お客様と認識齟齬のない高品質、確実な納期遵守を実現し、基幹などの大規模システム開発も可能にした超高速開発手法です。
パッケージ製品と手組製品には、どちらもメリットとデメリットがありますが、双方の「良いトコ取り」をしたのがJBアジャイルです。
JBアジャイルの詳細は、下記をご覧ください。
超高速開発とは?パッケージと手組の良いとこどりを実現した「JBアジャイル」を紹介
覚えておきたいシステム開発の略語
システム開発では、略語が利用されることもあります。ここでは、システム開発でよく使われる略語をご紹介します。
工程 |
略語 |
正式名称 |
意味 |
企画 |
SP |
System Planning |
システムの企画を行うこと |
要件定義 |
SA |
System Architectural design |
要求分析。顧客の目的や要求を分析すること |
RD |
Requirement Definition |
要件定義。顧客の要望や目的を実現する方法を考える |
|
設計 |
BD |
Basic Design |
システムの基本設計 |
UI |
User Interface |
画面の操作方法やデザイン |
|
ED |
External Design |
外部設計。BDと同義 |
|
ID |
Internal Design |
内部設計。外部設計通りの動作をするための設計 |
|
DD |
Detail Design |
詳細設計。基本設計を実現させるための設計。IDと同義 |
|
SS |
System Structure Design |
構造設計。IDやDDと同義 |
|
FD |
Function Design |
機能設計。機能ごとの設計 |
|
PD |
Program Design |
プログラム設計。プログラムによる動作の設計 |
|
開発 |
PG |
Programing |
プログラミング。プログラムの作成 |
CD |
Cording |
コーディング。プログラミング言語を記述する |
|
テスト |
UT |
Unit Test |
単体テスト。機能ごとのテスト |
IT |
Integration Test |
結合テスト。複数機能を組み合わせたテスト |
|
PT |
Product Test |
総合テスト。プログラム全体のテスト |
|
OT |
Operations Test |
運用テスト。現場環境でのテスト |
【関連記事】上流工程とは?システム開発で起こり得るリスクと管理の重要性
システム開発を成功させるための注意点
システム開発を成功させるには、工程を理解することに加えて、発注者側が配慮すべき点がいくつかあります。ここからは、システム開発を成功させるために、発注者側が注意したい点をご紹介します。
開発会社に丸投げしない
システム開発の際は、開発会社に開発を丸投げしないことが大切です。
発注者側の目的や希望を開発会社にしっかり理解してもらわないと、思っていたものと違うシステムになってしまいます。そうならないために、上流工程やテストなど、発注者側の意見が必要な工程には積極的に関わっていきましょう。要件定義書や仕様書、見積書を読み込み、不明点があれば質問して、疑問が残らないようにしておくことが重要です。
また、設計や開発など、発注者の意見がそれほど必要ない工程でも、進捗状況や問題はないかを問い合わせるなど、密なコミュニケーションをとりましょう。発注側が積極的に関わることで、開発会社へも緊張感が伝わり、生産性がアップします。
もしこれらを怠って開発に入ってしまうと、あとから仕様を変更することになり、余計なコストがかかる可能性があるばかりか、納期の遅延にも繋がります。疑問を残さず、プロダクトの開発には密に関わっていきましょう。
最初は最低限の機能のみ発注する
システム開発の際は、最初から大きなシステムを作るのではなく、まず小さな機能のみを発注する方法もあります。
一気に大きなシステムを作ると、多くのコストがかかり、失敗したときのダメージも大きくなります。最初は最低限の機能を実装して、開発会社の実力や現場での反応を試し、柔軟に対応していくのもひとつの方法です。
こうした手法を採る場合には、アジャイル開発が向いています。急に大きなシステムを作るのが不安な場合には、アジャイル開発での小さなシステム開発から始めましょう。
余裕を持ったスケジュールを提案する
システム開発では、余裕を持ったスケジュールを提案することも大切です。要件定義ができない、予期しないトラブルなど、システム開発ではスケジュールに遅延が発生することも考えられます。こうしたトラブルによって、必要なときにシステムを利用できないことにならないよう、余裕を持った納期設定が重要です。
規模にもよりますが、システム開発は半年~数年程度の開発期間が必要なこともあります。開発会社のキャパや想定されるトラブルなどを考慮して、早めに開発の相談を行うと良いでしょう。
JBCCの上流工程支援ツール「XupperⅡ」で開発をスムーズに
システム開発におけるトラブルや納期遅れの多くは、上流工程が進まないことが原因です。これは逆に言えば、上流工程がスムーズになれば、開発はスムーズに進み、納期遅れの懸念も少なくなるということでもあります。
JBCCの上流工程支援ツール「XupperⅡ」は、上流工程の達人たちのノウハウとデータを元に、上流工程をテンプレート化。ビジネスフロー図やデータモデル図などの整合性を確認できるため、開発会社とのコミュニケーションもしやすくなっています。XupperⅡを利用することで、達人でなくても上流工程を完遂できます。
まとめ
システム開発を行う際には、発注者側も手法や工程をある程度理解し、関わるべき段階で要望や意見をしっかり伝える必要があります。特に上流工程では、発注者の目的や希望する機能が大切になってくるので、漏れのないようにすることが大切です。
システム開発工程での疑問や問題を抱えている企業さまは、JBCCにご相談ください。
JBCC株式会社JBCC株式会社は、企業のデジタル・トランスフォーメーション(DX)を支援する総合ITサービス企業です。クラウドサービスを中心にシステムの設計から構築、運用までを一貫して手掛けており、クラウド 1,740社、超高速開発による基幹システム構築 400社、セキュリティ 1,100社の実績があります。 |