Retty Tech Blog

実名口コミグルメサービスRettyのエンジニアによるTech Blogです。プロダクト開発にまつわるナレッジをアウトプットして、世の中がHappyになっていくようなコンテンツを発信します。

新卒アプリエンジニアがRettyのWebチームで修行して学んだこと

はじめに

初めまして、22年新卒エンジニアの三野田です。

こちらの記事はRettyの22年新卒が入社半年を振り返る「#22新卒techblog」の第5弾記事です。

前回はレイの「22新卒としてアプリチームにJoinして半年が経ちました」でした。

自己紹介

好きな食べ物: 好き嫌いがないため基本全部好きです。ただ最近のランチは焼き魚を選択しがちです。

好きな飲み物: お酒全般が好きです。一番飲むのは水です。モンスターエナジーは白一択です。

プログラミングの基礎は高校の授業を通して学びましたが、初めてサービスの開発に関わったのは大学生時代のアルバイトです。

なぜRettyへ入社したのか

私は、以下の2つを主軸にして、就職活動を行っていました。

  • スマホアプリ(以下、アプリ)開発がしたかった
  • チーム開発をしてみたかった

大学生時代のアルバイトでも、アプリ開発を行っており、純粋にアプリ開発が好きだったのと、まだまだこの分野で学べることがあると思ったためアプリ開発を就活の軸にしていました。 また、極めて小規模なチームでしか開発した事がないため、より大規模なチームでの開発というものに興味がありました。

カジュアル面談や面接を通して、Rettyが上記の軸にマッチしていると分かったことに加えて、社員の皆さんのサービスをもっと良くしていきたいという思いが伝わってきて、入社を決めました。

Webチームにて修行

タイトルにも書いてある通り、現在はWebチームに所属しています。

もちろん当初はアプリチームに所属して開発を行っていく予定でしたが、入社直前にマネージャーから話があり、下記の理由でWebチームでの修行を提案してくださいました。

  • Rettyというサービスはアプリだけで完結していないため、Webの開発へ実際に入ることで、全体像を捉えてほしい
  • Webエンジニアとしての視点を持つことで、視野を広げ、アプリチームを超えて活躍できる人材になってほしい
  • アプリチームは技術スキル的に独立しているため、他チームのメンバーとの関わりを増やし、アプリチームとWebチームの連携を発展させたい

自身の経験的にほとんど関わったことの無い技術領域で興味があったことと、アプリ開発に必要なスキルがアプリに関するものだけで完結しないことは薄々感じていたため、Webチームで修行することに決めました。

Webチームで学んだこと

以前の私は、自分にはアプリ開発しかできないんだと思い込み、アプリ開発以外から目を背けてしまっているところがありました。

実際に、Webチームでの開発は分からないことだらけで、今でも失敗したり他のメンバーに助けていただいたりを繰り返しています。 しかし、失敗から学べることはたくさんあり、半年前と比べると分かることが増えてきていると実感しています。

Webチームでの開発

私の所属しているWebチームでは、主に Retty Web のサービス開発を行っています。現在は主に、PHPで書かれているモノリスと、以前から移行が進められているマイクロサービス群で開発を行っています。

【参考】マイクロサービスへの移行について

engineer.retty.me

この半年間の開発で、今までの開発では触ったことのない言語(PHP、Go言語、gRPC/proto、GraphQLなど)に実務を通して触れられたり、ペアプロなどの助けを借りながら言葉でしか知らなかったクリーンアーキテクチャに沿った実装も行えたりしました。

しかし開発を行っていく中で、技術に関する学びよりも、チーム開発に関する学びの方が濃いものだったと感じています。これは、チーム開発における失敗が関係しています。

Webチームでの失敗

Webチームで開発を始めて、すぐの頃のある開発で、検証時にキャッシュが原因でうまく検証できなかった事がありました。その時に「キャッシュが原因っぽいし、そのうち直るだろう」と思い、他の作業を進めてしまって、チームメンバーを混乱させるという失敗をしてしまいました。

すぐに、問題に直面したらそこで終わりではなく、物事を進めるためには何をする必要があるかを考えられると良かったと、チームメンバーからアドバイスがありました。その後「チームメンバーに代理で検証をお願いするくらいのことならできたな...」と深く反省したことを今でも覚えています。

当時は、配属されたばかりで慣れない環境だったため周りが見えていなかったというのもあると思いますが、どちらかと言うと、一人で開発することが当たり前だったため誰かに頼るという意識が頭から抜けてしまっていた事の方が失敗の原因として大きいと思っています。

そこで、以降は問題に直面したら、問題の原因や解決方法が分からなければチームメンバーに相談するようにして、物事を前に押し進めるように意識しています。

もちろん、チームメンバーに相談するというアクションも最初から完璧にできていたわけではありませんでした。

最初の頃は、問題に直面した時に一人で悩みすぎてしまっていて、相談のタイミングが遅く、物事の進みも遅いという問題がありました。その時に意識したのがWorking Out Loudです。これは、自身の作業を発信し続け、詰まったらそこで尋ねるというもので、Slackの個人チャンネルに作業ログや悩みを投稿していました。

blog.studysapuri.jp

しかし実は、また失敗してしまっていて、個人チャンネルに投稿してしまうとその投稿を意識して見る人が限られてしまうため、反応があまりなくて結局一人で考えてしまっていたり、かなり遅れて反応があったりといった問題がありました。

チームのチャンネルにはチームメンバー以外も参加しているため、チームのチャンネルに作業ログを投稿すると邪魔になるかも知れないと思っていましたが、よく考えてみると参加している人は、他チームのメンバーだったり施策のプランナーだったり、そのチームに関心がある人ばかりです。どんどんチームのチャンネルに投稿をすることで、いろんな人の目に入って「ここのデバッグはこういう方法がありますよ」とか「(問題の原因を探している時に)最近うちのチームでこういう変更を行ったのでそれが関係してるかも」といったいろんなコメントをチーム内だけでなくチーム外からも拾いやすくなります。

そのため、作業ログや悩みの投稿先は、より素早くより的確なアドバイスを受けるために、その投稿が誰の目に入って欲しいのかを考えて、適切なチャンネルに投稿するようにしています。

個人開発からチーム開発へ

RettyではLeSS(Large-Scale Scrum)というスクラムの体制をとっており、現在 Retty Web の開発に直接関わるチームは3チームで、20人弱の人が開発に参加しています。

【参考】RettyでのLeSSの導入

チームこそ分かれていますが、管理しやすい単位に分割されているだけで、Rettyを良くしていくために達成しなければならない目標は全てのチームで同じです。ただ、一つのチームに所属しているそれぞれのメンバーの趣味嗜好はバラバラで、一つのチームの中にはフロントエンドが好きな人もいればバックエンドが好きな人もいます。

このような体制のためか、Rettyはメンバー全員でタスクを完了させようという意識が非常に強い組織だと感じています。

チームメンバー全員でチームのタスクを完了させるために行動するのはもちろん、上述したように他チームのタスクを完了させるために行動することもよくあります。

他にも、毎週行っているチームの振り返りで「この時はどうすればチームメンバーがもっと動きやすくなっただろうか」「あの時はどうして動きやすいと感じたんだろうか」といった議論を行ってメンバーの動きやすい環境を作ろうとしたり、ペアプロ/モブプロで知見の共有を行って特定の個人に頼らずともチームとしてできることを増やそうとしたりと、チームメンバーがそれぞれの強みを活かしてチームや組織に貢献できるように日々改善をしています。

アプリ開発だけに目を向ける以前のやり方は個人で開発する分には問題ありませんが、チームの一員になってチームの成果を最大化していくためにはアプリ開発以外にも目を向ける必要があると、今では考えています。チームメンバーの得意不得意や好き嫌いを理解して、時には得意なことでメンバーを助けたり、時には不得意なことをメンバーに助けてもらったり、お互いに助け合い一緒に成長しながら前に進んでいくのがチーム開発です。

ただ、今は助けられる場面の方が圧倒的に多いため、今よりももっとメンバーのことと自分自身のことを理解して、少しずつでも助ける場面を増やしていきたいと思います。

おわりに

Webチームに所属してから半年間が経過しますが、まだまだ分からないことがたくさんあるため、もう少しだけアプリチームには戻らずWebチームでの修行を続けることになる予定です。

しかし、現時点でもとても多くのことをWebチームで得られているため、Webチームで修行ができて本当に良かったと思っています。 これからもより多くのことを学び、Rettyで活躍できるエンジニアを目指してより一層努力したいと思います。

最後に、Rettyではより良いサービスを一緒に開発していくメンバーを募集しています。もしご興味のある方はぜひご応募ください。

hrmos.co