こんにちは。労務プロダクト開発本部で仕事をしているasonasです。 SmartHRでは定期的に社内でLT大会を行っています。2024年4月19日に開催された第5回目LT大会について紹介します。
過去のLT大会の記事は下記のリンクからどうぞ。
https://tech.smarthr.jp/archive/category/LT
SmartHR LT大会とは
DevRelのinaoさんを中心に定期的に開催している社内イベントです。第4回まではこれといったテーマは設定されていませんでしたが、第5回では「チーム自慢大会」がメインのテーマとして開催されました。
当日の様子
例によってinaoさんによるオープニングトークがありました。

ちなみに今回のLTは45名の参加者が集まりました。

配置シミュレーション機能のパフォーマンス改善をはじめるぞ!

配置シミュレーション機能のパフォーマンス改善に取り組む話でした。N+1問題の排除やクエリの最適化、メモリ消費の改善、APIレスポンス時間を約16倍高速化しました。 改善までの手法としては以下の3点です。
- コードを眺める
- ログを眺める
- 測定する
むやみやたらに改善するのではなく、問題なっている箇所を発見してpreloadを追加し、巨大JOINクエリを改善し、メモリ消費の削減などを行っていました。 私自身は知らなかったのですが、メモリの消費量を計測するにはmemory_profilerというgemを利用したとのことでした。
年末調整機能チームを自慢しにきました

年末調整機能とは従業員と労務担当者の年末調整の課題を解決するプロダクトです。発表ではメンバーの共通点(猫を飼っている、コラージュ職人が何人もいること)を紹介していました。
年末調整機能チームの多くのメンバーはフルリモートなのでグルメ情報や便利グッズの紹介をしあうなど、直接仕事には関係のない話題で盛り上がっているとのことでした。 私自身、SmartHRに入社してからまだ半年ほどしか経っていないので、チームの様子やメンバーについて窺えて会社の様子を知るよい機会でした。
進化を続ける届出書類機能の取り組みとその成果

届出書類機能とは行政手続きの一括操作を可能にする機能で、特に入社手続きに関する書類情報の一括編集機能、異体字の自動変換機能、書類グループ検索機能の3つの主要機能について詳しく説明されていました。
まず、入社手続きの一括編集機能は、4月の入社手続きピーク時に効率的に対応できるようにするため、フィードバックを得ながら(閏日込みで)2月中にリリースされました。
次に、入社手続きの一括編集機能が本来よりも早くリリースできたことで、異体字の自動変換機能に早く取りかかることができました。異体字の自動変換機能とは正字と異体字の自動変換することで、ユーザーの手間を大幅に軽減できる機能です。具体的には電子申請のタイミングで異体字を使えないケースがあり、そのたびに修正の時間が掛かっていたものをシステム側で正字に変換します。
届出書類機能チームでは異体字の自動変換機能の利用割合を計測していて、リリース後に電子申請を利用されるお客様の数が増えました。
最後に、書類グループ検索機能は、氏名、社員番号、書類グループ名、作成者などで書類グループを検索できるようになり、これもまた多くのお客様に利用されました。
これらの機能追加により、書類作成から電子申請にかかる時間が1/6に短縮できるなど効率的になったとのこです(すごい)。
新卒0期生エンジニアを自慢

来春に新卒0期生として入社予定で現在内定者インターン中のnoriさんは、新卒0期生エンジニアを紹介しました。
各メンバーは高専出身や大学在学中で、ハッカソンや個人開発で活躍したり、動画配信やお笑いなど幅広い趣味を持っているとのことでした。
来年の入社が楽しみです!
アジャイルコーチングユニット紹介
発表者はkouryouさん。写真は撮り忘れてしまいました……。
アジャイルコーチングユニットの活動を紹介していました。このユニットは開発チームの改善をミッションとしており、専任スクラムマスターや長期実践型スクラムマスターを配置してチームをサポートしています。
アジャイルコーチングユニットはkouryouさんとshooenさんの2名体制なのですが、お二人とも筋トレが趣味で、それぞれローバースクワットとルーマニアンデッドリフトが好きな種目だそうです。この2つはコンパウンド種目と呼ばれています。コンパウンド種目とは、複数の関節と筋肉を同時に動かすトレーニング種目です。反対にアイソレーション種目というのがあり、こちらは単一の関節と筋肉を動かすトレーニングです。
個人的な意見ですが、筋トレとスクラムは実質同じです。「透明性」をもってして自分の目標へ到達するための進捗や体調を把握する必要がありますし、「検査」をすることで筋トレをした成果を自分の体へのフィードバックとして点検する必要がありますし、「適応」することでトレーニングの結果に基づき筋トレの計画を調整してより効果的な筋トレに挑むことができます。つまり筋トレとスクラムは実質同じです。
アジャイルコーチングユニットは、アイソレーション種目としては単一のチームで活躍する専任スクラムマスターとして入り活動することをサポートしています。コンパウンド種目としては、長期実践型スクラムマスター開発者とスクラムマスターの複数の帽子をかぶり、チームに入り活動をします。長期実践型スクラムマスターは開発者とスクラムマスターを兼任する方に向けて、アジャイルコーチングユニットがコーチングやメンタリングに取り組んでいます。
また、アジャイルコーチ相談枠を設け、気軽にアジャイルに関する相談ができる体制を整えています。さらに、ビジネスサイドへのスクラム導入支援も行い、ブランディング統括本部ナーチャリングユニットへの支援を進めています。
このように、アジャイルコーチングユニットは会社全体のアジャイル文化を推進し、より良い開発環境を作り出すために活動しています。今後も新たなコンテンツや取り組みを通じて、会社全体を「アジャイルな完璧な体(Perfect Body)」にしていくことを目指しているとのことでした。
アジャイルコーチングユニットの活動については下記の記事も是非参照してください。
Aspirinの自慢をするぞ!

