少し前の話ですが、6月6日付で楽天株式会社を退職していました。新卒で入った会社ですし、初めての退職エントリでも書こうかなと思いながら結構な時間が経ってしまいましたが、気が向いたので振り返りを兼ねて。

やってきたこと

経済学部から2010年に新卒入社して、1年目は人事で新卒採用、2年目から退職までの3年間はエンジニアというわりと変わった経歴でした。エンジニアになるまでの経緯みたいなところは以前書いたので興味ある方はそちらをご覧いただくとして、今日はエンジニアになってからのお話を。

初プロジェクト

異動の時にいくつかの部署と配属面談をしたんですが、配属されたのは楽天の中では小さい方のサービスで、確かサービスインから2年ぐらいの時だったと思います。配属初日、マネージャーとの面談で、「今日からあなたはプロジェクトリーダーです。メンバーはあなた一人です。進め方から考えてください。」というものすごい振られ方をしました。すげーこれが楽天の開発現場か!とわくわくしたものです。

担当したのはそのサービスのChrome Extension版の新規開発。そのマネージャーは異動の話が出る前からAmazon to Rakutenを知ってくれていたらしく、こいつ欲しいとこないかーっていう話が出た時に「あれ作ったやつが開発来たがってんのか!絶対うちが採る!」といの一番に動いてくれていたそうです。

IE版とFF版は既にあって、Chromeもやりたいけど経験者がいないっていう状態だったので、そのチームとしても絶好のタイミングだったわけです。

かくして一人プロジェクトのリーダーとして仕事が始まったわけですが、ぼくにとってめっちゃよかったのは、そのマネージャーとの進捗確認という名のメンタリングでした。進め方から考えてくださいと言われたものの、まともなプロジェクト管理なんて当然やったことがなかったので、進捗確認しようにも形も何もないところへ、プロジェクト管理とはなんぞやみたいなところからそれこそ報連相の仕方まで、毎日徹底的に叩き込まれました。

そんな右も左もわからない中でなんとか必要な機能をリストアップして、それが技術的にできるか調査をして、サーバとどんなやり取りをして、中ではどういう設計で動いてというのを作りつつ、スケジュールとスコープと必要な人数を調整するという仕事をやってました。開発フェーズに入ってからは、Extension側はぼく一人、サーバ側は先輩一人という体勢で、ぼくは全体管理しつつ開発もするという形で始まり、ちょっとぼくの開発がきつくなってきたのでプロジェクト管理は別のプロデューサーの人に入ってもらい、サーバ側にもう一人PSさん入ってもらいと他の人にも助けてもらいながら、なんとか初プロジェクトを概ね予定通り1月半でリリースできました。

異動して初プロジェクトを1月半でスピードリリースしたということで、楽天賞MVPという楽天グループ全体の月間MVP的な賞をいただきましたが、プロジェクト自体はそんな感じだったのでぼくの力がどうこうというよりは、人事からの異動の経緯も含めて色んな人にプレゼントしてもらったという感じでした。

SPONSERD LINK

次のプロジェクト

Chromeも無事終わって、こまい案件を捌きつつ次何やるべーっていう時に、IE版の方が不具合だらけで大変だったので、不具合があったユーザーに配るためのエラーレポートツールを作ろうということになりました。IEのアドオンにどっぷり絡むので、C++のWindowsプログラミングでした。当時PHPとJavascriptしか触ったことなかったぼくは、「ポインタってなんすか?」みたいな状態で鬼のような既存のソースコードの塊と格闘することになりました。

その時から時々別部署から手伝いに来てくれてたC++のスペシャリストの人に、まためっちゃ基礎的なところから教えてもらいつつ、時にはコードレビューでぼこぼこにしてもらいつつ、時にはググレカス的なことをやんわり言われつつ、その人が正式に同じチームに異動してきてからもずっと横で色んな相談をしたり色々教えてもらったりしました。仕事力とかプロジェクト管理での師匠が前述のマネージャーなら、エンジニアとしての師匠は間違いなくこの人です。

会社のWindows PCにVirtualBoxでUbuntuを立てて、tmux上でzshとemacsを操るという開発環境はこの師匠を丸パクリしました。自分なりにカスタマイズしながら、今のコマンドなんすか!?とか、ここ動かなくなっちゃったんですけど・・・とか、昨日見つけたこれめっちゃ便利っすよ!とか、何回席替えしてもほとんど隣の席にしていただけてたので、ぼくが退職するまで毎日のように情報交換できました。交換と言っても9貰って1も返せてないですが。

自動化

