あなたは、システム開発における開発工程の中でも上流工程についてどのような流れで開発が進んでいくのか気になっているところではないでしょうか。
システム開発を外注にあたって、全体の流れを理解し特に重要工程である上流工程のことを理解することは大切でしょう。
上流工程がシステム開発においてどれだけ重要なことか、システム開発会社として25年経つ会社に所属している私が解説します。
本記事を読んでいただき、システム開発の全体流れを把握する1つの材料になればと思います。
目次
1.システム開発における上流工程とは?
1章ではそもそも上流工程とは、何ぞやを解説していきます。
1-1.上流工程とはシステム開発のプランニングをする工程のこと
簡潔に言うと、上流工程はシステム開発のプランニングする工程の部分を指しています。システム開発の開発工程は下記の図の通りで、その中でもオレンジ色に囲った部分が上流工程と言われるところになります。とはいえ、システム開発の規模や人によって指している範囲が若干違うので、明確な定義付けがないのが正直なところです。
ただ、システム開発の中でも最初の工程に近いほど上流工程と呼ぶと覚えとくと良いでしょう。
1-2.下流工程との違い
下流工程は、上流工程で決まったことに対して、作業していく工程になります。
実際に手を動かす部分になります。それぞれの工程求められるスキルも異なってきます。
上流工程:責任の重さ、マネジメントスキル、クライアントとの折衝力
下流工程:プログラミングを書く技術力、黙々作業
2.上流工程が重要と言われる理由
上流工程は重要重要と良く耳にすると思いますが何でそんな重要なのか、2章では解説していきます。
2-1.上流工程でプロジェクトの運命が決まる
上流工程では要件定義というフェーズが入ってきます(詳細は3章で解説)。要件定義ではクライアントが作りたいシステムをどうやったら実現できるか、クライアントがどんなシステムを作りたいかヒアリングして整理することになります。
仮にこの整理が曖昧だったり、意味不明だったりすると、その状態でプロジェクトが進んでいくことになります。完成品をクライアントがチェックしたときに「思ったものと違う…作り直し!」なんてことになりかねません。
そのため、この上流工程は慎重に確実に情報を整理していく必要があります。会社の信頼に繋がってきます。
2-2.上流工程は責任者が進める
そんな上流工程は当然ながら知識ゼロの人ができるようなものではありません。
プロジェクトを進めるにあたって責任が取れるポジションの人が責任を持って取り組むことになります。
企業規模にもよりますが、部長や取締役が着くこともあります。
2-3.上流工程の進め方は会社(人)によって変わる
上流工程の進め方は会社によって異なります。
1章でも紹介した通り、上流工程の線引きが人によって異なることもあり、進め方も違ってきます。
クライアント側からしたら、自分たちが進めやすい会社(人)のところに発注したくなるでしょう。
それもあって、クライアント側は依頼する会社を変えるというケースはなかなかありません。
初回取引で上手くいなかった時や、受注側の受け入れが困難になった時、全くジャンルが異なるシステム開発をする時に変えることはあるかもしれません。
3.上流工程の流れと業務内容
3章では上流工程の流れと具体的な業務内容を紹介します。
3-1.要件定義前にすること
最初にクライアントが求めているモノをヒアリングします。細かいところまで要求を理解して、その要求の期待に応えるためにどのような機能が必要か、どのように進めていくか、プランニングしていきます。
ドキュメント化して、クライアントに提案して金額も含めて合意を取った上で要件定義に進めることになります。
3-2.要件定義ですること
これからどのようなシステムを、どのような開発手法で開発するのか決めていくフェーズです。一連の開発工程の中でも最も重要なフェーズであり、慎重に検討しながら決めていきます。
- 全体のスケジュール(何をいつまでに終わらせるか)
- 全体で掛けることができる予算
- 開発手法
- リリースする方法
- リリース後の運用方法 など…
システム開発は要件定義で決めた内容に沿って大枠は進んでいくので決裁権のある人たちも含めて話し合いを重ねていきます。クライアント側×開発側でPM,PLを交えて決めていきます。
要件定義については、「要件定義とは?基本設計/詳細設計との違いと進め方を解説」で詳細を解説しています。
3-3.基本設計ですること
要件定義で決めた内容をもとにユーザー側が見える部分を決めていく設計になります。基本設計書は機能ごとに作成するのが一般的です。ただ、プロジェクトの規模によって書き方は若干変わってきます。
基本設計書は開発側のエンジニアが書くことが多く、書いた内容をクライアント側と共有してディスカッションして詰めていきます。クライアント側が非IT系であれば、専門用語を少なめにして、誰でも分かるような書きぶりにします。
基本設計については、「基本設計とは?進め方と要件定義/詳細設計との違いを解説」で詳細を解説しています。
3-4.基本設計以降ですること
基本設計の次は詳細設計という内部資料、エンジニアが開発するために必要な資料を作成していくことになります。
一般的にはここから下流工程に入ります。※人によってその線引きが異なるので何とも言えませんが、、
4.上流工程で意識すべきポイント
4章では上流工程の業務を進めるにあたって、意識しておきたいポイントを紹介します。
4-1.クライアントと密なコミュニケーションを
上流工程はいかにクライアントの要望を聞き出すか、が重要になってきます。クライアントとのコミュニケーションを密に取って、クライアントが思い描いているものを形にしていく必要があります。クライアントに苦手意識を持たせないようにコミュニケーションを取っていくことが大事です。
4-2.夢ではなく現実を見る
夢を語るのは簡単ですが、当然現実を見る必要があります。予算がある中で、その予算内でどうやったら実現できるか、どこを切り捨てていくか、クライアントと相談しながら進める必要があります。クライアントの言いなりで進めてしまうと、予算内で収まらずに、後々トラブルの原因にもなりかねません。
4-3.難しい話を優しい言葉でドキュメント化する
IT業界は専門的な言葉も多く、非IT業界から見たらエンジニア同士の会話は、???の状態に陥ることが良くあります。クライアントの要望を聞いた後に提案書として、非IT業界の人でも分かるようにドキュメント化(提案書)する必要があります。話をまとめて優しい文字に置き換えて提案することを意識すると良いでしょう。
まとめ
システム開発の上流工程に解説してきました。システム開発は、リリースするまでに様々なフェーズを経てリリースすることになります。特に立ち上げ時期の要件定義が重要であり、要件定義が曖昧だと高い確率で上手くいかないケースがあります。
上流工程についてまとめましたが、弊社は会社を立ち上げたから24年が経ちます。長年の経験からシステム開発の手段について様々アドバイスできると思います。システム開発で行き詰った時には、どんな些細なことでも、お気軽にお問い合わせいただければと存じます。相談は無料です!