見出し画像

ワンキャリアの共通基盤開発チームが「Findy Team+ Award 2024」を受賞しました!

みなさんこんにちは!ワンキャリアで共通基盤開発チームのリーダーを担当しています鶴瀬(X: @nuoooo_kazu)です。
この度、Findy Team+ Award 2024にて、私がリーダーを務める共通基盤開発チームが、優れた開発者体験や自己組織化の促進を実現する先進的な取り組みを実践した組織に贈られるFrontier Award(Developer Experience Division)を受賞しました。

受賞に至った経緯として、チームでの開発者体験向上への取り組みについてご紹介します。



開発者体験とは?

開発者体験とは、開発者がいかに効率的かつ生産的に基準を超えるパフォーマンス(成果)を上げ、ワークフローの中で影響力を高められるかを左右するものです。

引用元: 「調査結果が明らかにする、AIが開発者体験に与える影響」 GitHub Blog

この定義は、開発者の生産性と影響力に焦点を当てており、より実践的な観点から開発者体験を捉えていると考えます。


共通基盤開発チームでの取り組み

共通基盤開発チームは、ワンキャリアが保持しているプロダクト全てで利用する機能の開発を担っているチームです。
現在のフェーズとしては、就活サイト「ONE CAREER」 にある主要機能を他のプロダクト(ONE CAREER PLUS、ONE CAREER for Engineer)でも利用できるような仕組みを作っています。

共通基盤開発チームでは主に4つの取り組みを行いました。

① 朝会でのコミュニケーション活性化
② プルリクエストプロセスの最適化
③ 開発環境の高速化
④ ペアプログラミングの制度化

これらの取り組みにより、以下のような成果を得ることができました。

  • チーム内コミュニケーションの活性化

  • 開発サイクルの短縮

  • コード品質の向上

  • チームメンバーの技術力向上

では具体的にはどのようなことをやっていたのか、ご紹介していきます。

① 朝会でのコミュニケーション活性化

朝会でのGood & Newや日々学んでいることの共有

私たちのチームでは毎朝30分間、各メンバーが「Good & New」と「日々学んだこと」を共有する時間を設けています。
これにより以下の効果が表れています。

  • チーム内のコミュニケーション活性化

  • 業務以外で学んでいることの共有によるアウトプットの量と質の向上

  • 学習意欲の向上

リーダー就任当初の朝会は、その日のタスクの進捗やアサインを共有するだけというシンプルで味気ないもので、コミュニケーションが活発とは言えない状況でした。そんな中、メンバーから「Good & Newや学んでいることの共有をしませんか?タスクの共有だけではつまらないので」という提案がありました。翌日から朝会のドキュメントに新しい項目を追加し、朝会前にメンバーに記入してもらうようにしました。

結果は大成功!朝会の冒頭で雑談形式でメンバーの日常や技術的な学びを共有できるようになりました。また、コミュニケーションが活発になったことで、タスクの進捗共有においても「XXXのような改善をしたほうが良い」などの建設的な提案が増えました。


② プルリクエストプロセスの最適化

プルリクエストの作成からリリースまでのリードタイム改善

プルリクエスト(以下、PR)の作成からマージ、リリースまでの時間を短縮するため、以下の施策を実施しました。

  • PRテンプレートの最適化

    1. PRテンプレートにリリースによるリスクを記載する項目を追加しました。この項目により、以下が可能になりました。

      • リリース時の本番環境でのリスクの事前把握

      • リスク軽減施策の確認

      • 問題発生時の迅速な対応

  • PRの分割

    1. 「一つのPRで行う変更は一つに」という考えのもと、レビュアーの負担軽減に取り組みました。PR分割により以下成果を得られました:

      • レビュアーからのフィードバックの質と速度が向上

      • レビュイーの修正着手までの時間が短縮

これらの取り組みにより、実施以前ではPRを出してからリリースするまでに平均3時間ほどかかっていたのに対し、実施後は平均1時間に短縮することができました。
またメンバーやレビュアーからも、「自身の出したPRがどういうリスクを生むのか改めて整理することができた」「レビューで重視すべき観点が分かりやすくなった」「一つのPRに対するレビューコストが減った」など肯定的なコメントをもらうことができました。


③ 開発環境の高速化

フロントエンドにBiomeの導入

これまで当チームのプロダクトでは、リンターにESLint、フォーマッターにPrettierを使用していました。ローカル環境でのリントチェックとフォーマットチェックに5秒ほどの時間がかかり、開発体験の観点で課題となっていました。そこでRust製のBiomeというツールチェーンを導入し、リンターとフォーマットにかかる時間を短縮する取り組みを行いました。

Biomeの導入によって得られた効果は以下です。

  • リントとフォーマットの実行時間が5秒から1秒以下に短縮

  • リンターとフォーマッターの設定をbiome.jsonという一つのファイルで管理可能

    • 従来のESLintとPrettierの2つの設定ファイルが不要

    • ルール設定のフォーマットが統一され、管理が容易

またBiomeはESLintとPrettierから移行を行うためのサブコマンドが用意されているため、移行作業も容易に行うことができました。


④ ペアプログラミングの制度化

チーム内でのペアプログラミング活性化

共通基盤開発チームは、2024年8月にOCEチーム(ONE CAREER for Engineerの開発を担当)から引き継ぐ形で新設され、私を含めメンバー全員が今年度の入社メンバーであったため、プロダクトとタスクの理解を深めるため、毎日1時間のペアプログラミング(以下、ペアプロ)を実施しました。
日々のペアプロを通じて、以下の効果が得られたと思います。

  • タスクの不明点の早期解消

  • プロダクト仕様の理解促進

  • 開発手法の知見共有

  • 仕様改善案の創出

またSlackのリマインド機能を活用し、ペアプロ前に以下の項目の入力を促すリマインドメッセージを投稿するようにしました。

  • 本日の議題

  • 解決したい課題


まとめ

これらの取り組みにより、Frontier Award(Developer Experience Division)を受賞することができたと思います。
今回の受賞を通じて、開発体験の向上が個人の生産性だけでなく、チーム全体のパフォーマンスに大きな影響を与えることを実感しました。
今後は開発体験だけでなく、プロダクトの技術改善にも注力していきたいと考えています。

具体的には以下の項目です。

  1. Next.jsの最新バージョンへのアップデート

  2. 各プロダクトのバックエンドのパフォーマンス改善

  3. プロダクト拡大を見据えて、BFF(Backend for Frontend)の導入などを検討

最後に、日々の改善活動に協力いただいているチームメンバー、そして各種施策の実現をするためにアドバイスをしていただいた技術開発部の皆様に深く感謝申し上げます。


▼ワンキャリアのエンジニア組織のことを知りたい方はまずこちら

▼カジュアル面談を希望の方はこちら

▼エンジニア求人票


いいなと思ったら応援しよう!

この記事が参加している募集