algonote

There's More Than One Way To Do It

会社のフェーズで要求されるものの違い

会社のフェーズにより求められるスキルは違うという話

f:id:hiromichinomata:20200701213240p:plain:w200

イントロ

花子さんは社会人3年目のソフトウェアエンジニアです。Androidの開発を担当していました。日々楽しく仕事をしていましたが、不幸にも突然の世界恐慌により会社がつぶれてしまいました。

幸いにも今月のお給料はもらえそうですが早速転職サイトに登録したり、知り合いに声をかけたりしました。日々アウトプットをしていたこともあり、何日かたつと複数の企業からお誘いがあり、来週面接が決まりました。面接の際何を重点的にアピールすべきでしょうか。

0->1. 創業期

「花子じゃん、久しぶり。え?会社つぶれた?まじか、実は俺もなんだ。この間ハッカソンで優勝したMVPがあるんだけど一緒にやらない?」

0->1の段階ではまずMVPの完成や発展、死なないことが重要になります。特定の一つの領域の専門性というより、フルスタックさが求められます

アプリの開発ならクライアント側だけでなくバックエンドも同時に書き、簡単なデザインもやる必要があるかもしれません。面接ではスキルの幅を聞かれることが多いかもしれません。

「会社ではAndroidを担当していたけど個人開発でサーバー側も必要だったので実装したことあるよ。iOSだけできてるならAndroid版作るし何ならバックエンドも書くよ」

1->10. スタートアップ 小

「花子さんは3年間Androidを担当されていたんですね。うちの会社は今これを開発していて次これをやりたいんだけどできると思いますか?」

1->10の段階だとそれぞれの領域である程度担当がおり0->1より自分の得意領域に注力できます

デザイナーはおり、バックエンドのエンジニアもいるので得意なAndroidに集中できますが、担当は自分一人かもしれません。その領域内でもスキルの幅や実際に直近作りたい項目を言われることもあります。

「前職ではB向けアプリとC向けアプリを担当しました。言われているお気に入りの機能はB向けのアプリでや地図検索の機能はC向けのアプリで実装したことがあります。」

10->100. スタートアップ 大

「花子さんは直近だとB向けのアプリを担当されていたんですね。うちはユーザーが増えていて、スマートフォン向けアプリをタブレットにも対応させたいんです。コード共有化しつつ同時にこの新機能を追加するとしたらどのように実装しますか」

専門性が分化してくる段階です。ピアレビューが保証されている環境でより人数の多い環境での開発経験が問われるかもしれません。

面接では実務に近いホワイトボード面接があることが多い気がします、より深い専門性が求められます。

「以前ユーザー数xxx人のサービスを担当していました。バックエンドのアクセス負荷を減らすためにxxという施策もやったことがあります。おっしゃられている新機能はxxxを使っても実装できますが、ooだと△△の利点があり、同時にタブレット対応もしやすくなりそうです。」

100->1000. 大手企業

「こういうタスクがあって、xxとして実装するとデータ量がnで計算量がO(n3). m秒以内に実行を終わらせないといけないのですが、どうすればいいと思いますか」

大企業ではより細かな専門性が求められます。新機能だけでなく既存機能の地道な改善や負債返却がメインタスクとなることもあります。

人を教育する体力があるのでベンチャーと比べるとポテンシャル重視かもしれません。大企業ほど知名度があるため応募倍率も上がり、面接の前に狭義の競技プログラミングの問題を通過することが必要かもしれません。

「そういうタスクの場合この部分を工夫してyyとして実装しすると計算量がzzまで減らせます。さらに木構造を少し変形させると計算量がもっと減らせて...」

スタートアップ vs 大企業

新卒の就活でもベンチャーに就職すべきか大企業に就職すべきかはよく議論になりますね。ベンチャーの方が成長できて大企業の方が福利厚生がいいと言われることが多い気はしますが、解釈次第な気はします

体感大企業の方が英語を使う場面が多く、多国籍チームはスタートアップではまだ少ない気がします。ベンチャーで成長できるというがその成長は日本語圏で得られるものだけだったりしないのか。

一方、リモートワークや時短などはスタートアップの方が融通がきく傾向。大企業の方が福利厚生がいいというがそれは転勤ありきや東京固定で得られるものではないのか。地方の両親が急に病気で介護が必要になるかもしれない。会社のサイズが小さい方が交渉はしやすく、大企業勤務ではリスクに対して脆いのではないか。

競プロは役に立たないか

もう一つよく上がるトピックとして(狭義)の競プロ力は役に立たないというものがあります。

個人的に競プロができる人は地頭も高く他の分野でも活躍できることが多いと思います。一方でスタートアップの現状で言えば教育する余力はない場合が多く、実務能力:競プロ力=0:100だとと厳しいと言われるのも事実

新型肺炎で少し不利になっているかもしれませんが、30歳記念の振り返りでも書いたようにマクロ的に見ると転職市場においてベンチャーの平均年収は上場企業を追い越しておりスタートアップの待遇が上がっています。

上に書いたようにアーリーフェイズの企業ほど競プロ力を問われる場合は少なく、日本においてもPayPalマフィアのように今後起業は増えるのではないでしょうか。起業率の向上は(転職での)競プロ役に立たないを加速させるのではないか という仮説。

実務能力と競プロ力両方強い人が最強は間違い無いですが、人間の時間は有限なので自分の入りたい企業のフェーズとスキルポイントの割り振りはちゃんと考えた方がいいかもしれない。個人開発の経験の方が評価されることもあります。

所感

企業のフェーズによって求められるスキルは全然違うと感じます。例え有名企業出身でもフェーズが合わなければ能力を発揮できないこともあるで見極めは大事だなと感じています。