SmartHR Tech Blog

SmartHR 開発者ブログ

プラン選択を柔軟に! 課金基盤チームの挑戦

こんにちは! 課金基盤チームです。 今回は、SmartHRのプロダクト基盤開発本部内で、課金・プランによる機能制御を担当している課金基盤チームの紹介と今取り組んでいる課題について書きます。

課金基盤チームの紹介

課金基盤チームでは、

  • プランによって利用可能なSmartHRの機能を制御する
  • 企業アカウントごとの課金対象人数を決定する
  • 支払い明細や領収書を表示する

といった、SmartHRの課金の仕組みに関わることを主に受け持っています。

チームは、プロダクトエンジニア(5名)・PM1名・QAエンジニア1名で構成されています。

チームの歴史

課金基盤チームの誕生の経緯について紹介します

プロダクト基盤チーム時代

プロダクトを横断する課題に取り組むべく、2023年にプロダクト基盤チームが組成されました。その後、課金に関する課題もプロダクト基盤チームで対応することになりました。当時のプロダクト基盤チームは他にも複数のミッションを持っていました。

課金基盤チームの誕生

2024年1月にプロダクト基盤を拡張する方針が示され、「権限基盤」「プロダクト連携」「従業員データ基盤」とともに「課金基盤」を受け持つチームが誕生しました。課金基盤チームは元々、プロダクトエンジニア2名・PM1名という小規模なチームでした。 その後、チームは徐々に拡大し、現在は前述の7名体制のチーム構成となっています。

これまでに取り組んだこと

課金に関わる課題は幅広く、私たちが取り組んだことは数多くあります。 ここではその一部をご紹介します。

プロダクト追加の際のコスト低減

SmartHRではこれまでもプロダクトの追加は行われていましたが、新しいプロダクトに対する制御の仕組みが整っていませんでした。プロダクト制御関連のコードは複雑に絡み合っており、また変更の際の影響が大きいため、新規プロダクトを開発するチームにとって大きな負担となっていました。

この課題に対して、既存コードのリファクタリングを進めるとともに、プロダクト追加の手順化や自動生成ツールを導入しました。

結果として、プロダクトの追加は安全かつ容易になり、「マルチプロダクトを当たり前にする」という目標に一歩近づけることができました。

請求業務の自動化の支援

SmartHRの請求業務では、内製のサブスクリプション管理アプリケーション(以下、内製サブスクリプション管理アプリ)とサブスクリプション管理SaaSであるZuoraを併用してしており、手作業による設定作業が多く発生していました。契約更新の関係で月初に業務が集中するため、手作業だとどうしても負荷が高くなってしまいます。

そこで、請求業務の自動化を推進することになり、内製サブスクリプション管理アプリ側のAPIを開発しました。APIを用いたシステム間連携により業務の一部が自動化され、請求業務を安全に実行できるようになりました。結果として、社内における労働環境の改善につなげることができました。 業務の効率化はSmartHRが掲げる「well-working」に通じるところであり、これに貢献できることは非常にやりがいがあることだと感じています。

今取り組んでいる課題

私たちが現在取り組んでいる雇用形態別課金プロジェクトについて紹介します。

課金の仕組みについて現状の課題

前提として、現在のSmartHRの課金の仕組みについて説明します。

SmartHRでは企業アカウントごとにプランを選択して利用してもらっています。プランには労務領域のプロダクトのみ利用できる「人事・労務エッセンシャルプラン」、タレントマネジメントのプロダクトも利用できる「HRストラテジープラン」などがあります。これらと有料オプションを組み合わせることで、各企業アカウントごとに必要なプロダクトが利用できるようになっています。利用金額はプランと有料オプション、企業アカウントに登録されている従業員数から算出されます。

しかし、SmartHRを利用するお客様が拡大する中で、新たな問題が見えてきました。 利用しているお客様から、正社員にのみタレントマネジメントの機能を使わせたいといった要望が出てきたのです。必要な機能を必要な従業員にのみ提供したいという要望に、現状のSmartHRは応えることができません。これは、新規契約の獲得や上位プランへの切り替えにおいて大きな障壁となっています。

雇用形態別課金プロジェクトで何が変わるのか

そこで動き出したのが雇用形態別課金プロジェクトです。

雇用形態別課金プロジェクトでは1企業アカウントで複数のプランを契約できるようにします。複数のプランを契約した企業アカウントの管理者は、雇用形態(正社員・契約社員など)ごとにそれぞれのプランを割り当てます。 たとえば正社員はHRストラテジープラン、契約社員・アルバイトについては人事・労務エッセンシャルプランを利用するといったことができるようになります。結果的に、お客様に対してより柔軟にプランを提案し、利用してもらうことに繋がります。

やりがい

やりがいとしては、難しい課題にチャレンジできるという点があると思います。

前述した雇用形態別課金プロジェクトでは、「1企業アカウント1プラン」という前提で制御されていたさまざまな機能を再構築する必要があります。これまで密結合されていた機能制御を解きほぐし、1企業アカウントで複数のプランを契約できるようにするため、内製サブスクリプション管理アプリや本体機能、各種API、認証、他プロダクトなど、あらゆる領域に変更を加える必要があります。また、現在の挙動を担保し、パフォーマンスが劣化しないように気をつける必要もあります。

こういった複雑で難しい課題に取り組んでいくことは大変ですが、チームで相談しながら一つずつ解決していくようにしています。アイディアを出し合いながら課題に取り組んでいくのはエンジニアとしてやりがいのある経験だと思っています。

We are hiring!!

SmartHRでは一緒にSmartHRを作りあげていく仲間を募集中です! 少しでも興味を持っていただけたら、カジュアル面談でざっくばらんにお話ししましょう!

hello-world.smarthr.co.jp