PR TIMESへの「グループ内留学」レポート

概要

2025年1月15日から3月14日までの8週間、株式会社グルコース開発部から、「交換留学第2弾」としてPR TIMES 第一開発部へ出向しました。これは、グループ内の人的交流を目的とした取り組みの一環です。2024年には「第1弾」として、PR TIMESの松浦さんがグルコースへ出向しており、今回はその逆になります。

参考: PR TIMES 松浦さんの記事 https://developers.prtimes.jp/2024/06/28/study-abroad-glucose/

出向の背景と目的

グループ会社間での出向制度は、PR TIMESとグルコースの連携強化のために導入されました。

参考: PR TIMES CTO金子さんの記事 https://developers.prtimes.jp/2024/12/27/cto_activities_2024/#index_id11

PR TIMESとグルコースで双方向の出向を制度化し、グループ内の人的交流を促すことで、志向性の変化による離職を防ぐとともに、相互の知識や技術が交換されることでイノベーションの機会が生まれると期待しています。

私は新卒入社以来、2年以上にわたってグルコース一筋でキャリアを積んできました。普段はJootoプロジェクトを担当しており、その業務を通じてPR TIMESの方々とも接点があったため、まったく未知の環境というわけではなく、出向への抵抗感はそれほどありませんでした。より大規模なサービスの開発環境に触れてみたいという思いと、自分の実力を試してみたいという気持ちから、今回の出向に手を挙げました。

出向の形式とスケジュール

出向期間中もJootoの業務と並行稼働していたため、PR TIMESでは週3日(主に水木金)・50%稼働という形式で勤務しました。

出向期間:2025年1月15日〜3月14日(全20営業日)

出社:原則金曜、その他はリモート勤務

出向期間中に担当した業務

CTO金子さんが掲げるモノリス改善計画の一環として、廃止予定であるLaravelベースのサービス間通信用のAPIから、内部アクセス専用APIへの移行プロジェクトを担当しました。

廃止予定のAPIはPR TIMES内のWebクリッピング及びSTORYから使用されており、それぞれが参照しているエンドポイントごとに仕様やLaravelでの実装調査を行い、独自フレームワークである新APIへの移植を行う必要がありました。

具体的には以下のタスクを行い、出向期間中に数回のリリースを行いました。

  • 移行先APIの実装(バックエンド、PHP)
  • 新API〜Webクリッピング間の内部通信での接続性作成(インフラ、Terraform)
  • 新旧APIの切り替えとリリース(バックエンド、PHP)

グルコースでの業務で触っているメイン言語がRuby、TypeScript、Terraform HCLだったのに対して、PR TIMESではPHPおよびTerraformを中心に触ることになり、特に業務でPHPを書いたのは初めてであったためとても新鮮でした。

出向を通じて得たもの

大規模PHPコードベースへの挑戦と理解

PR TIMESは歴史のある数十万行のPHPコードベースが運用されており、自分もタスクの一環で開発に参加することになったのですが、最初は勝手が分からず、既存コードを読みながらPR TIMES開発部メンバーに質問を投げるなどしていました。

しかし数回のレビューやリリースを通して徐々に流れが読めてきて、コードベースがかなり一貫性のあるレイヤ分けとなっており、処理が層ごとにある程度「カタ」として整頓されて記述されていることで、量の多いコードベースでも破綻せずに開発できているのだなと理解できました。

また、短い期間の中でいくばくかこのコードベースに貢献できたことは自分の自信にもなりました。

小さなPull Request単位での開発

PR TIMESでは、金曜を除く毎日16時からリリースを行なっており、開発〜リリースまでの流れが速いのが特徴です。そのため、一つのタスクに対して、変更はなるべく小さなPull Requestにしてレビューとマージを繰り返し、開発完了までのサイクルを速めることを促されました。

これにより変更がPull Requestのまま滞留しにくいようになっており、高速でリリースを行える環境につながっているのだなと感じました。

マルチステージング環境

PR TIMESでの開発では、開発者ごとのマルチステージング環境が利用可能となっており、ステージング環境のサブドメインごとに開発ブランチをデプロイして本番環境に近い形で動作確認をすることができます。これにより他の作業者と待ち合わせることなく、ローカル開発環境では見えなかった問題がないか確認することができとても便利だなと思いました。

参考: PR TIMESマルチステージング環境について

https://developers.prtimes.jp/2021/10/15/multi_staging/

https://developers.prtimes.jp/2022/04/22/ecs-multistg-deploy/

インフラ知識(AWS、Ansible、Terraform)の習得

PR TIMESのインフラを見る中で、AnsibleとTerraformによるIaC、AWSの運用を体験しました。グルコース管理でない、サービス規模の大きいインフラ運用をしたのは初めてだったのでとても新鮮でした。

個人的には、ちょうどAWS・Google Cloudでのインフラ構築や、担当しているJooto、グルコース社内のインフラについて興味があった時期に、本出向にてインフラをじっくり触る機会をいただけたため、大変勉強になりました。

技術共有・勉強会文化

PR TIMESでは週の中で技術共有の場や勉強会が行われており、日々の業務で直面した技術的課題とその対応についての知見が、チーム横断的に共有されていました。こういう取り組みから更新性の高い開発者ブログや、さまざまな技術カンファレンス登壇など、組織全体で「技術に強い」環境につながっているのだなと感じました。

勉強会では、私も趣味で行なっている開発について共有しましたが、皆さんから活発に反応していただけて嬉しかったです。

エンジニア同士の活発なコミュニケーション

グルコースは私含め、ほとんどのメンバーがフルリモートで稼働しています。PR TIMESは最近原則週3日出社となったのもあって、多くのメンバーがオフィス出社しており、オフィスに行った際には気軽にコミュニケーションが取れるようになっていました。

また、週1の開発部メンバーとのランチ会「ふらまる会」では、非開発トピックでの自己開示の場が設けられており、砕けたコミュニケーションを行う中で交流を行い、普段業務の中でのみ接する開発メンバーのひととなりを知る良い取り組みだなと思いました。

おわりに

今回の出向を通じて、PR TIMES開発部の文化や規模の大きいサービスの開発・運用を実際の業務を通して体験できたことは、非常に有意義でした。特に廃止予定APIの移行タスクをリードし、リリースまでやり遂げた経験は、私にとって大きな自信になりました。

また、業務を進める中でPR TIMES開発部の皆さんには大変お世話になりました。この場を借りてお礼申し上げます。

今後もグループ内の交流を深めながら、両社の技術・運用の知見を相互に活かしていけるよう取り組んでいきたいと考えています。