そんなわけで、IE・Chromeというクライアント側の開発を主にやっていたんですが、サーバ側のコンポーネントもそこそこあったのでJava・PHP触ったりPerlのバッチ書いたりもしてました。どっちもリリースが相当めんどかったので、Capistranoで自動化するというのを最後1年ぐらいがっつりやってました。

メインのプロジェクト自体はいつもそんなにぱつぱつじゃなかったので、合間合間にCapistrano書いてステージング環境で試してみて、うまくいったらしれっと師匠にレビューしてもらいつつリリース手順に組み込むというのをやってました。コンポーネントがいっぱいあるのでCapistranoのレシピも20個ぐらい書いたんちゃうかという気がしてます。

あとサーバ移設でこれまた大量にインスタンス作ってもらい、必要なミドルウェアを大量にインストールしてもらい、アプリをデプロイすると動かないという泣きそうな経験をしまくったので、絶対Chef入れましょうということでChefの導入もやりました。

自分でレシピ書いてローカルで流して、いけそうやったらインフラの人にレビューしてもらってそれ流してもらう。言葉にすると簡単ですが、大きな会社の中で本番サーバでこれやるのに非常に面倒なステップがたくさんありました。なんとか実際に本番稼働まで持っていったのは自分の中でひそかに誇れることだと思ってます。

シンガポール

開発に異動した後の一番大きな転機は、シンガポールへの転勤でした。自分のいた部署が本社からシンガポールの子会社に移管されるというミラクルで、営業も開発も期間はわからんけどだいたい2年ぐらいで現地メンバーを採用しつつ引き継いで帰ってくるという話でした。

海外で生活するなんて考えたこともなかったので、最初に面談で言われた時は「いやー半々ぐらいですかねー」とか言ってたんですが、なんか聞いてるうちにそれはそれでちょっとおもろいかもと思って、最初の面談が終わるころには7割方行く気になってました。

向こう行くまでどこにあるかも知らなくて、なんとなく中国の近くの海らへんかなーとか思ってたらめっちゃ赤道近くてびっくりしました。ただ寒いのは嫌いだったので、冬と地震がないシンガポールはぼくにとってはめっちゃ過ごしやすかったです。2年と言わず5年でも6年でもいていいんちゃうかっていうぐらいでした。

辞めた理由

シンガポール行きは準備期間が数ヶ月あったんですが、いよいよ準備も大方終わってあとは行くだけみたいな時に、元楽天の先輩に「グルメ系でこういうのやりたいから一緒に起業しようや」というお誘いを受けました。

最初は「いやーシンガポールがなかったそっち行きたかったんですけどねー」みたいな感じでさすがに今は無理かなーと思ってましたが、その後シンガポール行く前も行った後も何度か話をしてるうちにそっちのテンションが上がってしまったという感じです。

元々社外でも色々個人プロジェクト的にアイデア持ってる人と組んでちっちゃく作って出すみたいなのをいくつかやってて、どれかうまくいったら楽天やめてそっちに全力注ぎたいなーとかはぼんやり思ってたので、ダイレクトに誘われて色々聞いてみて、この人となら思いっきりやってみる価値あるなと思って決断しました。

エンジニアやってる限り当分サラリーマンにはいつでも戻れるというか食いっぱぐれることはないやろうという実感もなんとなくあったので、起業するリスクはもうないに等しいなと。それならリターンがでかい方に張り続けた方が期待値高いやん。みたいなのも大きかったです。

今やっていること

退職後は、BEST10株式会社のCTOとして、主にiPhoneアプリを作ってます。シンガポールいる時からちょっとずつ作り始めて、最終出社翌日に引越し&帰国して、社長の家に居候で自分の住む部屋探しつつひたすら開発するという感じの生活でした。

今は家も落ち着いてオフィスも小さいながら整って、もりもりコード書いてます。楽天の時と比べて規模は全然小さいですが、どちらも自社サービスなのでやることの本質はあんまり変わってない気がします。

そのサービスがどうやったらもっとよくなるかを考えて、必要な人と話して優先順位つけて、上からがしがし作っていくみたいな。もちろんその1つ1つのプロセスは大企業とどベンチャーでは全然違いますが、そこは環境に合わせて必要なプロセスを使うべきだと思うので、楽天の経験で幅を作れたのはよかったと思ってます。

まだリリースしたばっかりでアプリも日々改善しているところですが、もうちょっとしたらぐいっとアクセル踏みつつAndroidにも着手したいと思ってます。Androidアプリ作ったことないので、要所要所でアドバイスしたりコードレビューしたりしてくれる先生募集中です。

そんな感じで、楽天の時も毎日楽しかったですが、今も毎日楽しいです。今後とも村田佑介とBEST10をよろしくお願いします。