SmartHR Tech Blog

SmartHR 開発者ブログ

SmartHR UIの現在地 ~2023年12月編~

画像内テキスト:SmartHR UIの現在地 ~2023年12月編~
このエントリは、SmartHR Advent Calendar 2023 シリーズ1の22日目の記事です。

こんにちは、SmartHRの@a2cです。(atsushiと読みます)

年末に差し掛かり、今年もSmartHR UIの振り返りの時期がやってきました。SmartHR UIはOSSとして公開されているコンポーネントライブラリで、主に社内のコアメンバーによって運営されています。SmartHR UIがそもそもどういったコンポーネントライブラリなのか、どうやって始まったのか、どのように運用しているのかは、過去の記事にて説明しておりますので、よろしければ以下の記事をご覧ください。

今回の記事では、『SmartHR UIの現在地 ~2023年12月編~』というタイトルで、記事の前半ではSmartHR UIを運営している我々から2023年12月時点の SmartHR UIの最新情報 をお届けします。記事の後半では、僭越ながら私自身がなぜSmartHR UIに貢献したいと思っているのかをお話できればと思っています。

SmartHR UIの現在地 ~2023年12月編~

メトリクス

メジャーバージョンはついに40に到達しました。v30は半年前、v20は1年9ヶ月前となっており、ここ最近は更新のペースが上がっています。
また、嬉しいことにコントリビューターの数も68人に増えております。社内外問わず皆様からのPRを受け付けておりますので、もしご興味あればいつでもお待ちしております。

項目名 2022/12/13 2023/12/18
バージョン v24.3.0 v40.1.0
コンポーネント数*1 63 82
ソースコード規模*2 28,063 31,412
コミット数*3 3,496 4,498
コントリビューター人数*4 54人 68人

ユーザー(author)ごとのコミット数

次に2022年12月から2023年12月までの、ユーザーごとのコミット上位数を見てみます。全体の傾向でいうと、コミット数自体は減少傾向にあることがわかります。
また、昨年と比べてランクインメンバーの入れ替わりもあることが伺えます。
(来年は私も上位に食い込むぞ🔥)

コミット数 コントリビューター
119 KANAMORI Yu
65 Mizoue Atsushi
30 tomof
17 Masakatsu Tokita
13 Yu Watanabe
12 shun
8 Shinichi Kogiso
6 Atsushi Kawamura
6 nabeliwo
5 f440
5 tacona

※ コマンド git shortlog -nseP --since="2022-12-14" --until="2023-12-18" --author='^(?!renovate|dependabot|github-actions).*$' を使って集計
※ 上位10位までを抜粋

運用・開発体制

2023年12月現在、SmartHR UIの開発チームは、コアメンバー7名(エンジニア5名、デザイナー2名)により構成されています。専任メンバーは相変わらずいません。有志による取り組みということもあり、コアメンバーへの参加・離脱は本人の自由意思を最優先にしています。離脱に際してチームからのネガティブな反応は一切なく、参加・離脱は比較的活発に行われている印象があり、非常に良い雰囲気と流動性を感じています。

定例ミーティング

SmartHR UI の開発にあたって、以下の定例ミーティングを実施しています。

  • SmartHR UI 定例&リファインメント (60 分/週)

この定例ミーティングはランチタイムに設定され、コアメンバーが参加しやすいように配慮されています。定例ミーティングの中では、各チケットの進捗確認、課題の共有、リファインメント等を行っております。「振り返り」は、枠を取って振り返るということは実施していませんが、定例の中で出てきた課題意識や問題に対して改善策を話し合ったり、方針を決めたりしています。

リリース作業

リリース作業は、以前のこちらの記事でご紹介した通りGithub Actionsを用いて自動化されています。リリースの頻度は週1回程度で、コアメンバーが持ち回りで担当しています。また、毎週の定例ミーティングの中で次のリリース担当者を確認しています。

SmartHRでは、プロダクト横断の定例会(通称:テック定例)を毎週開催しており、ここでリリース作業者がSmartHR UIの変更内容を共有します。Breaking Changeがある場合は、対応方法を含めて社内でアナウンスします。

最近の課題感

