SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2026 Summer セッションレポート

AI時代にこそ重要性が増す「コードを書く以外」の仕事を、4つのTipsで紐解く──SmartHRの現場から

【16-C-7】『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選

 「コードを書くことが、エンジニアの仕事のすべてではない」。そう実感する場面が、大規模プロジェクトになるほど増えていくのではないだろうか。他チームとの認識合わせや、テスト計画の策定、ドキュメント整備、タスクの優先度調整。これらを怠れば、どれだけ綿密に設計・実装をしたとしても、プロジェクトは思うように進まない。SmartHRのプロダクトエンジニアである由利優子氏は、課金基盤のアーキテクチャを全面移行するプロジェクトのリードを務めながら、「コードを書く以外の仕事」の重要性を痛感したという。「Developers Summit 2026 Summer」で語られた、4つのTipsを紹介する。

10年を超えた「SmartHR」の課金基盤が抱えていた3つの課題

株式会社SmartHR 技術統括本部プロダクト基盤開発部 由利優子氏
株式会社SmartHR 技術統括本部プロダクト基盤開発部 由利優子氏

 「SmartHR」は2015年のサービス開始から10年以上が経過した、人事・労務・情シス業務の効率化を担うSaaSだ。テナントはプランやオプションを選択して契約し、登録人数×単価で課金される。こうした課金情報を管理しているのが、サブスクリプション管理SaaSの「Zuora」だ。SmartHRの基本機能は内製のサブスクリプション管理アプリを通じてZuoraとやり取りし、各機能へのアクセス可否を判定している。

SmartHRの課金基盤
SmartHRの課金基盤

 このアーキテクチャにはPull型の設計が採用されていた。SmartHR基本機能がプラン・オプション情報を必要とするたびにAPIを叩き、Zuoraから取得する仕組みだ。都度APIを叩くとパフォーマンスが悪化するため、21日間と長めのキャッシュを設けて対応していた。

旧アーキテクチャ図の流れ
旧アーキテクチャ図の流れ

 しかしこの設計には3つの課題があった。1つ目はキャッシュ更新の煩雑さだ。契約情報が変更されるたびにキャッシュを手動で更新しなければならず、運用の煩雑さを招いていた。2つ目は、柔軟な契約形態の提供が難しいこと。テナント単位でプランオプションを管理する構造では、同一テナント内の雇用形態ごとにプランを変えるといった要望に応えられなかった。3つ目は技術的負債の蓄積だ。10年以上にわたり改修が継ぎ足されてきた課金基盤は、新規開発の足を引っ張るリスクがあった。

 これらの課題を解決するため、Push型への移行プロジェクトが立ち上がった。新アーキテクチャではZuora側の契約情報が変更されると自動でサブスクリプション管理アプリを経由してSmartHR基本機能に連携され、DBに保存された情報を使ってアクセス判定を行う。

新アーキテクチャ移行後の流れ
新アーキテクチャ移行後の流れ

リードとは「道を作り、車を走らせる」存在

 このプロジェクトのリードを担った由利氏は、SmartHRにおけるリードの役割を2つに整理する。ひとつは「プロジェクトの不確実性を減らすこと」、もうひとつは「プロジェクト完了に向かってチームが走れる状態を作ること」だ。由利氏はそれぞれを「道を作る」「道に車を走らせる」と例える。本セッションでは主に前者、つまりプロジェクトの不確実性を減らすための取り組みとして、4つのTipsが紹介された。

【Tips1】他チームとの調整:認識のズレを埋めることが最優先

 課金基盤のアーキテクチャ移行は、2つのチームが関わる複雑なプロジェクトだ。SmartHR基本機能と内製のサブスクリプション管理アプリを担当するのは由利氏の所属する課金基盤チームだが、Zuoraを担当しているのは契約・請求管理を担当する別チームだ。後者はいわゆるビジネスサイドのチームであり、両チームの間にはコミュニケーションの機会が少なく、文化的な違いもあった。

課金基盤チームと契約・請求管理チームの役割分担
課金基盤チームと契約・請求管理チームの役割分担

 この体制が招いたのが、移行計画をめぐる大きな認識のズレだった。由利氏のチームは「ある日以降、機械的に切り替えられる」「日付もある程度自由に決められる」と考えていた。しかし契約・請求管理チームに確認してみると、請求書や見積書への影響を考えると特定日での一括切り替えは難しく、契約更新のタイミングで徐々に移行する必要があることがわかった。さらに、四半期末の運用変更はセールスやCSにも大きく影響するというフィードバックも得た。

 話し合うほど、両チームが気にしているポイントの違いが明確になった。課金基盤チームはシステム的な移行の安全性を重視していたのに対し、契約・請求管理チームは運用が今まで通り回るかを重視していた。「考えていたことにかなりズレがあったので焦りましたが、まずはこのズレを埋めることを最優先にしました」と由利氏は振り返る。

 解決策はシンプルだが効果的だった。週次で定例会議をセットし、プロジェクト専用のSlackチャンネルを作成してコミュニケーションの総量を増やした。また、移行計画をタイムラインで図示し、双方のタスクの順序と作業日程を表形式でまとめることで、「いつ何をどの順番でやるか」を両チームが見える形に落とし込んだ。

移行計画をタイムラインで整理
移行計画をタイムラインで整理

 結果として、請求書への影響を最小限に抑えつつ、新規テナントと既存テナントの区別なく徐々に移行する方針に合意できた。「他部門と協力してプロジェクトを遂行するためには、互いの考えていることを同期させることが重要です」と由利氏は語る。

次のページ
【Tips2】検証・移行計画:属性定義で「網羅すべきテスト」を設計する

この記事は参考になりましたか?

Developers Summit 2026 Summer セッションレポート連載記事一覧

もっと読む

この記事の著者

森山 咲(編集部)(モリヤマ サキ)

CodeZine編集部所属。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

井原 淳一(イハラ ジュンイチ)

 雑誌やフリーペーパー(紙媒体)Webなどで、料理、人物(インタビューやポートレート)、商品撮影をしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/29730 2026/09/30 09:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー