【インターンシップ体験記】これ一本でざっくり分かる!『スタディサプリ』の開発組織について徹底解剖
中尾 壮真
はじめに
『スタディサプリ』の小中高プロダクト基盤開発グループの認証チームでインターンシップをしていました。立命館大学3年の中尾です。今回はRECRUIT INTERNSHIP for Engineers 2024に参加させていただいたので、その体験や感じたことなどを書いていこうと思います!
この記事を読むことで、『スタディサプリ』の開発組織について知ってもらえたら嬉しいです。
また、こちらの記事とは別に、インターンシップ中体験した案件についても今後公開予定なので、ぜひそちらもご覧ください!
注:『スタディサプリ』開発部署での体験を話します。基本的に大きい会社だと部署ごとに色が出るので、他の事業部でもこれらが当てはまるかどうかは分からないです…。リクルート全社について共通して言えると思ったことはその都度明記します。
プロダクトについて
リクルートは、取り組みたい社会課題、領域をいくつか持っています。
詳細はこちらのサイトをご覧ください。
https://www.recruit.co.jp/company/business/
その中でも、『スタディサプリ』は、プロ講師の授業動画を配信するオンライン学習サービスです。
詳細はこちらのサイトをご覧ください。
チームについて
認証チームは、『スタディサプリ』の認証を支えるチームです。ざっくりいうと、アカウントの登録やログインに関する課題の解決を担当しています。
チームの雰囲気
すごく賑やかで楽しい雰囲気です!
心理的な安全性がすごいです。「ここはこうした方が良くないですか?」といった提案をすれば、「Good Issueですね」といった声かけを添えて議論を始めることができます。また、「ここってどういうことですか?」のような質問もミーティングや勉強会でも飛び交っており、積極的に質問することが歓迎される環境です。こういうのって良い組織を作っていくための基盤になる部分だと思うので、しっかりできているのはとても良いと思いました。
雰囲気が伝わりそうなSlackのログをいくつか拾ってきました。
開発について
技術スタック
WebフロントはReact, iOSはSwift, AndroidはKotlinです。
バックエンドについては、認証チームでは基本的にはRuby on Railsで、マイクロサービスとして新しくサービスを開発をする場合はGoを採用することが多いです。他のチームではRustを使ったりもしてるっぽいです。
DBはMongoDBやPostgreSQLで、クラウドはAWSです。
開発環境
『スタディサプリ』ではメンバーごとにKubernetesのnamespaceが作られます。なので、ローカルの環境で開発する場合は、自分のnamespace上のPodで開発を進めることになります。これによって、ローカルに環境を構築する必要がなくなります。
また、Pull Requestにdeproyラベルをつけることで、Pull Requestごとにデプロイすることもできます。これによって、Pull Requestをレビューする人も全く同じ環境ですぐに動作を確認することができるので便利です。
開発環境についてもっと知りたい方は、以下の記事を読むと良いと思います!
https://blog.studysapuri.jp/entry/2023/03/23/development-work-environment
スクラム
認証チームではスクラムを採用しています。スクラムとは、一定の期間を1スプリントという単位で考え、そのスプリントで何をやるかを決めて最後に振り返りをするような開発手法です。以下がスクラムに関するイベントです。
-
デイリースクラム
-
毎日15分ほどで進捗状況などを確認します。
-
スプリントプランニング
-
1スプリントで何をするのかを決めます。各タスクにどのくらい時間がかかるかをベロシティという数値で表し、チームとして消化できるベロシティの総和をもとにどのタスクに取り組むかを決めます。
-
スプリントレビュー
-
1スプリントの進捗をマネージャーに報告します。
-
スプリントレトロスペクティブ
-
1スプリントのチームの活動を振り返ります。開発のスピードや質などを上げるために何が良かったのか、何が悪かったのかなどを話し合います。
ペアプログラミング
認証チームではたまに行われています。Slackで「ペアプロ」として検索してみると多数ヒットし、素早くタスクをこなすための手段として積極的に用いられていると感じました。
良い点としては、実装とレビューを同時に行っているような状態なので、バグや考慮漏れにも気づきやすくなり、コードの品質を保ちながら開発を進めることができます。
難しい点としては、話すことに気を取られてしまうとコーディングに集中できないので、そのバランスが難しいです。また、ペアプロ自体の悪いところではないのですが、ペアプロをやることが目的になってしまうケースもありそうだなと思いました。ちゃんとふたり分のリソースを割くメリットを享受できているのかは常に考えておく必要があると思います。
文化
Working Out Loud
『スタディサプリ』には、Working Out Loudという文化があります。
作業中のタスクについて、進捗から困ったこと、気づいたことなど、なんでも声に出していこうという文化です。
認証チームではキャンプ地を立ててそこのスレッドに書き込むことが多いです。
Working Out Loudについてもっと知りたい方は、こちらの記事を読んでいただければと思います!
https://blog.studysapuri.jp/entry/2018/11/14/working-out-loud
留学制度
『スタディサプリ』の開発組織には、社内留学制度があります。
ざっくりいうと、チームに籍を置いたまま他のチームで一定の期間働けるというものです。
これによって、他のチームに対してフィードバックをしたり、良いところを持ち帰ったりできます。さらに、自分のチームに戻ってきた時に一度リセットされた視点で見ることができ、新たな問題点などを発見することができます。
留学制度を使った事例については以下を読んでいただければと思います。
https://blog.studysapuri.jp/entry/2021/11/29/080000
よもやま
リクルート全社の文化に、よもやまというものがあります。
簡単にいうと、いろいろな話ができるミーティングです。基本は1on1が多いと思います。このよもやまで新しいプロジェクトや取り組みが始まったりすることもあるそうです!
私もインターン期間で、新卒でスタサプに入ったエンジニアの方3人と、プロジェクトリーダーの方ひとりで合計4人の方とよもやまをしました。普段の業務のことや、なぜリクルートを就職先として選んだのかといったことについてお話ししました。基本的には30分くらいなのですが、1回すごく話が盛り上がって2時間くらいお話ししたこともありました。
よもやまについてもっと知りたい方はこちらの記事を読んでいただければと思います!
https://www.recruit.co.jp/blog/culture/20231113_4260.html
労働環境
部署にもよると思いますが『スタディサプリ』には労働時間に関しては無理をしない雰囲気があり、残業している人も少ないと思います。
また、今回配属された組織は労働場所に関してはリモート勤務の人がほとんどで、All handsなどのイベントがある時には出社している人が多いかなと思います。
自分は知らなかったのですが、リクルートは休みが本当に多いらしいです。インターンシップ1日目の懇親会で「休みが本当に多い」「分かる〜!」みたいなやりとりが行われており、どういうことだろう?と感じていましたが、普通の企業が年間休日120日くらいなのに対してリクルートの年間の休みは145日あります。1年で平均すると週休約3日です。今までは関心がなかったのですが、休日が多いのは魅力的だなあと思いました。
あと、部活がいっぱいあります。ふたつまで入れて、半期ごとに所属を変えられます。社員さんに聞いてみると、結構皆入ってるな〜と感じます。社会人になるとコミュニティに属するのが難しい気がするので、こういうのはありがたいですね。
リクルートの働き方についてもっと知りたい方は以下を見ていただければ!!
https://www.recruit.co.jp/employment/mid-career/benefits/
『スタディサプリ』でのインターンシップおすすめポイント
私がすごく良かったなと思うのが、インターン生にすごく寄り添ってくれるところです。
インターンシップ2日目まではメンターの方がつきっきりでサポートしてくれたのですが、私自身はもう少し自走したいという気持ちがありました。そこでその気持ちを伝えたところ、課題について一任してもらい、ほとんど自分ひとりで課題に取り組むことができました。
また、「別のタスクがやりたかったら言ってくださいね」「話してみたい人がいたらいつでも言ってください」といったふうに、インターンシップの体験を良くするためにすごく寄り添ってもらえました。おかげで、インターンシップの体験は最高のものになりました。
取り組んだ課題についても、難易度や充実度といった点で非常に満足できました。
ただ、その人に合ったタスクがあるかどうかは配属チームの状況にもよると思うので、ESや人事面接でどんな部署でどういう課題に取り組みたいかを伝えられると良いと思います。大きい会社だと部署とのマッチ度は企業とのマッチ度と同じくらい大事になってくると思うので、ブログを漁ったりプロダクトについて調べてみたりしてどの部署で働きたいかをしっかり考えておくのが良いです。インターンシップで配属されるかは分からないですが、リクルートだと[ICT](https://www.recruit.co.jp/employment/mid-career/interview/corporate-engineer03/)みたいな横断的な部署などもありますね。
最後に
1ヶ月間ありがとうございました!!!!!!