最近、コアメンバーの定例ミーティングで取り上げられた課題の一つは、SmartHR UIの最新バージョンに追いつけていないプロダクトが増えていることです。 SmartHRで SmartHR UIを頻繁にアップデートしていくことで、プロダクト群全体の「利益(開発生産性)」に繋がると考え、新機能の追加やバグ修正が日々行っています。そうした改善内容を、利用側のプロダクトに取り組んでもらうために、各チームのフロントエンドエンジニアを信じる気持ちでアップデートを行っています。ですが、利用側のプロダクトが最新状態に追いつくのが難しくなっているのが現状で、この問題の改善を試みています。まずは、原因の解像度を上げたり、ハンズオンでお手伝いしたりするため、バージョンアップが滞っているチームをコアメンバーが支援する施策を始めています。
(古参コアメンバーであるatsushimさんがSlackで呼びかけてくれました。)

Slackのキャプチャ画像:「共有です。本日のフロントエンドMTGでも話したんですが、SmartHR UIの更新が滞っているチーム、困っていませんか? @group-smarthrui-core にメンション貰えればヘルプに伺いますよ〜 という感じです。 お気軽にご連絡ください〜」
SmartHR UIのバージョンアップを支援する旨をSlackでアナウンス

その他の動き

今年はstyled-componentsからの脱却が一つの大きなテーマで、 Tailwind CSS化をチーム一丸となって鋭意進めております。 詳細はブログ記事で出る予定なので、続報を楽しみにお待ち下さい。

SmartHR UIに貢献したい理由

さて、SmartHR UIに関する最新の内容をご紹介できたので、ここからは少しだけ私の個人的な話にお付き合いいただけると嬉しいです! 私は2023年8月にSmartHRに入社した後、すぐにSmartHR UIのコアメンバーとしての参加を希望しました。 私がSmartHR UIに深く関わりたいと思った理由は以下の通りです。

アクセシビリティへの取り組み

恥ずかしながら、SmartHRに入社する前までの開発経験ではアクセシビリティを意識した開発を十分に行えていませんでした。SmartHR UIではアクセシビリティを重要視しており、実践を通じてアクセシブルなUI作りを学びたいと考えています。

SmartHRプロダクト全体への貢献

これまでの経験では、主に特定の一つのプロダクトに割り当てられ、そのプロダクトへの貢献にのみ焦点を当ててきました。しかし、SmartHR UIに関わることで、SmartHRが提供するさまざまなプロダクトに対して影響を与えることができます。この広範囲にわたる貢献を通じ、SmartHRのプロダクト群全体を成長させることで、well-workingな社会の実現を加速させられると信じています。

オープンソースソフトウェア(OSS)の開発・運営経験

OSSに関しては何度か貢献したことがありましたが、自分自身がコアのメンバーとなって運営する経験はありませんでした。業務時間を使いながら、OSSの開発や運営にも携われるというSmartHRならではの、とても稀有な機会だと思って取り組んでいます。

SmartHR UIへの貢献を自分のミッションに

SmartHRでは、SmartHR UIに関わることを自分のミッションとして目標設定することが可能です。これは、有志のメンバーが主体的にプロジェクトに関わることを奨励する素晴らしい仕組みだなと思っています。
しかし、それと同時に担当しているメインのプロダクト業務とのバランスを取る難しさも感じています。時期によっては、どちらかへの貢献に偏ってしまうこともありますし、担当プロダクトへの貢献が他のメンバーよりも少なく見えてしまうこともあります。だからこそ、周囲のメンバーに対して、自分自身のミッション内容やその進捗状況の共有を積極的に行っていくことが大事なのだろうなと思います。

おわりに

いかがだったでしょうか?
2023年12月時点のSmartHR UIの現在地を紹介するとともに、私のSmartHR UIに対する思いをお話させていただきました。

SmartHR UIに関する記事が最後に執筆されてから1年くらい経ちましたが、2023年もしっかり成長している姿を感じていただけていれば幸いです。
2024年はもっと色んな発信やご報告が出来るように皆で活動してまいりますので、応援よろしくお願いします!

恒例の”We are hiring !!”の時間です。 SmartHR UI 含めて、SmartHR のプロダクトを一緒に開発してくれるフロントエンドエンジニアを絶賛募集中してます!
※もちろんフロントエンドエンジニア以外も募集しております!ぜひ募集中のポジション一覧をご覧ください。
https://hello-world.smarthr.co.jp/

*1:export しているコンポーネントの数をカウント。単体ではあまり意味を成さないコンポーネントは除外

*2:cloc コマンドで計測。空行やコメントを除いた数値

*3:bot によるライブラリのアップデートを含む

*4:bot を含む