FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

SIerからWeb系のエンジニアになって思ったこと

データチームの植村です。普段はデータエンジニアをしています。
業務ではワークフローエンジンやインフラを構成するためのTerraformを扱うことが多いです。こういう記事を昔書きました。普段何をしているかの参考にしてください。
今回はFLINTERS10周年のブログリレーということで、何を書こうか迷ったのですが、どうせならアクセスが伸びる記事が書けるといいなと思いキャッチーなタイトルで行くことにしました。対戦よろしくお願いします。
以前はいわゆる中堅クラスのSIerで3年ほどアプリケーションエンジニアとして働いていました。入社経緯にあたるWantedlyのインタビュー記事がこちらに書いてありますので、よろしければご覧ください。

さて、本題ですがIT業界ではSIerとWeb系とそれぞれ言われるタイプの企業があります、前者は他社のシステムを請け負い、開発・保守をするのに対して、後者は自社のビジネスのためのアプリケーションを開発するといったところでしょうか。株式会社FLINTERSは後者の文化を持つ企業だと思いますので、異なる2業態を経験し、かつ周囲のエンジニアの意見などを聞いた上でインターネット上でよくみることについて自分なりの見解を述べたいと思います。
前置き:必ずしもどちらに分類されるものではなく、〜よりということがほとんどです。

SIerは技術力はいらないか?

答え:部分的にYes
個人や企業の規模によりますが、SIerではコードを書かない・書けないエンジニアが多数いるのは事実です。上流工程を担当することが多ければ、マネジメント力やプレゼンテーション力が重視され、美しいコードを書く能力やモダンな技術への知見は軽視されがちです。ビジネス力が高い方ほど出世しやすいようにも感じ、結果的に出世するほど技術的に無頓着になる傾向はあるかな、思います。私も2年目の後半くらいからPLやPMに近いポジションになっていき、その点について危機感を覚えました。
ただし全員が技術力がないと思ったら大間違いで、大規模なシステムの設計を抜かりなくできるエンジニアはもれなく精鋭です。前職では、パソコン通信の時代から生き抜いてきた古参のエンジニアの知識体系の芳醇さには常に驚かされました。

一方、Web系では基本的に全員がコードに触れます。技術力は個人によって不揃いですが、手を動かして解決できる能力は求められます。ただし全員が優秀で技術が大好きなんてことはないです。常に勉強会に参加してニヤニヤしてる人もいれば、仕事として割り切ってやる人もいる印象です。
ただし前職と比べて大きく違いを感じることが、役職を持ってる方が技術的に非常に明るいです。私のチームのマネージャーも技術的に強強です。よくいじめられます。

Web系の方がモダンな技術を採用されがち?

答え:それなりにYes
SIerは顧客のシステムを受注開発します。受注のみ行い開発は内製でなかったり、システムの保守は他社が請け負うということもよくあります。なので技術的なチャレンジをして得られるメリットよりも枯れた技術を使い回すことで開発工数の見積もりの容易さ、不確実性のコントロールの方に軸を置くことは多いと思います。開発体験という言葉からは遠い位置に存在するのは事実だなと感じます。ただし、これも現場によって異なります。前職ではWebRTCやReactを軸にしたシステム開発に携わったこともあり、これはなかなかにモダンだったなと思います。

一方、Web系では自社のシステムを開発・保守していくため、自分達が長期的にシステムに携わっていくためのベストプラクティスを追求できる土壌はあると思います。そうなってくるとGitの導入や、CI/CDのパイプラインを整備したくなるのは当然ですね。ただし、FLITNERSの行動規範である最適な技術が最高の選択肢にも書かれている通り、モダンな技術を採用するかどうかはチームの練度・予算・システムの規模や特性に大きく依存するもののため、不必要なモダン性を受け入れることはありません。

給与はどちらがいい?

答え:会社規模による
IT業界にいるとこの手の話でよく盛り上がります。私の耳の届く範囲では、SIerの待遇は商流によって変わるという印象です。大規模なシステムを元請として受注できる場合は待遇も非常に良いイメージがあります。しかし、開発手法の特性からウォーターフォール形式を取ることが多く、より下流に近い工程になるとまたお話が変わってくるようです(実体験)。

一方、Web系の場合は多くの場合に自社のサービスを携わることが多いです。最近は日本でも大規模なWeb系の会社も増えてきましたが、その点ではSIerの方に一歩譲る印象があります。ただしコストを下げすぎると人が集まらないため、ある程度は保証をされているイメージがあります。まとめると、SIerに比べると中央が厚く分散が少ないといったところでしょうか。
FLINTERSの場合はGreenなどにレンジが記載されているのでそちらをご覧ください。

最後に、FLINTERSに入ってよかったこと

今のチームにJOINしてよかったことは、システムを長期的に自分達で保守していく体験ができたことです。外注などは行ってないため、コーディング規約やレビュー文化などが求められます。システムというのは新規フェーズと保守フェーズでは様相が変わります。人員の入れ替わり、ビジネス上の仕様変更への要求など様々な積み重ねによって容易に汚なく、手間のかかるシステムが仕上がります。そうならないようにはどうすれば良いか、チームの皆んなで話し合いできる限りのベストを尽くそうという姿勢が私は好きです。