上流工程とは 3つのプロセスと下流工程、おろそかにした場合のリスクも解説

上流工程とは 3つのプロセスと下流工程、おろそかにした場合のリスクも解説
システムやソフトウェアの開発プロセスにおける初期段階、「上流工程」。この記事では、上流工程内の主要な3つのプロセス「企画」、「要件定義」、「外部設計(基本設計)」についてと、その後に続く「下流工程」との違いなどを解説します。上流工程で行うべきポイントや、この工程をおろそかにした場合のリスクもあわせて紹介しますので、プロジェクト成功のための知識として、ご活用ください。

目次

上流工程とは 下流工程との違い

「上流工程」とは、システム開発の流れにおける前半のフェーズのこと。企画や要件定義、システム設計などの工程を総称して指し、システム開発をする上での方針や方向性を決定していきます。ここではシステムの全体像から細部の仕様まで、「どのようなシステムを作るのか」を明確にする必要があります。

 

一方、下流工程は、上流工程で決まった内容を実際にシステム化していくプロセス。システム開発の流れにおける後半部分を指します。作業としては、コーディングや、プログラムに不具合がないかを確認するためのテストなどの実施が含まれます。

 

つまり、上流工程あっての下流工程と言えるでしょう。そのため、上流工程は、システム開発の基盤となるプロセスであるため、そこがあいまいになっていると、下流工程でトラブル発生の元になったり、システム開発自体が失敗に終わってしまいかねないため注意が必要です。

 

上流工程 主要な4つのプロセス

ここでは、上流工程の主要なプロセスとして、実現したいシステムの内容を計画する「企画」、その企画を実現するためにどのような機能が必要か、どのようなニーズがありそうかなどを発注側と開発側の企業ですりあわせていく「要求定義」、開発企業側で実装する機能や仕様などを定める「要件定義」外見やデザインなどの操作性、使い勝手に影響する部分を設計する「外部設計(基本設計)」の3つを解説していきます。

 

企画

「企画」は、実現したいシステムの内容を検討し、計画するプロセスです。システム開発の方向性を決めます。「このシステムを開発する目的は何か」、「自社のビジネスにとって、このシステムがどのような位置付けになるのか」、「このシステムを開発することで、どの程度のコストがかかり収益が見込めるのか」などといった、開発の意義を明確にしていくフェーズです。

事業の根幹に関わる部分となるため、開発会社頼みにせず依頼する企業側で決定することが大切です。このプロセスが明確になっていないと、システム開発が完了しても無用の長物になりかねませんので、自社で具体的に決めていくことをおすすめします。

 

要求定義

「要件定義」は、開発したいシステムについて、「何をどうしたいか」を明確にする工程です。ここでは、開発を依頼する企業が開発会社と打ち合わせしながら、実装する機能要件や仕様を、認識をすり合わせながら決めていきます。開発会社はクライアントの要望を「要件定義書」としてまとめ、この後のプロセスはこの要件定義書に沿って進んでいくことが一般的です。そのため、発注側の企業が、あらかじめ要件定義を作成=要件を明確にまとめておき、開発会社に共有できる形を作っておけば、かなりスムーズに次のプロセスに入っていくことが可能です。逆に、ここが明確になっていないと、修正が何度も発生して開発スピードの遅延、最終的な開発費用がかさむことにもつながってしまいますので、非常に重要な工程です。

 

要件定義

発注企業からの要求定義を踏まえて、開発企業側で実装する機能や仕様などを定め、どのように進めていくのかを決めるフェーズです。

 

外部設計(基本設計)

「外部設計」は、基本設計とも呼ばれることがある、UI(ユーザーインターフェース)の設計のことです。基本設計書に沿って、外見やデザインなど、操作性、使い勝手に影響する部分を設計していきます。

要件定義した内容をもとに機能や仕様などを設計していきますが、「外部」という言葉が表すように、システムの外側であるユーザーの目に触れる部分や操作する部分を主に設計していくプロセスです。

 

なお、この後の工程として「内部設計(詳細設計)」がありますが、外部設計までが上流工程と捉えられるケースが多いようです。

外部設計がユーザーの利便性などを重視した設計であるのに対して、内部設計は、ユーザーが直接的に見たり操作したりすることのない、機能や動作の「中身」に関する設計を行います。システム開発を実際に担うプログラマーが実際にプログラミングするための設計、と言えるでしょう。

 

上流工程は徹底的に考えるべき!おろそかにした場合のリスク 

上流工程をおろそかにすると、続いて行う下流工程で何度も手戻りが発生して納期が遅れてしまったり、想定外のコストがかかってしまう可能性があります。リスクを具体的に解説します。

 

機能追加や仕様変更による開発スケジュールの遅延

上流工程は、システム開発の「設計図づくり」と捉えることもできます。設計図があいまいであればあるほど、開発途中の軌道修正をしなければならない事態に陥ってしまうケースが散見されます。作り直しや修正が発生すれば、その分スケジュールは遅延してしまうので注意が必要です。

 

想定外の開発コストの発生

開発途中で機能追加や仕様変更が発生すると、スケジュールが遅れるだけでなく、開発コストがかさむことにもつながります。開発費は基本的に、システムエンジニアの人件費×工数で算出されるからです。工数がかさむほど、エンジニアを拘束する時間が増えるので、追加費用が発生します。

 

ただし、一定期間エンジニアを確保して準委任契約にて開発を進める「ラボ型開発」であれば、追加費用の発生を抑えることが可能です。

詳しくは、ラボ型開発・ラボ契約とは メリデメや請負型との違いを図解で紹介していますので、参考にしてみてください。

 

リリース後の運用の不便さ

システムは、開発が完了し、リリースした後からが本番と言えます。リリースしたはいいものの、運用するためにとてつもない人件費がかかる、といったことは避けたいですよね。

 

そのような事態を回避するには、やはり企画の段階で「このシステムが自社のビジネスにどう寄与するのか」を徹底的に考えなければなりません。例えば、ローンチ後も、そのシステムの規模を拡大させていくのか否かなどによって、運用の方法は変わってきます。

運用コストは、中長期的に発生するコスト。リリース後の運用も想定した上で、企画・要求定義し、開発を進めるようにしましょう。

 

 

上流工程とは まとめ

システム開発会社に発注する場合、各工程で行うことを細かく理解する必要はないかもしれません。ですが、上流工程は、自社が実現したい「思い」を形にする部分。どのようなシステムを作りたいのかを自社で徹底的に計画、検討することが、開発後の運用や失敗しないシステム開発につながるでしょう。

 

アプリ・システム開発するなら実績豊富な当社へ

デザインワン・ジャパンは、アプリ・システム開発の実績が豊富なベトナムのダナンとフエに開発拠点を持つ日本の東証スタンダード上場企業です。御社とベトナムの開発チームとの間にはブリッジSEをアサインするため、まるで日本のIT企業に発注しているかのようにコミュニケーションもスムーズ。コストと品質のバランスが取れた開発が特徴です。IT人材のリソース確保にお悩みの企業様や、国内企業に委託するよりも費用を抑えたい企業様におすすめです。

事例はこちらの資料で紹介しています。詳しくはこちらの無料ダウンロード資料でご覧ください。

お見積りはこちらから、お気軽にお問い合わせください。

contact お気軽にご連絡下さい。