radioc@?

レディオキャットハテナ

SIerのSEからWeb系エンジニアに転職したんだが楽しくてしかたがない話

adventar.org

今回は しがないラジオ アドベントカレンダーの11日目の記事として投稿します。以前、しがないラジオを聴いていて興味をもった JavaScriptカウボーイというキーワードについてこのブログに書いたところ、後日別の回でその記事を取り上げて頂きました。

radiocat.hatenablog.com

せっかくのご縁なので今回アドベントカレンダーにエントリーさせて頂きました。しがないラジオに登場している名だたるみなさまが1日目から順番に投稿されている中、急にお前だれやねんな登場で恐縮ですがご容赦ください。また、過去にこのブログを見たことがある人からすると普段淡々と勉強会のまとめ記事などを書いてるだけなのに、なにを急に自分語りはじめとんねんな内容になると思いますがそれもご容赦ください。

しがないラジオと私

元々私はあまり積極的にはポッドキャストを聴いていませんでしたが、今年に入ってエンジニアとしてのインプットの手段を増やそうと考えていたところ、最近Tech系のポッドキャストが増えてきて盛り上がってきているという情報をどこかで聞いて聴き始めたポッドキャストの1つがしがないラジオでした。実は私もSIerのSEからWeb系エンジニアに転職した身なので全く境遇が同じということで、何度か聴いているうちに親近感をもって聴くようになりました。ちなみに、パーソナリティのお二人の前職はF社とのことでしたが、私の前職はH社の系列でした。

私はいつも通勤中にポッドキャストを聴いていて、興味を持った内容をGoogle Keepにメモしています。そのメモの中から最近のしがないラジオで特に印象に残っているものを3つあげてみます。

soundcloud.com

ゲストの id:tbpgr さんがSIerのダークサイドを赤裸々に語った回です。SIer多重下請け構造の問題については認識はしていましたが、私は一応大手の息のかかる範囲で仕事をしていたのでここまでリアルにそのような場面に直面したことは無く、同じSIerにいた人間からしてもけっこう衝撃的な内容でした。

soundcloud.com

前述のJavaScriptカウボーイの話題が出て来る回です。また、この回はリレーコーディングについてもメモしていました。最近巷ではペアプロやモブプロの話題が多いですがリレーコーディングもチームのレビュー力を上げたり教育目的でやってみると良いかもしれないと思いました。

soundcloud.com

この回で私のブログを取り上げて頂きました。ありがとうございます。この回は id:t-wada さんのテスト駆動開発や写経についてトークされました。id:zuckey_17 さんの紹介にありましたが私も ajitofm を聴いていたので共感しながら聴きました。

SIerと私

私が経験してきた中でのSIerの特徴についてまとめてみます。悪い点ばかりに目を向けて転職を考えるのは真面目にキャリアプランを考えるうえではリスキーな視点だと思うので、あえて良い特徴をあげようと思います。

SIerも色々ありますがあくまで私の経験からまとめるので、全てのSIerに当てはまるわけではない点にご注意ください。ちなみに私は2社のSIerで合計10年くらい経験を積みました。1社目は大手企業の情報システム部門が子会社化された会社で、親会社の仕事を受注してSIするタイプです。2社目は大手SIerの親会社がらみで仕事を受注してSIするタイプでした。どちらも大手企業の系列になるので、大手SIerに近い環境での特徴といえるかもしれません。

1. ソフトウェア開発の知識と経験が蓄積されている

SI業界はピラミッド構造になっているので基本的に大手が整備してくれたソフトウェア開発のプロセスやドキュメント、品質管理のルールなどが業界全体に浸透していると思います。それなりに歴史もあるので過去のプロジェクトの事例もたくさん蓄積されていて、新たなプロジェクトを開始する時の参考にすることもできます。さらに大手であれば国を支える社会インフラや経済を動かすような大規模な生産システムでのノウハウが他の様々なプロジェクトに活用できる点も、歴史の浅いスタートアップや独立系のWebサービス会社にはない強みであると思います。

開発プロセスに関しては工程を表す略称が色々ありますが、大手のどの会社の系列にいるかで使う略称が決まったりします。

eskie.blog.fc2.com

ちなみにSIerのSEが使う言葉はなんだか独特な用語がけっこうあります。

qiita.com

今では絶対使わない言葉の一つが カットオーバー です。昔は当たり前のように使っていましたが、今となっては違和感しかありません。

カットオーバー

2. しっかりした教育体制

これも会社によるかもしれませんが、大手SIerはだいたいグループで研修施設を持っていて、教育体制がある程度整っています。ビジネスマナーからプロジェクト管理までエンジニアとして必要な業務知識を体系的に学べるのは大手SIerの系列企業ならではだと思います。

また、SIerは基本的にMSさんと仲良しなのでMS主催のトレーニングや認定資格試験を会社のお金で受けさせてもらえたりします。私自身、Share Pointの仕事が増えそうだから認定資格を受けてこいと言われて受けたけどShare Pointの仕事を担当することは一度もなかったというような経験もありました。

マイクロソフト認定資格試験一覧

ただし、教育体制が整っているといっても望めばどんな研修でも受けられるわけではないのは他の業種と同じです。

