システム開発に従事するSE(システムエンジニア)のなかでも、要件定義や基本設計などの上流工程を主に担当するのが上流SEです。入社して間もない若手SEなどにとっては、上流SEの仕事内容や求められるスキルについてよくわからないという方もいるのではないでしょうか。
そこで本記事では、上流SEの仕事内容や求められるスキル、必要な要素について、上流SE経験者の立場から解説します。
上流SEとは?
上流SEとは、システム開発に従事するSE(システムエンジニア)のなかで、上流工程を中心に担当するSEのことです。
SEとの違いは担当工程にある
システム開発の仕事は、複数の工程を経て行われます。システム開発における工程は主に以下のとおりです。
① 要件定義
② 基本設計
③ 詳細設計
④ プログラム設計
⑤ 実装
⑥ 単体テスト
⑦ 結合テスト
⑧ システムテスト(総合テスト)
⑨ 受入テスト
単純に「SE」と言う場合、上記のシステム開発工程の全体を担うSEを指します。ただし、①~⑨のすべてを担当するケースは少なく、SEのなかでも従事する工程を分けることが一般的です。
そして、上流SEは、上記の工程のなかで①②⑧⑨を中心に担当します。
上流工程について
先ほどのシステム開発工程は、上流工程と下流工程に分けることができます。上流工程とは、要件定義や基本設計などクライアントに近い立場の工程であり、下流工程はプログラム設計、実装、単体テストなどシステムに近い立場です。
上流工程と下流工程の詳細な分け方については、会社や担当プロジェクトによっても異なりますが、ここでは上記の①②⑧⑨を上流工程、③④⑤⑥⑦を下流工程として話を進めます。
上流SEの主な仕事内容は?
上流SEの概要が掴めたところで、上流SEの仕事内容について見ていきましょう。主な仕事内容としては以下が挙げられます。
- 要件定義
- 基本設計
- システムテスト(総合テスト)の計画・実施
- 受入テストの計画とクライアント支援
- 品質管理
- 進捗管理
- コスト管理
- リスク管理
- 報告会議に向けた資料作成・報告実施
要件定義
要件定義とは、クライアントの要望を基に、システム要件(機能や提供価値)を定義する工程です。
要件定義は、システム開発工程のなかでも特に重要です。なぜなら、要件定義が不十分だと、以降の工程がどんなにうまくいってもクライアントのニーズを満たせないシステムができあがってしまうからです。
要件定義では、クライアントからのシステムに対する要望をヒアリングし、ヒアリング内容を要件定義書にまとめていきます。要件定義書の作成時は、クライアントとの認識相違が生じないように明確に記載することが大切です。
たとえば、文章で要件をまとめる箇所では、以下のような点をはっきりと記載しましょう。
- どの機能に対する開発・改修か?
- システム処理のタイミングや頻度はどの程度か?
- 処理条件のパターンはあるか?(通常時と被災時の違いなど)
また、要件定義書では、文章だけでなく図表を用いることも効果的です。
たとえば、処理パターンが複数ある場合は、表を用いてパターンを洗い出すとよいでしょう。処理の流れについては、業務フロー図などを用いて可視化することが一般的です。
要件定義におけるポイントは、クライアントの要望を過不足なくシステム要件に落とし込むことです。そのためには、クライアントとこまめに連携を取りながら、合意した内容を要件定義書に明記しましょう。
最終的に仕上がった要件定義書に対して、クライアントから正式な承認をもらえたら要件定義工程は完了です。
基本設計
基本設計工程では、要件定義書の内容を基に、基本設計書を作成していきます。
既存システムの改修の場合、基本設計書はすでに存在しているため、今回のプロジェクトに伴う改修箇所を赤字などで追記・変更します。その際、あとで混乱しないように変更履歴として以下の情報を残しておくことが大切です。
- 変更ページ
- 変更内容
- 変更日時
- 変更者
新規システム開発の場合は、基本設計書も新規作成していくことになるでしょう。基本設計書の種類としては、主に、以下が挙げられます。
- 業務定義書
- 業務フロー図
- 帳票設計書
- バッチ処理設計書
- データベース設計書など
それぞれの会社やプロジェクトによっても基本設計書の成果物は異なるため、担当のプロジェクト管理ルールに沿って対応していきましょう。
システムテスト(総合テスト)の計画・実施
基本設計以降は、詳細設計・プログラム設計・実装・単体テスト・結合テストとなりますが、これらは基本的に協力会社などの下流SEが担当するため、上流SEの主担当外です。
結合テストの次工程にあたるシステムテスト(総合テスト)より、上流SEが再び主体的に担当する工程になります。
システムテスト(総合テスト)では、基本設計書の内容に沿って、システムが全体的に問題なく稼働するかを確認します。たとえば、以下のようなシナリオを計画して、テストを実施することが一般的です。
- 通常日運転
- 月末日運転
- 被災時運転など
上記のように、稼働日や環境によってシステムの運転条件が異なる場合は、それぞれのパターンにおいてシステムを一通り回して運用に問題がないことを確認します。
ここでポイントとなるのは、テスト前に設定するシステム日付などを誤らないことです。たとえば、月末日運転のシナリオでテストを行いたい際に、通常日のシステム日付のままテストを行ってしまうと、本来確認したいテスト項目を消化できません。
さらにはテスト項目を消化できないだけでなく、再テストの日程調整などが発生し、作業工数が余計にかかることになるので注意しましょう。
受入テストの計画とクライアント支援
システムテスト(総合テスト)までできたら、クライアントにシステムを納品し、クライアントによる受入テストを行います。受入テストでは、テスト主体者はクライアントになりますが、受入テストの計画や実行を上流SEが支援する場合も多いです。
たとえば、システムテスト(総合テスト)で使用したテスト項目をベースに、クライアントが特に確認したい観点をヒアリングして抽出することもあります。そして抽出したテスト項目のボリュームなどを基に、受入テストの日程計画などを立案するのです。
テスト実施時は、必要に応じてフロア立ち合いなどを行い、クライアントからの質問や確認に迅速に対応できるようにしておくとよいでしょう。
品質管理
品質管理は、要件定義から受入テストまでの一連のシステム開発工程を通して行うプロジェクト管理の1つです。品質管理では、担当プロジェクトで決められている品質水準(上限・下限など)を基に、成果物の品質を確認します。
設計工程の場合は、設計書のレビュー時に生じた指摘(エラー)の件数や種別を集計し、品質傾向を分析します。たとえば、エラー件数が品質水準の上限値を上回っていないか、エラー種別で設計漏れが多発していないかなどを確認するケースが多いでしょう。
テスト工程でも同様に、テスト時に生じたバグの件数や種別を集計し、件数や種別の傾向を分析・評価します。
進捗管理
進捗管理も品質管理と同様、プロジェクト全体的に行う管理です。特に、詳細設計から結合テストにかけては、協力会社に委託して行う場合が多いので、進捗管理が重要となります。
協力会社との週次進捗などを開催して、スケジュールの計画と実績に差が生じていないかをこまめに確認しましょう。もし遅延が生じている場合は、リカバリー策なども合わせて協力会社に確認することが大切です。
コスト管理
コスト管理もプロジェクト全体を通じて行う管理です。プロジェクト受注時に立てたコスト計画とコスト実績(実際の作業工数など)に開きが出ていないかを、各工程の終了時などで確認します。
コスト管理は、社内の各部署の予算管理とも密接に関係しているため、上流SEのなかでも課長職などの上位者が担当する場合が多いでしょう。
リスク管理
リスク管理もプロジェクト全体を通じて行う管理となります。プロジェクトにはさまざまなリスクが考えられるため、リスク管理表を作成してプロジェクト発足時に想定されるリスクを洗い出し、評価しておくことが重要です。
リスク管理では、たとえば各リスクに対して重大度や発生確率の観点で「大」「中」「小」などの評価を行い、いずれかの観点が「中」以上のものについては対応策を明記しておくとよいでしょう。
また、リスク状況はプロジェクト進行中に変化していくため、プロジェクトの各工程終了時などに適宜リスク管理表を評価・更新していくことも大事なポイントです。
報告会議に向けた資料作成・報告実施
クライアントへのプロジェクト進捗状況の報告も上流SEの仕事の1つです。たとえば、各工程終了時にクライアントへ報告し、工程終了の承認を得るケースなどが多いでしょう。
報告会議では、設計書のエラー件数やプログラムのバグ件数、その他リスク状況などをまとめて報告します。ここでの注意点としては、報告会議資料の作成は早めに取りかかることです。
クライアント報告の前に、社内の課長レビューや部長レビュー、事業部長レビューといった段階的なレビューを挟む職場も多いため、期間に余裕を持って作成することが重要です。
上流SEに必要な能力
ここでは、上流SEに必要な能力について以下の3つを解説します。
- 着実なコミュニケーションスキル
- 計画的に作業を進める能力
- プロジェクトを俯瞰的に判断する能力
コミュニケーションスキル
上流SEでは、クライアントや上位者、チームメンバー、協力会社の社員など、関わる人が多岐にわたります。そのため、やり取りの内容を明文化しながら、着実にプロジェクトを進めていくコミュニケーションスキルが必要です。
コミュニケーションといっても会話上手や雑談上手である必要はありません。プロジェクトで円滑に進めるために、「いつ」「誰が」「どのように」といったコミュニケーション要素をしっかりと押さえておけば基本的に問題ないでしょう。
計画的に作業を進める能力
プロジェクトを進めるうえでは、遅延や不測の事態はつきものです。予定外のトラブルなども事前に織り込み、ある程度の予備期間を作るぐらいの余裕を持って、計画的に作業を進める能力が求められます。
たとえば、報告資料の骨子だけは事前に作成しておくなど、先に進められる部分は進めておきましょう。
プロジェクトを俯瞰的に判断する能力
上流SEは、品質管理や進捗管理、リスク管理などのプロジェクト管理にも携わります。つまり、実務遂行者であると同時に、管理者の立場でもあるのです。
目の前にある自分の作業(基本設計書の作成など)だけでなく、管理者としてプロジェクトを俯瞰しながらプロジェクトの状況を判断する能力が求められます。
上流SEになるために必要な要素
以下の要素を持つ人であれば、上流SEとしてパフォーマンスを発揮しやすいといえるでしょう。
- 物事をあいまいな状態のままにしておかない姿勢
- 細かい作業も面倒がらずに行う
- プロジェクトの成功に向けて周囲を巻き込む意識を持つ
物事をあいまいな状態のままにしておかない姿勢
プロジェクトを進めるうえでは、あいまいな部分を残さないことが大切です。あいまいな部分があると、のちに関係者間で認識相違が生じ、プロジェクトの遅延や品質低下を引き起こすおそれがあります。
たとえば、要件定義書上にあいまいな記載を残しておいた場合、受入テスト時に仕様の認識相違が発生して、大幅な手戻りが生じる可能性があります。
上流SEは、物事をあいまいな状態のままにしておかない姿勢が求められるのです。
細かい作業も面倒がらずに行う
上流SEとして働く際は、実務者として細かい作業も行うことになります。
たとえば、基本設計書を変更する際は、変更を行った各箇所に対して変更履歴を残します。変更箇所が多い場合、途中で面倒になって履歴をはっきりと残さない人もなかにはいるでしょう。ただ、これがあとになって修正漏れなどのトラブルにつながることもあるのです。
こういった細かい作業を面倒がらずに行うことも上流SEに必要な要素だといえます。
プロジェクトの成功に向けて周囲を巻き込む意識を持つ
上流SEは、クライアントや上位者、チームメンバー、協力会社の社員など関わる人が多くなります。そのため、プロジェクトの成功に向けて、それら周囲の関係者を巻き込む意識を持つことが大切です。
たとえば、プロジェクト関係者のなかに苦手な人がいたとしても、プロジェクトの成功を見据えて関係者全員とフラットに接する意識が欠かせません。
フリーランスとしての上流SEについて
本章では、フリーランス上流SEの案件数や単価感を見ていきます。
案件数
上流SEはIT企業内だけでなく、フリーランス案件も存在します。上流SEに関連する案件として、Remotersでは29件の案件を掲載しています。(2022年12月時点)
上流SE案件の例としては以下のとおりです。
- 通信事業者向けのシステム開発
- 官公庁向けのDLP(情報漏えい防止)機能のテスト計画・実施
- 金融系システムのプロジェクト管理やテスト計画立案
さまざまな業界・業種にて上流SEに関連する案件がありますので、フリーランス上流SEに興味のある方は案件内容を確認してみてください。
単価感
フリーランス上流SEの単価は、他のエンジニアと同様、案件によって大きく異なります。
たとえば、先ほどのRemotersの募集案件(※2022年12月時点)では、単価は50万円~200万円程度が相場となっています。
経験やスキル次第では高単価も狙える職種だといえるでしょう。
【まとめ】上流SEはフリーランスでの活躍も視野に入れましょう!
上流SEは、システム開発のなかでも上流工程にあたる要件定義や基本設計を中心に担当するSEです。自分自身がSEとしての実務者であると同時に、クライアントや協力会社など多くの関係者とコミュニケーションを行う立場でもあります。
上流SEとして活躍するためには、具体的かつ着実なコミュニケーションや、計画的に作業を進める能力が求められるでしょう。
上流SEはIT企業内だけでなく、フリーランスの立場でも活躍できます。上流SEは多くのプロジェクト関係者と関わる仕事ですが、社外の立場だからこそ、俯瞰的にプロジェクト推進ができるのがフリーランス上流SEのメリットだといえます。
Remotersは、テレワーク/リモートワークの働き方を支援するエージェントサービスです。Remotersでは、フリーランス・正社員向けの「フルリモート案件のみ」をご紹介しています。自由な働き方を求める方やフリーランス上流SEとしてスキルアップしていきたい方は、是非ご相談ください。
元フリーランスエンジニアがリモートワークやキャリアに関する情報をお届け。
株式会社TERAZ 代表としてフルリモート案件専門のエージェントサービス「Remoters」やリモートワークメディア「Remocari」を運営しています。
上流SE/PHP/Ruby on Rails/React/Typescript/などの開発経験を経てRemotersに。