「SEとプログラマーって何がちがうの?。」
「どうやったらSEやプログラマーになれるの?。」
ぼくは大手SIerへ新卒で入社しエンジニアとして10年以上働いたHRです。
本記事の内容はこちら。
- SEとプログラマーの違いは作業工程
- SEとプログラマーの違いが分かる実例
- SEになる方法
本記事ではSIer業界での一般的なSEとプログラマーの違いを解説します。
理解するポイントはプログラマーは実作業中心でSEは実作業をしないこと。
このあたりを実例を紹介しながら解説します。
それではご覧ください。
タップできる目次
システム開発の工程とは
こちらです。
- 要件定義
- 基本設計
- 詳細設計
- プログラミング
- テスト
- 納品
一般的なカテゴリ分けをすると上記のとおり。
ただ案件によっては納品後に保守・運用があったり、テストも単体テスト・結合テストなど細かく分かれています。
見て分かるようにいきなりプログラミングで作り始めることはまずありません。
それぞれの工程を解説します。
各工程の役割を解説
要件定義
お客さんの運用や課題をヒアリングし、どんなシステムを作るのか、予算や開発期間、などシステム開発の全体像を決めていきます。
基本設計
要件定義で決めた全体像をもとに、システムで必要な機能を落とし込んでいきます。
要件定義
基本設計で落とし込んだ機能を作るために、動きやデータの流れなど詳細な仕様を決めていきます。
プログラミング
設計書の内容をもとに実際にプログラミングして機能を実装していきます。
テスト
実装した機能が設計通りに動くか、設計の内容を満たしているか、テストをして確かめます。
設計工程に時間をかける
システム開発全体のうちプログラミングの割合は意外と少ないんです。
開発内容にもよりますが、だいだい30%程度ですね。
システム開発ではいきなりプログラミングで作り始めることはありません。
お客さんに役立つシステムを作るためには要件定義~設計までが重要。
要件定義~設計を適当にしてしまうと、いらないシステム、いらない機能が出来上がってしまいます。
SEとプログラマーの違いは作業工程
SE、プログラマーそれぞれが分担する工程を理解するポイントは「実作業」です。
システム開発での実作業とはソフトウェアを作り上げること。
そして実作業を担当するのはプログラマーです。
一方で、SEは実作業をするための準備を担当すると考えてください。
システム開発工程の担当が違う
具体的なシステム開発工程の分担はこちら。
- SE⇒要件定義、設計
- プログラマー⇒プログラミング、テスト
SEは要件定義や設計で、お客さんと打ち合わせをしながら必要な機能を洗い出します。
プログラマーはSEが書いた設計書をもとにプログラムを作ってテストをします。
システムが完成したら、SEがお客さん先へ納品し操作説明を担当することも少なくありません。
お客さんと関わるのは基本的にSEの仕事です。
プログラミング以外の実作業も
通常のシステム開発以外にも分析や調査作業も実作業に入ります。
たとえば、ソフトウェアを別言語に置きかえるマイグレーションの調査。
調査方法の検討や調査範囲の決定、お客さんとの調整はSEの仕事です。
そして、実際にプログラムを分析したり調査結果をまとめるのはプログラマーが担当します。
境界線はあいまい
開発の現場ではSEが実作業を行うことも少なくありません。
会社としては開発コストをなるべく抑えたいので、最小限のメンバーをアサインします。
また、同じ部署で複数の案件を受注していると単純にエンジニアが足りないこともあります。
とくに規模が小さな案件は1人や2人のSEで全行程を担当したりします。
中小IT企業ではよくありますね。
SEになりプログラミングを離れて設計ばかり担当していると、だんだんと現場スキルが落ちてきます。
またプログラミングが好きなエンジニアにとっては、プログラミングをやれる方が楽しいでしょう。
SEが全行程を行うのも悪いことばかりでもありません。
SEはお金の話も担当
具体的にはこちらです。
- システム開発範囲の見積もり
- 工数の見積もり
- お客さんとの工数交渉
- 作業メンバーのアサイン
システム開発では見積もった工数がそのまま受注金額に影響します。
また作業するエンジニアの人数やレベルが原価率にはね返ってきます。
役職が上、スキルが高いエンジニアは単価も高いです。
高スキルエンジニアばかり投入すると、原価率がもの凄く悪くなり赤字になります。
なお、最終的な見積書のやり取りなど契約的なことは営業が行うのが一般的。
ただ金額を出すための実作業はSEの仕事だと考えてください。
SEとプログラマーのちがいが分かる実例
ここでぼくがSIer時代に経験した実例を紹介します。
- VBAプログラムのOfficeマイグレーション
- 立場はプログラマー
- 社内 or 客先で作業
ぼくが新卒2年目の新人エンジニアだったころに担当した案件です。
当然、SEとプログラマーの違いなんて全く意識していませんでした。
SEとプログラマーの違いすら理解できていませんでしたね。
そのせいで恥ずかしい思いをした経験を書きます。
この案件でSEとプログラマーの違いを理解し、その後の案件で意識するようになりました。
通常のシステム開発じゃない
担当した案件はOfficeマイグレーションの調査、コンサルでした。
ExcelやAccessに組まれたVBAがOfficeがバージョンアップしても使えるか、使えるようにするにはどう改修すればいいかを調査してお客さんへ報告する仕事です。
たしか、Office 95や97からOffice XPあたりへのマイグレーションだったと思います。
当時のお客さんはExcelやAccessのVBAでかなり多くの業務システムを作成していました。
WindowsOSのサポート切れによってofficeバージョンも上がり、業務システムが使えなくなる心配が出てきます。
VBAの業務システムは数百本と多く、お客さん自身では対応できないため調査依頼がありました。
SEとプログラマーの立場での担当作業
当時の上司がSEの立場。ぼくがプログラマー・作業者の立場でした。
上司は作業方針や期間をお客さんへ説明しながら調整します。
また営業担当と一緒に作業金額の交渉も行っていました。
ぼくはExcelやAccessファイルの解析方法を検討し社内で検証。
実際にお客さん先でExcelやAccessに組まれたVBAを解析して結果をレポートにまとめます。
解析には社内で作成された専用のツールを使いました。
ツールの仕様解析もぼくの仕事です。
お客さんへの調査レポート説明もぼくが担当しました。
当時は理解できていなかったこと
SEとプログラマーの違いが理解できていなくて恥ずかしい思いをした体験は、お客さん先でのマイグレーション作業中におきました。
あるときお客さんから、
「○○さん(ぼく)は、SEとして来てますか?作業者で来てますか?」
と質問され、当時のぼくは「SEです。」と回答してしまいました。
でもお客さんとしては、作業範囲の調整やお金の話がしたかったのです。
話の途中でお客さんの方が察してくれ、話を切り上げて上司へ連絡してくれました。
お客さんからは「あ、コイツ分かってないな」と思われていたことでしょう。
話を切り上げられた瞬間に「そういうことか・・」と理解できました。
SEという資格はない
プログラマーやSE(システムエンジニア)は、医者や弁護士みたいな国家資格やIT資格があるわけじゃありません。
極端な話、「私はSEです」と名乗れば誰でも明日からSEになれますよ。
とはいえIT企業では誰でも好き勝手に名乗っているわけではなく、組織構成のバランスをとるためキチンと管理されています。
実際の現場では役職やプロジェクトの役割でプログラマーとSEを分けています。
役職が分かれていることも多い
およそ以下のパターンです。
- 一般職 ⇒ プログラマー、作業者
- リーダー、マネージャー、主任、課長 ⇒ SE
もちろん会社によって役職名や組織階層はちがいます。
ただ多くのパターンではSEはプログラマーより上の役職でつくことが多いです。
SEはプロジェクトの広い範囲を見るからです。
お金や人のアサインはある程度の権限がないとできません。
SEになるために
プログラマーの立場でおススメなのは一つ上の立場で考えること。
プログラミングやテストをやりつつ、プロジェクト全体の工程・開発案件のゴール・お客さんとのやり取りなどSEがしている仕事を見て理解しましょう。
一つ上の立場で見ると自分の仕事の精度が格段にアップします。
上の目線で考えると、どれくらい重要か、急ぎなのか、どれくらいの精度が必要か、など上から求められていることが分かるようになります。
エンジニアとして成長するためシステム開発全体を俯瞰して見れるようになりましょう。
SEに求められるスキル
SEはシステム開発の管理者。
開発スケジュールやプロジェクトのエンジニア、ハードやソフト、売り上げや原価やを管理するスキルが重要です。
もちろんIT知識は必要ですが、それ以上に人・モノ・金を管理するマネージャーのスキルが求められます。
なのでIT業界未経験でSEを目指すことも不可能ではありません。
なおIT業界未経験でもOKの求人でも、企業の実情や実態といった詳しい情報は求人サイトには出てきません。
本当にIT業界未経験者でも求めているのか、過去に未経験者が入社した実績はあるのかなど詳しい情報は転職アドバイザーから直接聞くようにしましょう。
- リクルートエージェント/転職支援実績No.1
求人業界トップカンパニーのリクルートが運営する業界最大級の転職エージェント。地方でも豊富な求人数を誇り、まず登録対象からは外せません。 - DODAエージェントサービス/業界最大級の求人数と豊富な非公開求人。
こちらも業界最大級の総合転職エージェント。地方の求人数も多く地方のIT業界転職者にはおすすめ。 - レバレジーズテック/ITエンジニアが利用したい転職エージェントNo.1
IT・Web系エンジニアに強いIT業界に特化した転職エージェント。総合転職サイトにはない専門性が特徴。
まとめ:向いていることを選ぼう
プログラマーとSEでは求められる役割や仕事内容が全然ちがいます。
かならずしも優秀なプログラマー = 優秀なSEではありません。
作業者、マネージャーの仕事を理解して会社を選びましょう。
まだまだずっと続く仕事人生です。あなたが定年まで長く働ける会社を選びましょう
それでは。