プログラミングをしないエンジニア

3月 16, 2019

私もかれこれインフラエンジニアに転職して約4年が経ち、何度かプログラミングを勉強しようと奮起しました。

しかし、何度も投げ出してまた始めて・・・という感じで結局そんなに身に付かなかったです。(シェルスクリプトとかは書くので、多少コード読むくらいなら分かりますが)

まあインフラエンジニアと言っても日常的にプログラミングするのが仕事じゃないというのもありますが、片手間でやってる人は9割以上挫折すると思います。

という訳で今日は純粋にエンジニアを目指してるんだけど、なんか雰囲気でプログラマ目指しちゃってる人に、”プログラミングを(日常的に)やらないエンジニアもいるよ”というお話をしようと思います。

じゃ私が何をしているかというとプリセールスエンジニアをやっています。

ざっくり言うと、色々なベンダー(メーカー)や自社で作っている製品の素晴らしさを世に広めつつ、世の中の情シスや社内SEに製品を売り込むという仕事です。

ただし、営業とは違います。

製品の仕様であったり、アーキテクト、技術的な会話をするのが主な仕事となります。

「今うちで使ってるシステムに〇〇な問題があって・・・」とか、

「毎日バックアップに長時間かかっていて改善したいんだけど・・・」とか、

「最近話題のあの製品ってどうなの?」とかとか。

そういった問に対して技術的な回答をするのが仕事です。

もう少し深掘りして解説すると、

私が派遣契約で就業している現場はシステムインテグレーター(SIer)と呼ばれ、対企業向けにシステムコンサル、導入を行っています。

主に基盤部分を導入しています。

※基盤とはいわゆるプログラマがアプリやwebサイト等を作る上でそれらを動かすサーバやネットワークのこと指します。

基盤はどんな要素で構成されているかと言うと、

サーバ、スイッチ、ルータ、ファイヤウォール、ロードバランサー、ストレージ、各種ソフトウェア(データベースやバックアップやクラスタ)等々で構成されます。

案件化の流れは以下の流れが王道です。

1.企業からRFIやRFPが提示される
(レストランの予約サイトを作りたいから1000万人がアクセスしても大丈夫なシステムが欲しいんだけど!とか、カード決済システムを作りたいからデータが絶対に消えないシステムが欲しいんだけど!とかとか)

2.各SIerが要件を満たせるようにシステムを構成して、営業が見積もりを作成する。

3.各Sierがプレゼンを行い、一番最適な提案を企業が選ぶ

ここで選ばれると晴れて案件受注となるわけです。

ここまでで最も必要なスキルは、

1.システムを構成する上での製品知識や互換性、最適な製品選定

2.プレゼン能力

(プレゼン相手は知識豊富な方もいれば素人もいます。相手のレベルに合わせて技術解説力が必要です)

3.提案書作成能力

4.柔軟な対応力

5.臨機応変な対応

ざっくりまとめると、“膨大な知識とコミュニケーション能力が求められる”訳です。

システムと言っても最低限サーバ、ネットワーク、ストレージの基礎知識はないと構成なんて出来ません。

この構成だとデータがどういう経路を通って、どのぐらいの性能が出せて、こんな障害に耐えられる・・・そんなグランドデザインを描くわけです。

更にうちの現場だと、案件を受注した際に、

“どういう使い方ができれば運用が楽になりそうですかね”とか

要件定義を行います。(非機能要件部分を詰める)

更に要件が決まったら、

“じゃあ実際どういうパラメータを入れましょうか”

というように基本設計、パラメータ設計を行います。

私のお仕事はここまでです。

実際の構築は構築専門部隊に外注するので、プログラミングはしないという訳です。

(たまに外注受けてくれない内容の時は自分で構築しちゃいますが)

ベンダーは製品を作る。Sierが売り込む、構築は適材適所と言ったように役割分担されているんですね。

ベンダーとしてはなんとしても自社の製品を売って欲しいということで、積極的に我々にセミナーの招待や新製品の紹介をしてくれます。

我々はそこから知識をインプットしていきます。

私は28歳でインフラエンジニア業界に足を踏み込みました。

普通なら理系の学校を出て、新卒からプログラミングをやって・・・というキャリアを歩んでる人に比べたら数年のハンデがあるわけです。

ここからプログラミングを始めて勝負しても分が悪すぎるなと模索してる中で見つけた業種がプリセールスエンジニアでした。

幸い前職のおかげで人前で喋ることに抵抗はありませんでした。

あとは気合で知識をインプットしていき、今では1人で案件を動かすPM(Project Manager)

をやっています。

「プログラミングくらいできないとこの業界じゃ生きていけないよ」とマウント取ってくる勢が多い昨今ですが、コミュニケーションスキルの低いエンジニアも生きていけないと思います。

数年後に何が生き残ってどうなるかなんて知ったこっちゃないので、目の前のやれることを淡々とやっていくだけです。

プログラミングが必要だと思えばやれば良いし、そうじゃないと思うなら違うスキルを伸ばしていけば良い。

と、いうわけでプログラミングがどうも自分には向いていないのかも・・・

と悩んでいる人たちのために向けた記事でした。

(他にもカスタマーエンジニアとか、フィールドエンジニアとか色々あるからあとはググるんだぞ)

仕事を選ぶ上で大切なのは、自分が欲しいだけの給与がもらえて、自分の性格(スキル)に向いていて、長く続けらることが最重要だと思います。

周りの人なんて関係ないんですよ。