【インターンシップ体験記】『SUUMO』をもっと拡大していくには

住まい領域エンジニアリング部 住まいプロダクト開発4グループで1ヶ月間インターンシップさせていただきました、金沢工業大学 学部3年の山口侑大です。
今回のインターンシップでの経験についてご紹介いたします!
RECRUIT INTERNSHIP for Engineersに応募してみようかな?と迷っている方の一助になれば幸いです。

 

なぜ参加したのか

私は昔から個人開発が趣味で、多くの新規開発0→1は経験してきました。しかしながら、1→10や10→100のフェーズは経験がなく、そのようなフェーズではどのように開発を行っているのか、どのようにプロダクトを大きくしていくのか、といった解像度を高めたかったというのが理由の1つです。リクルートは各フェーズのプロダクトがそれぞれあり、特に今回配属された『SUUMO』は歴史が長く、規模も大きいです。
また、リクルートさんが持つ「課題解決の手法」や「各個人のやりたいことを尊重する文化」、「ビジネスにも興味があるエンジニアが多い」の一端を見たかったのも理由です。

 

配属先組織について

まずどうやって配属先が決定されたのか

これについては選考フローが絡まるため、詳しいことは不明です。

ただ、面接や人事の方との面談を通じて伝えていた、「成熟した、規模の大きなプロダクトを触ってみたい」や「カスタマーに近いプロダクトがいい」という私のWill(自身のやりたいこと)にあった現場が選ばれているように感じます。
私の場合、技術面接的な面接を担当していただいたマネジャーの方が長を勤めている部署に配属されました。その面接の中でもかなりWillを聞かれた記憶があります。


組織の紹介

私が配属された組織は不動産・住宅に関する総合情報サイトの『SUUMO』を開発している部署です。『SUUMO』の中でも、戸建てや中古マンション、土地の売買を担当している部署で、その部署が関わっている1プロジェクトに配属されました。

 

技術について

私が配属されたプロジェクトでは、バックエンドがSpring Boot、フロントエンドはTypeScriptとPugで構築されていました。JavaとTypeScriptは触ったことがありましたが、Spring BootとPugは初挑戦でした。

 

インターンシップ期間中の話

働き方について

このインターンシップでは、リモートと出社のハイブリッドな働き方ができます。また、出社する際は同じ組織の社員さんも出社してくれました。また今回の制度では、遠方の方については上限はありますが会社負担で出社可能でした。私は石川県に住んでいるため、この制度には大変助けられました。私の場合、関係構築のために初週は出社をお願いし、最終週も出社していました。間の期間はリモートで働かせていただきましたが、初週にグループの皆様方と顔合わせをしていたおかげで、リモートでもとても働きやすかったです。また、Slackでのコミュニケーションが取りやすい環境だったので、朝会などの決まった時間以外でも気軽に相談できる環境でした。リモートに不安を感じている方の参考になれば幸いです。

 

どのような案件に取り組んだのか

今回取り組んだ案件は、『SUUMO』アプリ内で自身のプロフィールや希望条件を登録すれば、自分で検索しなくても希望に合った物件情報が届く「おうちリクエスト」の画面の改修です。インターンシップ前の事前面談で、インターンシップで経験したいことを聞かれ、プロダクトの改善をやりたい・カスタマーにも近いタスクをやりたいといったことを伝えたところ、この案件にアサインされました。メインのタスクとしては、希望条件を入力した後に表示されるログインページに戻るボタンを追加するというものでした。今までは戻るボタンがなく、希望条件を変更したい場合は一度離脱して最初から入力し直してもらう必要がありました。今回、戻るボタンを追加することによって、離脱する人を減らそうという狙いです。上っ面だけ聞くと「カップラーメンの待ち時間で完成できそうだな」と思ったのですが、そんなことはありませんでした…

まずはアサインされたときの「おうちリクエスト」の画面についてご説明します。

  • 設問回答画面での回答データ管理はJavaScriptで行っている

  • 複数の設問を回答する途中でページ遷移を挟んでいる

  • JavaScriptで保持した回答データはページ遷移をすると消える

  • おうちリクエストを登録するにはリクルートIDでのログインが必要であるため、登録前に全社共通の認証システムの画面に遷移する

  • 認証完了後におうちリクエスト登録処理が実行されるため、認証システムへの遷移前にセッションに回答を保存・認証後にセッションから情報を取得してDBに登録する仕様になっている

そのため、設問ごとに回答データが保存されておらず、前のページに戻るだけだと全ての回答データが消えてしまうという課題がありました。

この課題を解決するために、ボタンを押したときに遷移する先のHTMLに対して、Thymleafを使用してセッションから取得した値を渡してあげて、ロード時にJavaScriptを使ってHTMLから値を拾って、状態を復元する必要がありました。

 

