LayerX エンジニアブログ

LayerX の エンジニアブログです。

組織図に対するさまざまな要求と現在地

こんにちはまたはこんばんは、バクラク事業部 Platform Engineering 部でID基盤などを管理するチームに所属してあれこれやっている id:convto といいます。

認可などに関連することからバクラクでも「組織図」と表現されるリソースを弊チームで管理しているのですが、今回はその組織図についてお話しします。

この記事で取り扱う組織図リソースについて

この記事で「組織図」と表現されるものは、組織の階層をあらわす木構造と、それぞれのチームの従業員所属情報などを管理するリソース全体を指します。

よくある例を簡易的な図で示します。

組織図の例

各社に合わせた情報統制を実現しようとしたとき、組織図は重要な情報です。この組織図をベースにたとえば「あるチームに所属していたらある申請を承認可能にしたい」や、「上位部門に所属している場合はそれ以下のチームに関連するリソースを閲覧可能にしたい」など、業務に関わる認可を設定していくことで、各社の情報統制に準拠したワークフローなどがシステムで実現できます。

なぜ組織図にさまざまな要求があるのか

バクラクシリーズでは複数プロダクトを展開していますが、一度組織図を設定すれば全てのプロダクトで利用できるようになっています。これにより、再設定の手間なくシリーズ間で一貫した情報統制など行うことが可能になっています。

組織図情報が様々なプロダクトから利用される図

シリーズ利用にあたって複数回組織図情報を登録するのは大きい労力がかかるため、この設定が一度で済むことはお客様業務にとって非常に重要な点だと考えています。

しかしその実現にあたって難しい点として、業務領域を跨った複数プロダクトから組織図が利用されることがあります。

そのとき組織図に対する要求として、一般的な要求もあれば、プロダクトの業務領域固有のような要求もあります。業務領域の拡大に伴い新たな要求が生まれることもあります。

このような理由で、バクラク組織図はさまざまな要求を抱えています。これらにうまく回答しつつ、お客様業務をよりスムーズにしていくのが組織図に関する機能開発の面白いと思っている部分です!

組織図へのさまざまな要求

ここから本題です。

先述のように組織図は、組織に合わせた情報統制をシステム上で実現するための重要なリソースです。
しかし、各社の運用や組織図を利用する業務範囲によっては、なにかと複雑な要件が出てきたりします。そこで今回は、組織図に関連するよくある要求と、それに対するバクラクの現在地をご紹介できればと思います!

基本的な要求(組織図を階層ふくめ表現できる必要がある、部門の以上/以下などの問い合わせができる、など)についてはここでは扱いません。業務をやりやすくするための、いわばより発展的な要求についてご紹介しつつ、バクラクでどのように対応しているか、また検討しているかなどご紹介します。

プロビジョニング/メンテナンスを簡単にしたい

要求の概要
組織情報をシステムに取り込むのは、かなりの労力を必要とします。
たとえばチーム数100/従業員数500人くらいの規模を例に考えると、システム導入直後は取り込みがかなり大変ですし、メンテナンスも手動で行うのはコストがかかります。

外部ソースと情報を連携すると解決できそうですが、これにも課題があります。具体的には、サービスによっては兼務が表現できなかったり、そもそも企業運用として従業員や組織構造についての SSoT 的な整理された情報がない場合も多かったりします。

このあたりは組織図情報のプロビジョニング/メンテナンスにとって大きい課題となっています。

バクラクの現状: 部分的にできている
バクラクでは GUI, CSV, 外部API などによるチーム連携をサポートしています。
これにより一定の業務負荷削減や自動化を実現できています。

今後はより踏み込んで SCIM や SAML での情報連携も検討していきたいと考えています。
たとえば Zoom などは SAML で取得できる情報について、Zoom 上のリソースとのマッピングを自由に行える機能などを提供しています。これにより SAML 連携の際によりきめ細やかな情報の同期ができるようになっています。

support.zoom.com

ただ先述の通り IdP によってはそもそも組織構造を管理していなかったり、兼務を表現できなかったり、そもそも IdP が SSoT になっていないケースもあります。

これらの課題から、ただ作っただけでは多くのユーザーが利用できない機能となり、管理者の組織図メンテナンス負荷が特に減らない、といったことになってしまうかもしれません。しっかり業務負荷を軽減できるものが作れるよう、お客様の業務理解に努めながら機能検討しています。

