ビズリーチは新規事業でなぜKotlinを選んだのか

大谷弘喜氏:大谷です、よろしくお願いします。今日は「ビズリーチは新規事業でなぜKotlinを選んだのか」ということについて、技術選定でどういうことを考えて選定してきたのかということを中心にお話したいと思っています。

それでは始めます。アジェンダですが、最初にいつもどおり自己紹介して、そのあとHRMOSとは何かについてお話します。そのあとに、技術選定についてどのようなことを考えてきたのかをお話ししていきたいと思っています。

2001年に昔の同僚たちと一緒にアリエルネットワークという会社を作っています。

最初はP2Pのグループウェアを作ってました。P2Pのグループウェアというのは簡単に言ってしまえば、分散技術を使ってデータを同期しながらグループウェアの機能を提供していくもので、現在、WebRTCで利用されているSTUNなどの「ファイアウォールをどう越えればいいのか」といった技術も開発されていた頃ですね。

そのあと2013年ぐらいに仕事では全くPythonは使ってないのですが、『パーフェクトPython』という本を書いたりしてます。

パーフェクトPython

そしてちょうど今から2年前の2月にビズリーチに入社しました。

「HRMOSを作ってみよう」という感じで入っています。ビズリーチという会社にはすこしおもしろいところがあります。HRMOSは新規事業なんですが、ビズリーチの新規事業は既存の事業とはまったく別のインキュベーションカンパニーという組織体を作り、開発も本社から離れた新規事業だけの場所で行っています。なので新規事業に集中できる環境になっています。

HRMOSとは?

ということでHRMOSを作るためにビズリーチに入ったのですが、HRMOSとはどのようなものなのかを簡単にご紹介します。

これがHRMOSの全体像です。HRMOS自体は4年前にリリースされています。左上の01と書いている採用管理の部分が最初にリリースされたもので、02のパフォーマンスマネジメントは今年の春リリースされる予定になっています。

HRMOS自体はいくつかのモジュールで構成されています。採用の段階から入社したあとにパフォーマンスを測りつつ評価をしていく、そして将来的には、最後にエンゲージメントを上げていくというシステムを構想しています。

評価管理の結果をもともとの採用管理に戻すことで、採用後のパフォーマンスがどうだったのか、採用の仕組みは本当にそれでよかったのかというPDCAのサイクルを回せるようになっています。

HRMOSはいくつかのモジュールで構成されています。そのデータをつなぐようなデータハブが、真ん中にある従業員のデータベース、HRMOS Coreと呼ばれている部分です。このHRMOS Coreは先月リリースされました。今日はこのHRMOS Coreを中心にお話していきます。

HRMOS Coreの概要

HRMOS Coreとは何かというと、基本的には一番左に書いてある、人材(従業員)のデータベースです。

人にまつわるすべてのデータをこのデータベースの中に登録していきます。登録されるデータ自体は、HRMOS Coreの中で定義されているスキーマだけでなく、ユーザー自身が自由に定義して好きなデータを取り込むことができるようになっています。

それらのデータは従業員や人事がアクセスするだけでなく、すべてのデータに対してWebAPIからデータを入出力することが可能になっています。

こちらにはリクルーティングやパフォーマンスマネジメントというモジュールがありますが、それらはすべてWeb APIを通してHRMOS Coreと連携して、お互いのデータをやり取りします。

「高いセキュリティ」ということで、HRMOS Coreの中にはいろいろなデータを取り込むことができますが、そうしたデータはすべてアクセス権限で制御されています。フィールド単位でアクセスが制御されているので、Web APIからだろうが従業員からだろうがACLから逃れることはできず、見れる情報と見れない情報が厳密に管理されます。

「単純業務の自動化」ということで、このあたりは最近で言えばRPA、Robotic Process Automationと呼ばれてるようなものです。会社の中の様々なものは、人の情報を起点に処理が行われています。具体的に言えば、例えば入社の日に各種アカウントを発行したり、最終出社日の翌日にいろいろなアカウントを停止していくとか、そうした作業が日々膨大に溜まっていっています。そうしたものをすべて自動化していく仕組みを提供しようとしています。

従来のビズリーチの人事業務フロー

これがCoreを導入する前の、ビズリーチの中の人事業務のフローです。真ん中に旧システムがあり、そこに今まで人の情報が貯めこまれていました。パッと見て複雑そうに見えます……まぁ複雑なんですが(笑)。それぞれ人の顔があるところが、人が介在して何かやってるところを示しています。

人が何をやってるのかを分析すると、結局のところ、2つのことしかやっていません。データのバリデーションと、データ変換です。バリデーションとデータ変換ならばシステムでできるのではないか、というあたりから始まっています。

社内で旧システムをHRMOS Coreに置き換えました。旧システムのちょうど右側にいる人事企画があります。コーポITと書いているのはIT総務(情報システム部門)のことです。IT総務の人がさまざまな部署用に、同じデータをいろんな必要なデータだけに加工して渡すという処理が行われていました。1つ1つはそれほど大変な作業ではありませんが、それが積み重なるとかなり工数がかかります。

最初にHRMOS Coreを導入して取り組んだのは、人事の人の作業をなくすということです。採用やIT総務は直接HRMOS Coreを触ってデータを引き出すことで、今までやっていた無駄な作業がぱったりなくなりました。

その後は、HRMOS Coreの左側にある人事企画や人事労務を簡略化できないかということで作業を行っています。ビズリーチの社内では、先ほどお話した採用管理システムを使っていましたが、内定者が出ると、そこから採用担当が人事に連絡して、人事は内定者からデータを取得して、それをHRMOS Core上のデータを変換していました。

身上変更についても人事労務にデータがやって来たあと、社労士さんや行政機関に届け出ると同時に、人事企画に連絡するという苦労がありました。(スライドを指して)人事企画と人事労務では矢印が双方向になっていますが、データを人事労務から人事企画に流すだけでなく、その反対の方向でもやり取りを行っています。どういうことかというと、マスターデータが複数存在するという状況になっていました。

先ほど、業務の大半がバリデーションとデータ変換だとお話ししましたが、マスターデータが複数あることで、どれがマスターなのかがわかりませんでした。それを人の手でがんばって整合性取ろうとしていた、というのが少し前までの状況です。

そんな状況はビズリーチ固有のものではなく、聞いたところによると、いろいろな会社でも同じような問題が発生しているようです。

やったあとの状況はこんな感じで、かなり見やすくなったと思います。

HRMOS採用管理で入社が確定した人については、すぐにAPIの連携でHRMOS Coreに直接データが作られます。データが作られると、入社の1週間前や2週間前など、適切なタイミングで内定者に自動でメールが飛び、内定者はそのメールを見てHRMOS Coreに直接データを入力する、というフローになっています。

人事労務も直接HRMOS Coreにデータを登録することで、人事企画の間とのデータのやり取りが発生しなくなりました。これが現状のビズリーチのフローです。

今後の方向性

実は少し先の未来のイメージもあります。

現在作業している最中ですが、IT総務をはじめ、さまざまな部署がID管理を手でデータに変換してやってる状況です。次の段階では、それらを自動化して、完全に人手を介さずに自動で行えるシステムを目指しています。

そして、これが最終形態です。先ほどの図の一般社員のところの左上で人が介在してたのは、ワークフローでの承認についてでした。そのあたりも、結局はバリデーションさえしっかりやれば、人手を介さずに済みます。一般社員が直接データを書き換えられるようになります。そして、行政機関に直接Coreからデータを吸い出して出力できるようになれば、社労士さんにお願いする範囲も見直せるだろう、という未来を想定しています。