SIerの説明会に行くと『上流工程』や『下流工程』という言葉をよく聞くと思います。
- 上流工程、下流工程って何?
- それぞれの工程ではどんなことしてるの?
- それぞれの工程ではどのような特徴があるの?
と疑問に思う方もいるのではないでしょうか。
SIerという業界、SE(システムエンジニア)という仕事を就活で初めて見出した方にとって、初めは馴染みもなく、理解を進めるのも難しいでしょう。
そのため、これからSIerにおける『上流工程』や『下流工程』について現役ユーザー名SIerの私が紹介していきます。
Contents
一般的なシステム開発フローを先に紹介します
よく就活生が陥る疑問として、
って思っている方いますよね。
残念ながら、SE(システムエンジニア)のイメージであれば全然違います。そのようなイメージの職種はSEではなくPG(プログラマー)です。
このSE(システムエンジニア)とPG(プログラマ)の仕事の違いが開発フローにも関わってきます。
一般的な開発フローでは、ウォーターフォールモデルと言われる型が決まっています。何社かSIerの会社説明会に参加すると聞き馴染みのある言葉ではないでしょうか。原則このウォーターフォールモデルに則り、どの会社もシステム開発を行っていきます。
一般的なモデルは
- 要件定義:お客様がシステムで何を実現したいのかヒアリング
- 基本設計:要件定義からシステム的な側面で設計書の作成
- 内部設計:基本設計からより詳細にプログラムの仕様書を作成
- 製造・単体テスト:内部設計を元にプログラミングロジック網羅の観点でテスト
- 結合テスト:各プログラムを統合してテスト、内部設計の要求通りになっているのかテスト
- 総合テスト:基本設計通りかテスト
- 受入テスト:お客様の要望通りか、要検定義通りかテスト
のような開発フローです。世間のイメージでもあるプログラミングカタカタは。製造と言われる工程で行います。ウォーターフォールモデルではこの製造(プログラミング)工程に掛ける時間はごく僅かです。体感的には1,2割程度です。
言い換えると、製造(プログラミング)のための設計作り(内部設計)や要件通りの仕様となっていることのテスト(単体テスト・結合テスト・総合テストなど)に掛ける時間の方が圧倒的です。
ちなみに、会社によっては例えば
- 詳細設計
- 概要設計
- 外部設計
- 開発コーディング
- 実装単体テスト
- システムテスト
- 運用テスト
など他の名称(呼び名)や設計、テストがあるかもしれません。ただ、一般的な開発はこのようなフローですので、詳細まで把握しなくても大丈夫です。
ちなみに最近は『アジャイル』と言われる手法も流行っていますが、世の中のSIerの多くはまだウォーターフォールモデルです。アジャイルの前にウォーターフォールモデルを理解しておきたいです。
システム開発フローは分かったので上流工程や下流工程を知りたい
システム開発フローは説明しました。まだ上流工程、下流工程は説明していませんでしたので、これから説明していきます。
先の図に入れを付けました。緑色部分が上流工程、青色部分が下流工程と一般的に言われています。
まさに言葉通り、システム開発フローの中でも最初の方が上流工程、最後の方が下流工程となっています。
- 上流工程:お客様の要望などをヒアリングし、システム的なアプローチを提案
- 下流工程:提案内容から実際にプログラミングからテストを行う
上流工程と下流工程はどっちが良いの?
上流工程と下流工程に分けられていることから浮かぶ一つの疑問。
これから様々な疑問に対して説明していきます。
結局それぞれの工程では何してるの?
上流工程では要件定義、基本設計、外部設計などが当てはまります。一方で下流工程では製造と言われるプログラミングやテスト工程がメインです。
上流工程では主に要件定義と言ったシステムの仕様を決めるフェーズです。そのため、ユーザーなどお客様を含めて『お客様(ユーザー)はシステム化するに当たって、何を実現したいのか』を決めていきます。
そのため、パソコンカタカタしているのではなく、お客様とのコミュニケーションが非常に大事になってきます。SEではコミュニケーションが大事と言われるのはこのようなことからです。
もっと言うと、このようなことはチームで動きます。お客様やさらに下請けのベンダー会社を含めると何十人も関わるようになります。そのため、個人で動くよりもチームで動くことが多数です。このようなことから、多くの企業のSE職ではチームワークも大事となってきます。
ユーザー系SIerやNEC、日立、富士通、NTTデータなどの大手SIerが、このような上流工程に関わります。
一方下流工程では設計書を元にプログラミングやテストと言ったフェーズが占めます。いわゆる世間の印象はこの下流工程が当てはまるでしょう。このテストなどのフェーズが、システム開発の中でも大きなウェイトを占めます。
独立系SIerの多くがこの下流工程中心です。
- ユーザー系SIerが上流工程をきっちり固める
- それ以降は独立系SIerが作業する
- 下流工程以降ユーザー系SIerはスケジュール管理などがメイン
のような風潮があります。もちろん下流工程を全く知らないで上流工程やスケジュール管理などはできるはずがありません。そのため、ユーザー系SIerは若手の内だけ下流工程も経験する。と言ったことが多くの企業で見受けられます。
このような仕事内容の実情は座談会やOB訪問で聞けると良いですね。
▼登録に最短3分&完全無料で利用可能▼
\OB・OG訪問だけではなく、スカウトも来る/
給料に違いはあるの?
上流工程や下流工程の流れは分かったけど、給料に違いはあるのだろうか。
全く違います。一般的には上流工程に関わるような企業の方が給料が高いです。特に要件定義のみに関わるようなコンサル職種もあります。実際にSIerの中でも給料が1,000万円を超えるような企業は上流工程に関わるような企業ばかりです。
もし、給料を求めるのであれば、上流工程に関わるのは必須です。この業界であればNRI、NTTデータが上流工程に強みを持っています。その他外資系コンサル(IBMやアクセンチュア)なども視野に入るでしょう。
スキルの習得はできるの?
上流工程では要件定義に基づくドキュメント整備や、スケジュール調整などあまりスキルはつきません。
対して下流工程ではプログラミングやテストなど、ガンガンシステム開発を行っているので知識はつき、転職がしやすくなるとも言います。
実際に新卒入社後にステップアップや独立を考えて仕事をしている人が多いと思います。
離職率を見れば一目でわかると思います。
離職率を気にするときは、辛くて辞めるのか、ステップアップのために辞めるのかも聞けたらいいですね。
SEの上流工程と下流工程のまとめ
SEの中でも上流工程と下流工程では役割が違うことが分かったのではないでしょうか。最後におさらいすると、
- 上流工程:お客様の要望などをヒアリングし、システム的なアプローチを提案
- 下流工程:提案内容から実際にプログラミングからテストを行う
ぐらいに覚えておけば十分です。なんとなくの理解で十分でしょう。もし今分からなくても、入社後の研修でしっかり知識を叩き込まれます。そこまで不安にならなくても大丈夫です。
SEは問題解決(コミュニケーション能力)やチームワークが重視されます。特に上流工程に関わるようであれば、その傾向が顕著です。そのため例えば、
- アルバイトでお客様の問題解決をしていた
- サークルで問題解決をした
- 部活でチームワークを発揮した
など、学生時代頑張ったこと、自己PRで紐付けられると、面接の合格率も一気にアップするでしょう。
また、上流工程に関わりたい、下流工程に関わりたいという意見は人それぞれです。
- 本当は上流工程に関わりたかったけど、実際は下流工程ばかり
- 本当は下流工程に関わりたかったけど、実際は上流工程ばかり
と言った入社後にギャップを受けないためにも、先輩社員に仕事内容を聞きましょう。座談会、OB訪問など活用すると良いです。特にOB訪問では選考も関係なし、利害関係もなしに聞けるので重宝した方が良いです。
▼登録に最短3分&完全無料で利用可能▼
\OB・OG訪問だけではなく、スカウトも来る/
ちなみに給料や福利厚生など選考の場では聞きにくい話もOB訪問では可能です。OB訪問を利用して就活を有利に進めましょう。