負担すくなく、かついまより運用が簡単になるような機能開発の余地はまだまだあり、頑張っていきたいですね!

組織図を予約したい

要求の概要
組織構造の大きい変更などがある際に、事前に変更内容を予約したい、といった要求です。

たとえば4月1日付で大規模な組織変更がある例を考えてみます。
もちろん組織図リソースは情報統制などに利用しているので、3月31日までは現行の組織体制を表現している必要があります。4月1日から新しい組織体制に切り替わってほしいです。

このとき、とくにシステムなどのサポートがない状態で素直に組織体制変更を実現しようとすると「3/31日に従業員の業務が終了してから4月1日の業務開始までに、管理メンバーが頑張ってシステムに組織変更を適用させる」のような業務が発生することがままあります。

これは作業負担が大きいですし、作業時間が限られることから十分なピアレビューなども行いにくく、リスクが高い業務となってしまいます。

組織図情報は情報統制で利用される重要なものなので、コストがかかったりリスクが高かったりする状況は避けたいですよね。組織図の予約ができるとこの課題が解消します。

バクラクではこの組織図予約に対応しており、以下のプレスリリースも出しています。

bakuraku.jp

「組織図の予約」とひとことに言っても、整理するといくつかの要求が組み合わさっていることがわかります

  • 組織図を予約できる
  • 予約中に独立して現行組織図の編集ができる
  • 予約中に独立して予約中組織図の編集ができる
  • 予約したタイミングになったら組織図が自動で切り替わる
  • 古い組織図で出した申請情報などが、当時の情報のまま閲覧できる

これらにうまく応える必要がありそうです。

バクラクの現状: できている
これらを実現するために、予約を作ったタイミングで現行の組織図のコピーを作り、それを予約組織図として独立した世代の異なる組織図として内部で保持するような作りで実現しています。

冒頭の組織図の説明と同様に簡易的な図で説明すると、組織図構造が世代の数だけ存在するようなイメージです。

世代ごとに管理された組織図

なお現状のバクラクでは「現行組織図」と「過去の組織図」を同じデータベースで取り扱っていますが、過去の組織図は編集不能で参照のみ許可としているため、ワークロードに合わせてデータ保存先を最適化するなどさらなる整理の余地もあったりします。

当時の組織図を知りたい

要求の概要
業務領域によっては、たとえば「一年前の今日、ある従業員の所属チームがなんだったか」を厳密に知りたいケースがあります。
これはすこし難しい要求で、ようは組織図について特定の timestamp を与えられたら、当時の状態を完全に再現できる必要がある、ということです。

組織図予約のときは期の切替など、組織図を予約する単位で独立して情報を保持する必要がありましたが、今度は全ての操作について履歴のようなものを覚えておく必要があり、より高い要求です。

バクラクの現状: 必要になりそう
いまのところバクラクではまだこの要求はありません。そのため対応もしていません。
しかし、今後HRM領域などに進出するにあたって必要になる可能性が高いです。

ここについてはいくつかの整理を考えていて、たとえば今の組織図の延長で世代をより細かに分けるだったり、それだと組織図のコピーを取りすぎるのでより発展させて差分だけとる方法を検討してたり、いろいろ考えています。

このあたり興味ある方/詳しい方いらっしゃったらぜひお話したいです!

さいごに

組織図というリソースの必要性、そして発展的な要求について紹介しました。
バクラクでは、すでにケアできている部分とまだまだこれからな部分があります。
日々ひーこら言いながらこのあたりの課題に取り組んでおりまして、ほかに悩んでいる方の参考になればとおもい記事を書かせていただきました。

このあたり詳しい方いましたらぜひお話しなどさせてください!

jobs.layerx.co.jp

あとは定番ですが、絶賛採用募集中ですので、ご興味ある方はぜひこちらもご確認いただけると嬉しいです!

open.talentio.com

最後に番宣も挟ませてください。4/23にイベント参加予定でして、同じく弊チームで管理してるID基盤まわりのお話をします!ご興味あればぜひご参加ください!

そのID管理、サービス増えても大丈夫?LayerX/kubellに聞く 後から後悔しないID基盤設計 - connpass

ではまた〜