ホラクラシー運用とそれを支えるグループ同期
Ubie Discoveryの @itkq です。
Ubie Discoveryではホラクラシー組織を採用しています。ホラクラシーの概略や採用した経緯は以下の記事を参照してください。
この記事では、実際のホラクラシーの運用と工夫について紹介します。
Holaspirit
Ubie Discoveryでは、ホラクラシー運用のためHolaspiritというSaaSを利用しています。GoogleをプロバイダとしたSAML SSOを有効化しています。基本機能は以下のとおりです。
- サークルやロールの管理
- タスクやプロジェクトの管理
- 会議体(タクティカルミーティング・ガバナンスミーティング)の実施と進行
Holaspiritを活用した工夫
基本機能の利用だけでなく、他に工夫している点があります。
会議体をGoogleカレンダーで設定し、サークルまたはロールメンバーを招待する
ホラクラシーでは、ロールを自由に抜けられるなど流動性が高いです。そのため、会議体の参加者をメンテナンスする管理コストがかかります。そこでHolaspiritの情報を活用し、サークルまたはロールに対応するGoogleグループを自動で同期できるようにしています。そのグループをGoogleカレンダーの予定の参加者に設定することで、管理コストを削減できています。
サークルまたはロール全体にSlackメンションする
普段のコミュニケーションツールとして利用しているSlackでも、ホラクラシーのサークルやロールを意識した発言が行われます。ここでも同様に、サークルまたはロールに対応するSlackユーザーグループを自動で同期できるようにしています。
Holaspiritの情報をグループに同期するシステム
先述した工夫を実装している簡単なシステムがあります。システムと呼ぶまでもないですが、TypeScriptで書いたコードをCloud Functions for Firebaseにデプロイしており、Cloud Schedulerで定期実行しています。Holaspiritの情報を、対応するGoogleグループとSlackユーザーグループへと同期しており、図にすると以下のイメージです。
1. Holaspiritから情報を取ってくる
HolaspiritにはCustom Fieldsという、サークルかロールに対して任意のフィールドを設定できる機能があります。これを使って、同期先となるグループ名を設定しておきます。グループ名は取り回しやすいように "hola-" のプレフィックスを強制しています。
その後APIを利用してサークルとロールの情報を取得します。ここで注意として、API authenticationではgrant_type: passwordしかサポートされていないため、SSOしたユーザでは認証できません。サポートに問い合わせてみると、Read-onlyで有効期限がないAPIトークンを発行してもらえたので、これを利用しています。
取ってきて構造化した情報は、Cloud Firestoreに入れています。これによりグループを更新するfunctionは独立で動作可能です。
2. グループを更新する
Holaspiritから取得した、Custom Fieldのグループ名と所属するメンバーリストを元に、各グループを更新します。ここではいい感じにSlackとGoogle workspaceのAPIを叩くだけです。Google workspaceの設定は基本的にTerraformで管理していますが、hola- プレフィックスのものはその管理外にしています。このプレフィックスを持つGoogle groupだけ操作できる権限を与えたいところですが、現状はできないようです。また、グループの更新ログを次のように流しています。
まとめ
Ubie Discoveryにおけるホラクラシーについて、運用面の工夫を紹介しました。ホラクラシーを導入しているかつHolaspiritを利用している組織はかなり珍しいはずですが、参考になる部分があれば幸いです。
Discussion