進めていく中で特にこれらに苦労しました。

  • フォームの値は全てJavaScriptで管理されているため、HTMLに渡すだけでは動作してくれなかったこと

  • 回答情報を復元し状態を復元する操作を全設問に対して行うため、大量のファイル修正が発生したこと

  • 大量の改修に伴いテストケースも膨大な数になったこと

 

どのような成果が出たのか

戻るボタンを追加後、この案件を評価するために、ABテストを実施して、案件で実施した変更がどういった影響を及ぼしたのかを確認しました。結果今回のインターンシップ期間でみることができた途中経過としては、2日間のABテストで、変更が反映されていないAパターンに比べて、変更が反映されているBパターンでは101.28%の改善が見られました。一部のユーザー体験、利便性向上には寄与していることが想定されるので詳細の分析が行われるとのことでした。

 

その他案件

ほかにも細かいタスクとして、軽いバグ修正のタスクを1件と、リファクタリングのタスクを1件させていただきました。元々メインの案件のみの予定でしたが、レビュー待ちの時間を活用するためにもっとタスクをやりたいと伝えたところ、Backlogから用意していただきました。

 

よもやま

インターンシップ期間中は、ほぼ毎日30分程度の「よもやま」と呼ばれるメンターさんとの面談がありました。人事メンターさんとは週1で、現場メンターさんとは毎日行っていました。インターンシップ中に経験したいことや、今困っていることなどなど、ざっくばらんにお話しすることができます。この場を使って、案件に関わる技術的な課題を解決することもありましたし、雑談的にリクルートやプロダクトの理解を深める場にしたこともあります。ちなみに、メンターさん以外の方との「よもやま」をお願いすることもできます。私は、新規事業提案制度のRing(リクルート社内の新規事業コンテスト)に興味があり、事業化までのフローやエンジニアからRingに事業立案した方のお話が聞きたいとお願いしました。すると、内定者時代にRingへ応募して、実際に起案されるに至った方とよもやまをさせていただきました!

 

ランチでよもやま?

出社するタイミングでランチに連れていってもらいました。うなぎや焼肉、カレー、とんかつ、中華といろいろと食べることができました。ランチの中で入社理由や仕事のこと、新卒の方であれば就職活動について色々聞けるとてもいい機会でした。

 

領域のBBQにも参加

これはただ単純にタイミングが良かっただけなのですが、ちょう

どインターンシップの初週に配属先の住まい領域エンジニアリング部でBBQがあり、それに参加させていただけることになりました!
普段リモートで顔を合わせる機会がないことや、同じ部でも関わりがない人との親睦を深めるための会でした。社員さん同士でも初対面の方同士もいたようですが、わいわいと会は進み、あっという間の時間でした。BBQの中でリクルートに入社した理由を何人かに聞いてみたのですが、さまざまなフェーズかつ日常でよく使われているプロダクトが多いこと、働き方やRing(リクルート社内の新規事業コンテスト)の存在など結構さまざまでした。

 

全体を通して

インターンシップを通じた学び・成長

今回、実際に10→100フェーズのプロダクトの開発に参加してみて次のようなことを学ぶことができました。既にプロダクトとしてはある程度大きな規模を持っているので、少しの改善を泥臭くたくさん積み重ねていくことでより改善していく、それによってさらにプロダクトが拡大していくということを学びました。一方で分析、仮説、過去事例をもとにした施策でも実際にABテストをやってみると、改善しないケースもある可能性があり、作った機能を反映できないこともある難しさも感じました。事業に向き合うエンジニアとしてこの経験をできたことは大きな学びでした。また技術的には、利用者が多いサービスを継続稼働させながら変更を加えることの難しさも感じました。コードを書き換えるときに考慮漏れがあると、システム障害につながりかねない一方で、利用者数が多くサービス停止時の事業影響も大きいことを踏まえると、どうやって可能な限り無停止リリースを実現するのか、ということは10→100フェーズならではだと、0→1で求められる技術力とはやはり違うと感じました。

 

気づき・感じたギャップ

リクルートのエンジニアさんはリモートで勤務する方が多いですが、BBQやその他集まる機会が設けられていて、対面で頻繁に会わなくても皆さん仲が良さそうだと感じました。

また、組織によっては内製化比率を高めようと技術力のあるエンジニア組織を作ることに取り組まれていて、これからリクルートといえば技術も強いと言われる時代が来るのかなと感じました。

 

まとめ

約1ヶ月間かつ週3日間の稼働と非常に短い期間でしたが、かなり濃密な経験をさせていただきました。
興味がある方はぜひエントリーしてみてはいかがでしょうか。