Aspirinチームのメンバー紹介では、チーフのkozukiさん、SQLの達人nikuson1010さん、AI研究のmizunaoさん、フロントエンドのikechanさん、初期メンバーであり必要な場面ではチームをシャキッとさせるfutosiさんがAspirinチームです。
Aspirinチームは、とある息が長く規模の大きなフィーチャーの開発に連続で取り組んでおり、フィーチャー開発の反省を踏まえてより高速なフィーチャー開発ができるようになりました。SmartHRではFindyTeam+を利用しており、チームの生産性スコアは常に高く、労務関連プロダクトの開発部署内で堂々の1位を維持していました。
どうも!タレマネプロダクトの人事評価機能チームです!

タレントマネジメントプロダクトである人事評価機能チームについて紹介しました。
人事評価機能チームのすごいところとして、ライブラリアップデートの早さが挙げられていました。最新のRubyやRailsを常に使用し、DependabotやRenovateのPull Requestにも迅速に対応しています。また、1日に何回もリリースをして、masterへマージしたら即座にステージングで確認しデプロイするという高速な開発サイクルを維持しています。
さらに、不確実性へのチーム全体での取り組みも特徴で、開発スピードを上げるための工夫や心のリリース日を設定するなど、柔軟な開発体制を整えています。また、人事評価機能チームは「最短距離で行こう」を体現し、ゴールを達成するための工夫を続けているとのことでした。
人事評価機能チームの文化として、プロダクトビジョンを定例で唱和する習慣があります。これはチーム全体の一体感を高め、目標に向かって一致団結するための重要な活動です。こうした独自の文化や取り組みが、人事評価機能チームの高いパフォーマンスを支えています。
配置シミュレーション機能チームの受け入れ話

配置シミュレーション機能チームの受け入れ体験について話しました。配置シミュレーション機能ではこの一年間で多くの新メンバーを受け入れることに成功し、その過程で得た知見を共有していました。
いくつかの方法として、
- 既存メンバーから寄り添う
- MTG中に横から解説
- オフラインでのコミュニケーション
を重視していました。 特に「MTG中に横から解説」はなるほどと感じることがあり、MTG中であってもチャットで気軽に質問をしたり解説をする雰囲気を作れているのはよかったです。 フルリモートでZoomによる会話をしつつテキストベースでコミュニケーションを行うことは、ひとつの型として定着してきています。
多数の受け入れを経てチームに活気が出たり刺激を与えることになりました。受け入れられた側からも丁寧なオンボーディングによって素早くチームに溶け込めて充実した日々を送れるようになっていたのが良い取り組みだなと思いました。
プロダクト連携チームのすごいとこ

プロダクト連携チームの活動を詳しく紹介していました。プロダクト連携チームは、マルチプロダクト戦略の最前線に立ち、EDP(Employee Data Platform) を中心としたデータ連携プロジェクトを担当しています。
EDPは、複数のプロダクトに分散する従業員データを一元管理し、GraphQLを用いて必要な情報だけを取得できる仕組みを提供しています。これにより、SmartHR内の従業員情報が統一され、データ管理が効率化されます。また、プロダクト間のデータ責任の境界線を明確にし、データ管理のガイドラインを策定しています。
プロダクトを跨いだ検索の課題を解決するために導入されたデータベースフェデレーションの仕組みを作っています。これはTrinoを用いて複数のデータベースを1つのデータベースのように検索し、否定的検索やソート、ページネーションの問題を解決します。この取り組みにより、プロダクト間のデータ検索が容易になり、SmartHR内のデータ連携が改善されました。
さらに、プロダクト連携チームはタスク基盤の構築も担当しており、例えばSmartHRのホーム画面のサーベイや評価タスクを自動で処理する仕組みをSmartHRのモジュールとして実装しました。このタスク基盤は、様々なプロダクトから認証なしでデータを受け取り、効率的に処理できるよう設計されています。
kinoppydさんの発表は、プロダクト連携チームの活動がSmartHR全体のデータ管理の効率化にどれだけ貢献しているかを示すものであり、チームの重要性とその取り組みの成果を強調しました。プロダクト連携チームは、SmartHRのデータインフラを支える重要な存在であり、その活動は今後も続けられます。
つくったものを紹介します
発表者は私です。
普段からつくっているものを紹介しました。 Alfredというランチャーアプリケーションのワークフロー(プラグイン)のようなソフトウェアから、3Dモデリングをして自宅の3Dプリンターで出力して生活を便利にするハード方面の話まで幅広くしました。
普段のものづくりでは「半径5メートル以内の困りごとを解決する」をモットーにして、普段の仕事をする上でのちょっとした困りごとをAlfredのワークフローを書いて解決したり、ちょっとしたアプリケーションを実装したりします。3Dプリンターを買ってから2年ほど経つのですが、冷蔵庫の調味料入れの仕切りやリフィルするタイプのティッシュの入れ物を壁に設置したり、2x4材と併せてつかうとものづくりの幅が広がって近年で買って良かったランキングで上位に入ります。
オブザーバビリティツール活用に向けて

トリを務めるyudaiさんからは、大きな決断をするに当たって、そのプロセスやニーズ、価値、コストなどのバランスを取ることを重視して挑む、というお話をされました。
具体的には社外秘なのでここには書くことはできませんが、SmartHRではそんな重要で大きな決断を出来るソフトウェアエンジニアを募集しています。カジュアルな面談からも可能なので是非とも下記のサイトから応募ください。