Wantedlyに2019年7月から入社しました、エンジニアのえーたろーです。
入社してから6ヶ月目を迎えたこともあり、Wantedlyに入って感じたことを書きたいと思います。
キャッチーな言葉でいうと、大手SIerからWebエンジニアになった人の話です。
自己紹介
ざっくり紹介します。中学生の頃にHot Soup Processorで簡単なゲームを作っていました。大学では機械宇宙系、大学院では力学系(一定の規則で変化するシステムを研究する学問)と、プログラミングからは少し離れていて、計算機として数値シュミレーションを動かす程度でした。大学院卒業後大手SIに就職し、その後Wantedlyにエンジニアとして入社しました。パズルと将棋とボルダリングとダイビングが趣味です。
大手企業で感じたこと
入社直後の違和感
大学院卒業後、前職にあたる大手SIに新卒入社しました。
修士1年のときにドイツへ留学し、帰国した時にはすでに友人たちは就職活動をすでにしている状況でした。自分はというと就職活動はあまり積極的ではなく、大学で開かれた説明会の中のみで探していました。
その中でも、大手企業に入社すればコードも書けるし上流工程もできるだろうと考えていました。
しかし、SI(システムインテグレーション)とは、システムが欲しい人と、システムを作る人を結ぶシゴトです。実際に技術を駆使してシステムを作るような業務はあまりなく、エクセルやパワポを駆使して説明資料を作り要件やスケジュール等をすり合わせるところがメインです。入社して1年ほど経ったあたりから、自分の中で違和感を覚え、どこかのタイミングで転職するんだろうなと漠然と感じていました。
違和感を覚えた頃から競技プログラミングにハマり、技術や開発など実際に作る方に興味を持つようになりました。はじめは土日に取り組んでいましたがそのうちみるみるハマり、平日に帰宅してからコードを書かないと眠れないようになりました。ちょっとした子守唄です。5時間ぐらいの子守唄。
次第に“世の中にはコードを書いて給与がもらえる人たちがいるんだよなぁ”と思うようになり、これを仕事にしている人たちが羨ましくなりました。
少し調べてみると、自社開発Web系のような、自分たちで何を作るかを決定して自分たちで作り、世の中にインパクトを与えている会社がたくさんあることがわかり、Webサービス企業への魅力が増していきました。
豊かさ≒選択肢が多いこと
少し話がそれますが、自分の価値観の一つに、"豊かさ≒選択肢が多いこと"というものがあります。一般的な豊かさの基準は様々です。お金を持っている人だったり、時間に余裕がある人だったり、その尺度は十人十色です。お金を持っていたら色々なことを経済的制約なく実行できますし、時間がなかったらできることは限られていきます。突き詰めていくと豊かさとは選択肢が多いこと、何かに制限されないことだと自分は考えています。(自由とは若干ニュアンスが違います。何かを実行しようという気持ちがあることが前提です。)
就活中の自分は、大手企業は選択肢が多い環境だと考えていましたが、いざ勤めてみると自分にとっては制約が多い環境に感じました。(具体的な制約や出来事についてはここでは述べません)日々を重ねることで、会社の中での選択肢は増えても、社会の中での選択肢の幅が広がらない、むしろ狭くなってしまうような感覚がありました。(この文章を読んでいる人の中にも、同じような感覚を持っている人もいるかもしれません。話が弾むと思います)
転職
実際にプログラミングをしてものを作りたい気持ちが強くなったことと、社会の中での選択肢の幅が広がらないことに対する危機感が相まって転職を決意しました。ちょうどその頃スカウトをいただき、話を聞きに行きました。
Wantedlyで働こうと決めた大きな理由の一つとして、"Code wins Arguments"というValueがあります。あーだこーだ議論を行うより実際に動くものを作ることが良しとされる文化は、これまでの働き方とは違い、とても魅力的でした。何度かオフィスに遊びに行き、Wantedlyで働いている人たちからもカルチャーを感じる事ができ、志望。ご縁があり入社しました。
Wantedlyで感じたこと
Wantedlyで何をしているか
Wantedlyではグロースハッカーをしております。分析を行い、仮説を立て、それを元に改善施策(効果があるかどうか確かめるため、A/Bテストなどで実験を行います。その実験の単位を施策と言います。)を行い、結果を分析し学びを得る。このサイクルを回すことで、プロダクトをより良くしていくのがGrowthの大きなミッションです。自分が主に担当しているプロダクトはVisit(「話を聞きに行きたい」)で、VisitはWebとアプリに大きく分かれるのですが、自分は主にWeb周りを改善しております。
競技プログラミングや、簡単なアプリ制作の経験はありましたが、チームでの開発や、業務としての開発は未経験だったこともあり、入社してから勉強の日々です。優秀なメンバによるサポートのおかげもあり、入社してから20以上の施策を実施してきました。自分が考えたアイディアや実装で行った改善によって望んだ結果がでると嬉しくなります。(その逆もあります。)最近は分析手法をちゃんと理解したいなぁと思い、統計学を勉強しています。
“競技プログラミング”と“Webサービスを作ること”の違い
ここでは自分が感じた競技プログラミング(以下競プロ)とWebサービスを作ることの違いについて説明したいと思います。まず競プロについて簡単に説明すると、与えられた問題を解くプログラムをどれだけ早く作成できるかを競う競技です。これだけだとただのコード速書き選手権に思われてしまうかもしれません。もちろんそういう側面もありますが、競プロの核心はいかに計算量やメモリ使用量を抑えたアルゴリズムを発想し実装できるかにあります。
自分がこれまでの中で感じた競プロとWebサービスを作ることの違いを書いてみました。
- 問題を作り、正解を選択する
競プロはたくさんの問題があり、しかもそれらの問題には正解が一意に存在することが保証されています。一方業務では問題を自分達で考える必要があり、しかもそれらの問題に一意な正解はなく、よりプロダクトに相応しいのはどちらかを選択するプロセスがあります。ここが難しいところでもあり、面白いところです。 - Webサービスとしての処理時間を意識する
Webサービスの構成を理解して、それぞれの処理時間を意識することが重要です。例えば通常の演算処理とDBが関係する処理では処理時間のオーダーが異なるため、全体を通してみると、すべての処理を最適化する必要がなかったりします。それよりはコードの可読性を意識するほうが重要だったりします。 - コードを書いたあとの分析が重要
競プロではコードを書いてテストケースが通れば終わりですが、グロースハッカーはコードを書いて世にリリースしてからが本番です。指標となる数値を集計・分析し、次の施策につなげていきます。結果によっては実装した機能を消すこともあります。"改善が99%"です。
このように、Webサービスを作ることは競プロとは大きく異なり、プロダクトのこと、それを使用するユーザのことを意識することが重要です。ただコードを書くだけではないところが、難しいところでもあり、とても楽しいところでもあります。
入社して驚いたこと
何度か話しを聞きに行っていたこともあり、入社前後の大きなギャップなどはあまりありませんでしたが、以下のようなシゴトの進め方やコミュニケーション方法はギャップが大きく驚きました
- 意思決定と行動の早さ
早い。午前中に決めたことは午後には実装できていたりします。一緒に働くメンバが優秀な部分ももちろんありますが、意思決定のプロセスが明確で、かつ個人の裁量で決定できる部分が多いため、ここまで早く行動できるのだと感じています。 - 非同期コミュニケーションを上手に活用しており、かつそれを良しとする文化ができていること
社内では主にGitHubによる非同期によるコミュニケーションを行っています。また、各々が定期的にメッセージを確認する習慣があるため、「読んでもらえているか不安」のような状態があまりなく、ストレスなくコミュニケーション取ることができます。Slackも活用していますが、"エンジニアの集中時間は睡眠と一緒"という文化があるため、最低限のやり取りでしか使っていません。
最後に
転職を機に、友人から相談を受けることがよくあります。それだけ、今の職場や、シゴトに対して悩んでいる人が増えているのだと感じています。やりたいことが明確じゃない、よくわからない、でも就職のタイミングが来てしまった、なんとなく大きい会社に入った、親は喜んでいる、でも月曜日が重い、という人が多いような気がします。(良くも悪くも優秀な人ほどそういう傾向がある気がします)自分が今本当に楽しくシゴトに臨めているか、さらには将来をどうするか向き合って考えることはとてもしんどいものですが、ぜひ考えてほしいと思います。そして行動するときは、誰かの意見ではなく自分の意見として行動してほしいです。
この記事を読んでWantedlyに興味をもった人は、下のリンクから気軽に話を聞いてみてください。
私達は“カジュアルにオフィスに遊びにいけるサービス”を作っていますのでお気軽に!