上流SE(システムエンジニア)とは?仕事内容と必要なスキルを一挙公開

上流SEの仕事とは?仕事内容や必要なスキルについてを一挙公開

システムエンジニア(SE)という職業は、IT業界に詳しくなくても知っている人も多いかと思います。

システム開発を行うことが主な業務ですが、その作業内容を細分化すると、非常に様々な作業が存在します。

そんなシステムエンジニアですが、作業内容によって上流SEと下流SEに分けられることをご存じでしょうか。

上流SEと下流SEでは行う作業内容はもちろん、必要となるスキルや得られる収入も全く異なっています。

上流SEはシステムエンジニアの業界でも花形で、多くのシステムエンジニアがあこがれる職業です。

今回はそんな上流SEについて紹介いたします。

上流SE(システムエンジニア)にとは

システムエンジニアの業務を一言で表すと「顧客が欲しているシステムを開発すること」です。

システム開発は以下の工程に分けることができます。

【1】要件定義
【2】システム設計
【3】システム開発
【4】テスト

システム開発には様々な手法がありますが、一般的には上位工程が完了したら下位工程を行っていくウォーターフォールモデルを活用します。

各工程を水が流れで表した場合に上流工程(要件定義〜システム設計)を担当するシステムエンジニアを上流SEと呼びます。

また、下流工程(システム開発〜テスト)を担当するシステムエンジニアを下流SEと呼びます。上流下流でどちらが偉いということはありませんが、業務の難易度は上流SEの方が高いとされています。

日本全体で見ても、上流SEに従事している人数が少なく、希少な職業と言えます。

上流SE(システムエンジニア)の仕事内容

それでは上流SEはどのような業務を行うのでしょうか。

次に上流SEの仕事内容について紹介いたします。

1.要件定義

顧客の要望をヒアリングし、システム設計の元となる要件定義書を作成します。

顧客はシステムについて詳しくありません。そのため自社の業務をどう効率化したいのかという要望はあっても、どのようなシステムを導入すれば効率化できるのかはわからないケースがほとんどです。

上流SEはそれら顧客の漠然とした要望を聞き取り、どのようなシステムがあれば顧客の要望がかなえられるのかの整理を行い、要件定義書としてまとめます。

この工程はシステム開発における最重要工程です。ここの精度が低いと、最終的に納品されたシステムと顧客の要望がかけ離れたものとなってしまうためです。

また、顧客の要望は100%整理されているわけではありません。顧客の思い違い、問題の本質の読み違い、顧客の業界では当たり前のことなので伝えていない。このように顧客の言葉のみを鵜呑みすることで結果的に要望からずれが生じてしまいます。

そのようなことが起こらないように、顧客が考える真の要望を見極めることが重要です。言葉の裏に隠れている顧客すらも気付いていない問題を顕在化し、本当に必要なシステムはなにかを検討し提案します。

またこの工程では予算、スケジュールなども合意します。いつ、どのようなシステムを、どの程度の予算枠で作成するのか。それらシステムの基礎となる部分について顧客と話し合い、合意していくのが上流SEの最も重要な業務です。

2.システム設計

要件定義にて顧客の求める要件が確定したら、次に行われるのがシステム設計です。

システム設計は、要件定義書を元に実際のシステムをコーディングするための設計書を作成する工程です。

設計書は外部設計書と内部設計書に分かれており、一般的に外部設計までが上流工程とされています。

外部設計書は、要件定義書で定められたシステムの骨子から、実際のシステムとして作り上げるための構成をまとめた設計書です。例えばデータベースの項目をまとめたデータベース設計、画面帳票設計、ハードウェアやソフトウェアの構成などをまとめたプラットフォーム設計などがあります。

内部設計書は、外部設計書からさらに具体化した設計書です。基本的にこの設計書を読めば実際のプログラムが書けるほどに落とし込まれます。

外部設計までは顧客に見える部分の設計ですが、内部設計はロジックの作りなど、顧客の見えない部分の設計書となります。そのため、内部設計以降は実際の納品までは内部での作り込みの世界となります。

外部設計と内部設計で上流下流が分かれるのは、このように顧客との折衝が必要かどうかという部分が異なるためです。

上流SE(システムエンジニア)が少ない理由

上流SEと下流SEを比べると、圧倒的に上流SEが少ないことはお伝えしました。それではなぜ上流SEは少ないのでしょうか。

1.高度なスキルが必要

