絶望プログラマー(システムエンジニアってプログラム組めるの?何してる人?)
こんにちは。
ゴールデンウィークが明けまして、今週は会社の人たちに旅のお土産を配る1週間でございます。日頃お世話になっている人たちへ感謝を込めて、ここぞとばかりにお土産を献上します。大変な量となっておりますので、袋を二重にして通勤ラッシュに挑みます。
あーそうそう、東京の電車通勤事情は完全にコロナ前に戻っていまして(テレワーク減ったみたいです)、出社時は確実に通勤ラッシュに巻き込まれます。地獄です。
SEとプログラマーの違い
さて、今日はSEについて語りたいと思います。最近ITビジネス系のYouTubeやSNSから情報を得ているんですけど、YouTubeのエンジニア系チャンネルやインフルエンサー発信のSNSなど情報源は豊富なのですが、その殆どがプログラマー向けの情報で、意外とSEのことが発信されてないなぁと思いました。
流行のWeb開発言語のことやAWSなどの情報はしこたまあるのに、SEって地味だからか、ざっくりとした情報ばかりのような気がします。
SEって1日なにをしているんでしょうかね?
今日はその辺を書いていきたいと思います。
※ここで言うSEとプログラマーの違い
SE(システムエンジニア)
・お客様と要件定義を行う
・仕様書を書く
・コーディングは行わない
★PM(プロジェクトマネージャー)
・人員調整
・タスク管理
・スケジュール管理
プログラマー
・SEから仕様書を渡されてコードを書く
・完成した機能の単体テストを行う
昔からそうなのですが、SESの世界ではSEとプログラマーは仕事がきっちり分かれています。大きいプロジェクトになればなるほど分業制が徹底されています。
ベンチャーや小さいプロジェクトであればSEとプログラマー兼務のマルチな人たちが出てきて少ない人数で回してしまいますが、一般的にはウォーターフォールモデルを用いてシステム開発を行いますので分業制が大事とされています。
ちなみにフリーランスの人達は殆どがSE+プログラマーのマルチスキルです。そうじゃないと食べていけないですからね。フリーランスについて詳しくはこちら。
SEってプログラム組めるの?
というわけでSEについて突っ込んで見ていきましょう。
まずは
SEってプログラム組めるのか?
はい。組めます。
が、組めない人もいます。むしろ組めない方が一般的だと思います。
大きいプロジェクトになればなるほど作業が分業化されており、明確に
・要件定義
・設計(仕様書)
・製造
・試験
と作業が分かれています。全部漢字で書きましたが、分かりやすく横文字を使うと「製造」がコーディング、すなわちプログラマーの領域です。
その上の工程はSEの領域になりプログラミング作業がありません。
プログラマーは常に勉強
プログラマーは製造が始まったタイミングでプロジェクトに参画し毎日コーディング漬けとなります。
毎朝15分くらいの進捗報告があってそれ以外は全部コーディングです。長時間座ったままですから、首・肩・腰のフルコースでボコボコにやられます。余談ですが、プログラマーはぎっくり腰との戦いでもあります。
それとプログラマーは常に勉強に追われます。製造工程に入ったら仕様書を読みながらひたすらキーボードを叩くのみですので、必要な開発言語が書ける状態でプロジェクトに参画しなければなりません。
よって当たり前ですがプロジェクトに入る前に勉強するのです。そうしないとお仕事もらえないですからね。
いったいいつ勉強してるんじゃー?
と思う若者がいるかもしれないので言っておくと、仕事が終わってからです。えー?と思うかもしれませんが至って普通です。18:00定時で残業して20:00退社、帰宅して食事取って風呂入って缶ビールでプシュッじゃありません。そこから24:00くらいまで最新開発言語を学ぶのです。
どうですか?
プログラマーって大変でしょ。けっこう泥くさくて、キラキラしている仕事ではないと思うんですよね。
一方SEはというとプログラミングしないのが前提でして、レアケースとしてデスマーチ時に元プログラマーのSEが手伝ったりしますが、まぁ今は殆ど無いですね。
(くどいようですが分業制がしっかりしている場合です)
SEは特殊能力を持っている
ではSEは何をしているかというと「人と話す」「活字の読み書き」で1日が終わります。
1日8時間~10時間くらいはお客様との会議と仕様書書きに追われて、
会議5~6件は当たり前、昼飯食いはぐれることも日常茶飯事です。
そんなの楽しいの?クリエイティブじゃないじゃんと思われるかもしれませんが、SEがお客様と要件定義をするからこそ仕様書が生まれるわけで、誤解を恐れずに言えば仕様書がなければプログラマーの存在価値が無くなってしまいます。そんなわけでSEというのは責任重大なわけです。
ぶっちゃけ、地味ですけどね。
だから人気ないのかな?
いやいやいや、確かにプログラミングばかり注目されている世の中でプログラマーがクリエイティブと言われるかもしれませんけど、SEには言語化という特殊能力があります。
お客様が抱いている欲しい物のモヤモヤっとしたイメージ、いわば何も無いところからシステムを具現化するわけですよ。これを行うにはモヤモヤした物が何なのか言語化して第三者に伝えなければなりません。
これって凄くないですか?
伝言ゲームじゃないですけど一歩間違えば明後日の方向の物が出てきちゃいますよね。
このモヤモヤした物を口に出して説明したり、紙に落とす作業が言語化です。この特殊能力を武器に立ち回っている人たちがSEなんです。
どうですか?少しは見方変わったんじゃないですか?
SEってノートPC持ってスーツをカチッと着てちょっと堅苦しいイメージありますけど、実はクリエイティブなんですよ。
プログラマーのクリエイティブというのはいかにコードを美しく書けるかの方でして、最先端の設計思想、なんとかモデル、デザインパターンなんてのを駆使して、メンテしやすく機能的なコードを書くことだったりします。
それに対してSEのクリエイティブというのは0から1を生み出すことで、システムの仕様書(設計図)が書けることだと思うのです。
SESやっていた頃、最後に参画したプロジェクトが50人くらいの規模だったのですが、お客様と要件定義したSEは2〜3人でした。
この2〜3人が中心となって仕様書を作成し、カットオーバーまでプロジェクトという閉じた世界を牛耳るわけです。
旗揚げメンバーには誰でもなれるわけじゃなくて、特殊能力が必要なんです。訓練に訓練を重ねた者こそが特殊能力を持てるのです。これってかっこ良くないですか?
プログラムが組めなくてもSEになれる
いかがですか。
SEのクリエイティブとプログラマーのそれはちょっとニュアンスが違うと思うんですよね。まあ、どちらもやれば良いじゃんと言われればそれまでなんですが、やってみると分かるんですけど両方というのはなかなか難しいもんです。
私はとっくにプログラマーの方は浦島太郎状態でして、今流行のWeb開発言語を勉強していますが(必要に迫られて仕方なく)毎日地獄です。逃げたくて仕方がありません。
そんなわけで今日は SEについて書いてみました。
昨今プログラマー志望の若者が多いと聞きますが、人と話すこと(要件定義)や設計というジャンルもやりがいあると思いますよ。稼げますし。
もしプログラミングに挫折してしまったらIT業界を去る前に、一度SEの世界を覗いてみることをお勧めします。
意外と楽しいかもしれませんよ。
では今日はこの辺で。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?