- 経営企画 IR
- サーバーサイドエンジニア※テッ
- 英語コンサルタント
- Other occupations (19)
- Development
- Business
- Other
こんにちは。プログリットでエンジニア・マネージャーをしている島本(@diskshima, @diskshima@mastodon.cloud)です。
新年を迎えて、年末年始に普段会わない方と話し合う中で、ご自身のキャリアを考えたりする機会も多かったかもしれません。パンデミックもあり、自分の人生やキャリアを振り返られた方もいるかと思います。
自分はソフトウェア・エンジニア(以下、エンジニア)としてやってきているのですが、よく「エンジニアのキャリアとしては小さいベンチャーと大企業はどちらが良いか?」と聞かれたりします。
短い文章で表現はしきれないトピックですし、千差万別なので、どちらが良い悪い、という議論をするものではありませんが、今回は「小さいベンチャーと大企業をでエンジニアをやること」について仕事の幅や深さという点から自分の思うことを書いてみたいと思います。
これからのエンジニアのキャリアとして小さいベンチャーが良いのか大企業が良いのか迷っている人の一助になれば良いな、と思います。
前提としての自己紹介
偉そうなことを語る前に自分の経歴を軽く紹介させてください。
自分はキャリアとしてプログリットが4社目になります。今までのキャリアとその規模感を振り返ると…(カッコ内の数値は入社当時のものです)
- 1社目:大手外資系証券会社 のIT部門でエンジニア(社員数、数万)
- 2社目:教育系ベンチャー でエンジニア(社員数5名)
- 3社目:医療系ベンチャー でエンジニア、エンジニア・マネージャー、CTO(社員数は3名)
- 4社目:プログリット(ベンチャー)でエンジニア・マネージャー(社員数170名ほど)
という感じで大きい会社も小さい会社も経験しております。
もちろんすべてを伝えられるわけではないですが、自分がその中で感じたことを書きたいと思います。
まずは大企業
まず、大企業では「レールが敷かれている」ことが大きな特徴で、エンジニア一人ひとりに対しては「幅よりも深さ」を求める傾向があります。
エンジニアの話で典型的な例として、開発言語やフレームワークは既に既存のシステムなどがあり、必然的にそちらを利用する可能性が高いですし、開発基盤(サーバやCI/CD等)もそれを軸に構築されたりしています。
また、大企業だと入社する人の数も多いので、その開発言語やフレームワークなどのレールにいかに速く乗ってもらうかがコスト観点からもとても大事で、そのための研修制度も充実している場合があります。「大企業」という感じではないかもしれませんが「はてな」の研修資料などをイメージしていただくと分かりやすいかもしれません。
自分が担当する範囲は決まっていることが多く、その中で専門性を磨くことが期待されます。開発規模が大きいため、小さいベンチャーでときどき見られる「全員が全部やる」「手が空いている人がやる」ような構造は効率が悪く、分業により各自の担当範囲を狭くして専門性を磨いて質やスピードを上げることが期待されます。
よって、大企業でエンジニアとして働くメリットの1つは「自分の専門に集中できる」ことが大きいと思います。当然、同じ専門性を磨いてきた方々も周りにいるため、教えてもらうこともでき、レベルアップしやすいと思います。そのため、 特定の分野で速くエキスパートになるのには向いていると思います。
この特徴ですが、裏返すとレールから外れにくいというデメリットにもなります。
使用する技術を自ら選定する機会も少ないですし、周囲のメンバーやチームとと異なるものを使用するのも難しいことが多いです。
また、先程述べたように専門性を活かしてパフォーマンスを出すことを期待されているので、例えばエンジニアリングを飛び出た経験(例、営業を経験してみる)をする機会もあまりないと言っても良いと思います。
自分も大企業に勤めているときは言語はC#、Java、Perlと基本セットは決まっており、フレームワークも.NETとSpringという風に基本的には決まっていました。既存のプロダクトだったこともあり、保守が先行しており、あまり新しいものに携わる機会も少なかったです。
もちろん、営業とかもしたことないです 。
ではベンチャーはどうか?
反対に小さいベンチャーについては今まで書いたことの裏返しになりますが、一言でまとめると 「レールがない分、経験の幅は広い」 ということになるかと思います。
小さい組織ですと使用する技術は一定決まっているかもしれませんが、細かく限定する人手や余裕もないので自分の裁量で決められる場合も多くなります。
自分も2社目や3社目のベンチャーでは何でもやっており、TerraformによるAWSでのインフラ構築、Ruby on RailsによるAPIサーバ開発、React.jsによるフロントエンド開発、React Nativeによるアプリ開発をすべて行っていました。
小さいベンチャーですと個人に対しての専門性を期待していることは少なく「今どうやってお金を稼ぐか」という点が最優先課題のため、必ずしも自分が伸びたい方向に経験が積めるとは限りません。
メリットととしては、ある仕事を(少しでも)できる人がやれる場面も多く、 エンジニアリングの中での経験の幅もそうですし、非エンジニアリングの経験の幅も広がりやすいと思います。自分も2社目のベンチャーでは顧客と接する機会がとても多かったです。エンジニアは開発が主な仕事でありつつも、あくまでビジネスの一環なので、事業の他の部分がどういう雰囲気なのか、どういう考え方をするのか、などに触れる経験は貴重です。
ただ、デメリットは当然ながら専門的な部分で深さを得ることは難しくなります。当然ながら研修などもなく詳しい方が社内にいない可能性も高く、何かと自分で手探りをしながら進めることになり、必ずしもベストではない形で開発を勧めてしまうことも往々にしてあります。
また、フロントエンドやサーバサイド、アプリなどと区分けしている余裕もなくて、何でもやる・やらないといけない、ということも多く、1つを深く掘っていくのには「時間がない」可能性があります(余談ですが「フルスタックエンジニア」という役割が流行ったのも、ベンチャー企業としては、こういう背景があるんだろうなと思います)。
まとめ
エンジニアとしてベンチャーと大企業を比べたときの仕事の幅や深さについて書いてみました。
それぞれ一言でまとめると
- 大企業では「レールが敷かれているので、そのレールに乗ってエキスパートに速くなれる」
- 小さいベンチャーでは「レールがないので、自由度や裁量が大きく、いろいろ経験できる」
という感じなのかな、と思います。
ちなみに、どちらが良いとか悪いとかの正解は一つではなく、あくまで個人個人がキャリアで求めるものをどう考えるか次第で決まってくると思います。
皆様のキャリアを考える上で少しでも参考になっていれば幸いです。