上流SEの業務は、非常に高度なスキルが必要となります。

要件定義では、顧客も気付いていない要望や課題、制限事項などについて、ヒアリングを通じて引き出す必要があります。それにはシステムに関する知識はもちろん、顧客の業務について精通している必要があります。

また、要件定義書ができあがった後の外部設計も非常に高いスキルが必要となります。システム化を行うための知識はもちろん、データベース、ネットワーク、ハードウェア構成などの幅広い知識がないと話になりません。

また、上流SEの業務は基本的にゼロから作り込む必要があります。特に要件定義は顧客によってマッチする進め方が異なるため、顧客とコミュニケーションを取りながら最適な方法を模索していく必要があります。

それら上流SEの業務は非常に高いスキルと幅広い知識が必要となるため、設計書を元に作り込みを行っていく下流SEに比べると、できる人員は限られてしまいます。

2.高負荷でハイプレッシャー

上流SEはひとたびプロジェクトが走り始めると、システムの稼働日を迎えるまで気が抜けることはありません。

まず要件定義、基本設計には非常に大きな労力が必要となります。顧客によってはシステム部門と利用部門が異なる事によって、実際に利用する部門の協力が得られない場合があります。

設計に時間がかかると、後工程に影響が出てしまいます。そのため、限られた時間内で顧客を説得しながら設計書をまとめる必要があります。

短時間であっても完璧な設計書が求められます。外部設計書まではシステムの根幹を構成するため、ここに誤りがあった場合システムに多大な影響が出てしまうためです。

また曖昧な部分、わかりづらい部分はプログラムコーディングに支障が出てしまいます。

外部設計が完了した後も気が抜けられません。製造中に設計書のバグが発見された場合、速やかに対応を行わなければなりません。後戻りによりプロジェクトスケジュールに大きく影響が出てしまうためです。

これらハイプレッシャーで高負荷となりやすい業務ですが、代えが利かない業種でもあります。

下流SEの場合設計書さえ完璧にできあがっていれば要員変更もスムーズに行えます。しかし上流工程の業務は、必要となるスキルが高すぎること、それまでの経緯を知らないとつとまらないことから、要員変更が難しいとされています。

そのため、なり手が少ないとされています。

3.案件数が少ない

上流工程の作業は、細分化が難しいとされています。1個のシステムに1個の要件定義、外部設計しかありません。もちろん設計書の中で得意分野のエンジニアで分割することは可能ですが、それでも分割量には限界があります。

そのため、上流SEは常に新たな案件を探していかなければなりません。

一方下流工程は非常に容易に細分化を行うことができます。画面ごと、機能ごと、サブプログラムごとと、数十数百の案件に分割することができます。

そのため案件獲得も上流SEに比べれば容易であり、上流SEよりも従事者数が多い理由となっています。

上流SEのメリット

このようにハイプレッシャー、高負荷で要員交代も難しい上流SEですが、どのような点でメリットがあるのでしょうか。

次に上流SEになる事でのメリットについて紹介いたします。

1.年収が高い

上流SEは上述の通り誰にでもできる業務ではありません。非常に高いスキルが必要で、かつ代えが利かない職業のため、下流SEに比べて年収が高い傾向にあります。

下流SEの平均年収は統計年によって前後がありますが、おおむね400万円前後です。一方上流SEの場合、500万円前後となっています。もちろん平均年収は中小企業も入れた平均のため、大企業の上流SEの場合、700万円〜1,000円と高額の収入を得ている例もあります。

2.顧客が近くやりがいがある

上流SEの業務は顧客と一緒に作り上げていきます。実際にシステムを利用する人が見えるため、成功したときの達成感は下流SEよりも高いケースが多いです。

効率化できて非常に助かった、ありがとう。システム稼働日にそう笑顔で言われると、それまでの苦労が報われて、次への活力につながります。

もちろん下流工程を支えるエンジニアにも達成感はあります。しかし細分化した機能を担っている下流SEに比べると、一つの大きなシステムを担っている上流SEの方が感情移入が高く、その分達成感も高い傾向にあります。

上流SEになるためには

やりがいもあり収入も高い上流SEですが、どのようにすれば従事することができるのでしょうか。次に上流SEになるための方法と、必要となるスキルについて紹介いたします。

上流SEになるためには以下の方法があります。

【1】社内での業種転換
【2】上流SEの会社への就職
【3】取引会社への転職

