🛖

ホラクラシー運用とそれを支えるグループ同期

2022/02/16に公開

Ubie Discoveryの @itkq です。
Ubie Discoveryではホラクラシー組織を採用しています。ホラクラシーの概略や採用した経緯は以下の記事を参照してください。

https://note.com/ubie/n/nd86e2a5655c0

この記事では、実際のホラクラシーの運用と工夫について紹介します。

Holaspirit

Ubie Discoveryでは、ホラクラシー運用のためHolaspiritというSaaSを利用しています。GoogleをプロバイダとしたSAML SSOを有効化しています。基本機能は以下のとおりです。

  • サークルやロールの管理
  • タスクやプロジェクトの管理
  • 会議体(タクティカルミーティング・ガバナンスミーティング)の実施と進行

Holaspiritを活用した工夫

基本機能の利用だけでなく、他に工夫している点があります。

会議体をGoogleカレンダーで設定し、サークルまたはロールメンバーを招待する

ホラクラシーでは、ロールを自由に抜けられるなど流動性が高いです。そのため、会議体の参加者をメンテナンスする管理コストがかかります。そこでHolaspiritの情報を活用し、サークルまたはロールに対応するGoogleグループを自動で同期できるようにしています。そのグループをGoogleカレンダーの予定の参加者に設定することで、管理コストを削減できています。

Googleカレンダーの予定例

サークルまたはロール全体にSlackメンションする

普段のコミュニケーションツールとして利用している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を利用している組織はかなり珍しいはずですが、参考になる部分があれば幸いです。

Ubie テックブログ

Discussion