3. 待遇も良い

大手SIerには労働組合もありますし働いた分はしっかり対価が支払われます。スキル不足な人でもそう簡単にはクビにされるような事は無かったと思いますし、人事的なサポートは手厚く受けられます。

そもそもSIerは比較的年収が高い業種です。

www.publickey1.jp

中堅企業でも企業規模を考えると決して悪くない待遇の会社が多いと思います。

next.rikunabi.com

しがらみが多いにせよ、大手が受注してきたそれなりに技術レベルも高い仕事ができて、研修などでしっかり教育のサポート受けて仕事ができて、働いた分きちんと給料がもらえると考えれば決して悪い条件でもないと思います(もちろんそういう仕事ばかりでもないのでハズレくじを引く事も多々あるわけですが)。

Web系エンジニアとして転職した私

次に転職してWeb系エンジニアになってから感じている点についてまとめます。自社のクラウドサービスを開発しているので、Web系エンジニアというより自社サービスを扱うエンジニアの特徴になると思います。

1. ツールを固定するようになった

転職してからEditorをVimに固定するようになりました。SIer時代はプロジェクトごとにその現場のルールがあって、使うツールもそれぞれの現場で違っており、最悪メモ帳でも何とかできる対応スキルが重要と考えていました。秀丸のマクロを駆使できるよう覚えたり、色々なエディタの使い方を知ってその時々の状況に合わせて使い分けるようにしていました。せっかくなので昔よく使っていたエディタを並べてみました。

転職後はWebのエンジニアとして腰を据えて仕事をするようになったので自分に合ったエディタを選んで使うほうが生産性が高まると思うようになり、Web系エンジニアはサーバサイドでviを使う事が多いのでVimに固定することにしました。

また、同じ考え方でキーボードもSIer時代はこだわりを持たずその場にあるものを使っていましたが、今ではREALFORCEのテンキーレスキーボードに固定しています。

ツールを固定することが重要なので会社の共有PCや家で使うPCのことを考えて英語キーボードは諦めて日本語キーボードを使っています。

2. 絶対的なルールが少ない

SIerの場合は納品物などの取り決めがあるのでテストのやり方、ドキュメントの作り方があらかじめ決まっていることが多いですが、自社サービスの場合はどこまでドキュメントを整備するかやどこまでテストするかは社内でわりと融通がききます。明らかにやる必要のないテストに時間を割く必要はありません。

ルールが少ないということはどんな状況にも真摯に向き合う姿勢が必要になってきます。例えばあるテストで「このテストは無駄なのでやる必要がなさそう」と思ってもSIerの場合は既にテスト範囲を決めてテスト結果を納品することになっていたらテストするしかありません。しかし自社サービスの場合は本当に不要なテストなのか、それとも自分が気づいていない影響があってやはりテストしたほうが良いのかをしっかり見極める必要が出てきます。そして本当にテストが不要ならその理由をしっかり説明して周りを納得させる能力が必要になります。

ところで、SIer時代はテスト結果の画面のスクショを撮ってエクセルに貼り付けてエビデンスとして提出することも多かったですが、最近はそういった作業も自動化されようとしているようです。

itpro.nikkeibp.co.jp

転職した今はむしろE2Eの自動テストが失敗した時だけスクショを自動で残したりしているので、状況が変われば同じスクショも使い方が変わるという点でも、状況に向き合って手段を選ぶ必要があると感じています。

3. 技術のアンテナは広く

SIerの場合はJavaで作ると決めたらよっぽどのことが無い限りはJavaで作り続けるしかありません。仮に違う言語で作るほうが良いと分かっても、少なくともその決定権は顧客側にあります。しかし自社サービスであればその判断は自社で行うので、エンジニアも常にアンテナを張って新しい技術も取り入れられるように準備しておく必要があります。

そもそもSIerの場合は使う言語など技術を軸として仕事が決まるので例えばJavaをやっていたら、それを軸にしてScalaも勉強してみて対応できる案件を増やすとか、アンテナの向き先をある程度絞ったうえで感度を上げるような動きになると思います。しかし自社サービスを扱うとJavaをやっていても、急にAI系の機能が必要だからPythonを勉強するという事も起こりえます。その時が来てから技術を学び始めていてもなかなか追いつけないので普段からアンテナは広めに受信していたほうが良いことが多いです。技術動向などの情報は転職してからのほうが注目するようになりました(会社の状況や働く立場も関係しているかもしれませんが)。

ガートナー | プレス・リリース | ガートナー、「日本におけるテクノロジのハイプ・サイクル:2017年」を発表

さいごに

偏りのあるまとめになってしまった気もしますが、SIer時代と転職後の現在について3つずつ書いてみました。ここまで読んで下さったかたの楽しくてしかたがないと思えるエンジニアライフの一助となれば幸いです。ちなみに、以前しがないラジオで3つ例をあげる話し方のテクニックについて話題になっていたと思いますが、それについてもブログに書いたことがあります。

radiocat.hatenablog.com

こんな感じで引き続きポッドキャストを聴きながら個人的に気になったキーワードを拾い上げてブログにアウトプットしていこうと思います。