1.社内での業種転換

大手ソフトウェア会社では、上流から下流までの全工程を自社内で行っているケースがあります。そのような場合は製造関連を行っている部署から設計を行っている部署に異動することによって上流SEに転換することが可能です。

ただしよほど大きな会社でないと全工程を行っていないため、あらかじめ大規模のソフトウェア会社に入社する必要があります。

多くの場合で入社間もない新人には最下流のテストから始まり、徐々に経験を積んでいくごとに製造、設計、要件定義と上流に向かっていきます。

2.上流SEの会社への就職

最も一般的な方法が、この上流SEの会社への転職です。上述のように大企業ではシステム開発の全工程を自社で行っていますが、多くの企業では上流のみ、下流のみといったように特定の工程のみ行い、それ以外はパートナー会社と協力して開発を行っています。

このように会社によって行っている工程が異なるため、あらかじめ上流工程を行っている会社を調べておき、その会社に転職するのも方法としては有効です。

ただし、一般的に下流工程を行っている会社よりも上流工程を行っている会社の方が少なく、入社のための難易度は高いとされています。

3.取引会社への転職

下流工程を行う会社に従事している場合、自社の取引会社である上流SEの会社に売り込むことも有効です。

この方法の利点としては、取引先として知っているチームに入るため、転職後スムーズに業務が行えることです。

ただし上流工程と下流工程では業務内容が全く異なるため、通常の業務ではアピールが難しいでしょう。
通常の業務に加えてアピールできるような努力が必要となります。

上流SE(システムエンジニア)に必要なスキル

上流SEになるにはどのようなスキルが必要なのでしょうか。次に上流SEとして求められるスキルについて紹介いたします。

1.コミュニケーション能力

上流SEにとって、何よりも必要なのがコミュニケーション能力です。上流SEの業務は会話をすることと言っても過言ではありません。

顧客の要件を引き出す、プロジェクトメンバーと調整する、設計時の不明点や課題点を顧客と解消していく、下流工程のSEに仕様を伝える。様々な場面でコミュニケーションを取る必要があります。

また、相手の気持ちを思いやることができる人材は上流SEとして重宝されます。顧客の言葉にならない要望を引き出す、下流工程で迷わない設計書を作成するなど、相手の気持ちに立つことが非常に要求されます。

それら相手の気持ちに立って業務を行える人材は上流SEとして成功できるでしょう。

2.下流工程のスキル

上流SEは上流工程のスキルだけでできるものではありません。例えば顧客の要望からシステムの要件定義を作成する際、実際のシステムのコーディング知識がないと的外れな要件定義書となってしまいます。

また設計工程でもコーディングを行う要員の気持ちに立った設計書を作成しないと、正しくコーディングが行えません。

下流SEの経験を経ることで質の高い上流SEとなる事ができます。

3.顧客の業務知識

要件定義を行う際、携わる業界の業務知識が必要となってきます。

顧客は漠然と問題点を抱えていることを認識していますが、その問題点が具体化されていない場合が多くあります。

そのような場合に業務知識を有していることで、顧客が認識していない問題点に気付くことができ、要件定義を円滑に進めることができます。

より良いシステムを開発するためには、要件定義にて顧客の漠然とした要望を漏れなく具体化することが重要です。
そのためにも顧客の業務知識は必要不可欠です。

上流SE(システムエンジニア)とは?仕事内容と必要なスキルを一挙公開のまとめ

上流SEは、システム開発における要件定義やシステム設計など、上流工程に携わる業務です。

上流SEはシステムエンジニア全体から見ると従事者数は少なく、希少な職業です。

その理由としては高いスキルが必要であること、ハイプレッシャーかつ高負荷でなり手が少ないことが挙げられます。

ただ、上流SEはメリットも多くあります。まず、システムエンジニアの中では平均年収が高い傾向にあります。

また、実際にシステムを利用する顧客と近いため、感謝される機会も多く非常にやりがいのある職業といえます。

上流SEになるためには、大手企業の場合上流SEの部署に異動する方法があります。また上流SEを行っている企業への就職、取引先への転職なども有効です。

必要なスキルとしては、コミュニケーション能力が第一に挙げられます。次にシステム設計を行う際に必要となる下流工程のスキル、要件定義を行う際に必要となる顧客の業務知識などがあります。

上流SEは非常に高度の技術が必要ですが、その分高収入と高いやりがいのある職業でしょう。