こんにちは、開発部の松浦です。今回は、PR TIMESのグループ会社である株式会社グルコースへ1ヶ月間グループ内留学をした時の話をしていこうと思います。
きっかけ
始まりはCTOの金子と1on1した時に、グループ内留学について知ったことがきっかけでした。株式会社グルコースでは主に受託案件を取り扱っており、グループ内留学として期間中はその案件に携わることができるというものでした。受託案件では自社開発と違ってどのような開発スタイルかどうか興味があり、やってみたいと考えていました。
それ以外にも、PR TIMESでは採用されていない技術などを使って実装したいという思いもあったため、このような機会はこの時しかない!と思い、即決で留学を希望しました。
株式会社グルコースへ!
2024年5月のゴールデンウィーク明けから、株式会社グルコースのオフィスで働くことになりました。オフィスは落ち着いた雰囲気で、畳や熱帯魚、技術書がたくさん置いてありました。PR TIMESでは見ることがない光景だったので、個人的にはかなりの衝撃でした。(https://glucose.jp/recruitment/environment/2-office/)

お昼時に畳のある場所でお昼ご飯を食べてみましたが、どこか懐かしい感じがあって良かったです。また、グルコースの社員の皆さんともそこで技術的な話やグルコースについての会話をすることができ、良い思い出となりました。

グルコースでの1日のスケジュールは下記の流れでした。
- 10:30~ 出社・準備
- 10:35~ 朝会(お互いの進捗確認)
- 11:00~ タスクを進める
- 12:30~ 昼休憩
- 13:30~ コードレビュー、タスクを進める
- 19:30 退社
学び
今回私が入った案件で使用していた技術スタックは下記でした。
- フロントエンド
- バックエンド
フロントエンドのReactやTailwindcssは、以前個人やアルバイトなどで触っていましたが、GraphQLは触ったことがありませんでした。バックエンドの方では主にREST APIを触っていたので、初のGraphQLはとても新鮮味のあるものでした。
GraphQLの実装で難しかったのは、ページネーションの実装です。REST APIの方では馴染みのあったOffsetベースのページネーションではなく、Relay Cursor Connectionを使ったページネーションです。最初は似たようなものかと思っていましたが、根本的に考え方が違っていて、node, edgeを使用した数学のグラフ理論に基づいた考え方とのことです。
完全に初見だったので、めちゃくちゃ調べました。少し時間がかかりましたが、最終的にはページネーションの実装まで完了させることができました。今回の実装で、GraphQLについて以前よりかなりの知見を深めることができたと思います。
以下のサイトを参考にしました。


GraphQL APIで目にするbefore、after、firstやlastといった変数、並びにnodesやedges、cursorやpageInfoの意味について分かりやすく解説します。
また、PR TIMESとの開発スタイルの違いに関して、下記がPR TIMESとグルコースで似た部分だと思いました。
- 進捗共有の場がある(グルコースでは朝会、PR TIMESではチーム定例)
- タスクを進めるにあたってわからないことがあればSlackのチャンネルまたはHaddleで共有
- レビューはチームのメンバーに依頼する
違うなと感じた点は下記の通りです。
- 定期的な顧客との進捗・仕様確認
- タスクの重みはポイントで表現(PR TIMESではいつぐらいで終わりそうかの見積もり日付)
- 1つのタスクに対して、複数のプルリクエストを出しても良い(PR TIMESでは原則1つのタスクに1つのプルリクエスト)
- Togglアプリを使った時間管理
顧客との進捗確認・仕様確認は、受託案件ならではのものだと思いました。Togglという時間管理アプリに関してですが、このツールで1日にそのタスクにどれだけ時間をかけたのか可視化できるといったものです。このアプリを使用することでタスクの進捗を自己管理することができ、朝会などで共有する際にとても便利だと感じました。このアプリはPR TIMESでは使われていなかったので、取り入れていけそうだと思いました。
最後に
1ヶ月という短い期間でのグループ内留学でしたが、自分なりに良い経験になりました。PR TIMESでは取り扱っていないGraphQLも今回のグループ内留学で触れることができ、さらには株式会社グルコースの社員の皆さんと情報交換をしたり今後も刺激し合える関係を作る良いきっかけとなりました。また、PR TIMESとグルコースとの文化の違いだけでなく、開発スタイルの違いも触れることができました。

この期間に学んだことを活かして、さらに昇華させていけるよう今後とも頑張っていこうと思います。この機会を与えてくださった皆さん、本当にありがとうございました!

