本文へスキップ
lurno
記事一覧
ブログ

サブ組織、ブランチ、グループ — それぞれが必要になるとき

サブ組織は子テナント。ブランチはロールが下へ継承される内部のツリー。グループは人が受講登録される単位。使い分けの指針。

The Lurno teamAugmental1 分で読めます

サブ組織とは、別の組織の中に入れ子になった、完全な子組織です。独自の人員、プログラム、ロール、ブランディング、ドメインを持ちます。ブランチとは、一つの組織の中にあるツリーで — キャンパス、部門、地域 — あるブランチで付与されたロールは、その下すべてに適用されます。グループとは、人が実際に受講登録されるコホート、クラス、チームのことです。ほとんどのプラットフォームは、この三つのうち一つか二つを同じ言葉で売っています。そしてほとんどの買い手は、三つを区別しないまま、すべてを求めます。

三つは択一ではありません。うまく動いている構成は、三つすべてを違う高さで同時に使っています。境界にはサブ組織、スコープにはブランチ、受講登録にはグループ。構造の一部を間違った高さに置いても致命的ではありませんが、やり直すコストは高くつきます。気づいたときには、そこから移したい人々に、すでに履歴が紐づいているからです。

  • サブ組織 — 構造のこの部分は、独自のブランド、独自のドメイン、独自の管理者、あるいは誰かのセキュリティ審査における独自の境界を必要としますか。ならばそれはサブ組織です。
  • ブランチ — この部分は、組織の一部分を誰かに任せるために存在していますか。ならばそれはブランチです。
  • グループ — この部分は、ある人々の集まりが、決まった期間のあいだ、一緒に受講登録され、教えられ、採点されるために存在していますか。ならばそれはグループです。

順番には意味があります。サブ組織はもっとも重い答えであり、もっとも元に戻しにくいので、正当化を求められるべきものです。グループはもっとも軽く、要件定義書で求められるものの驚くほど多くが、大げさな名前のついたグループだと判明します。

ORGANISATION  Northwind Academy               one tenant, one contract
 SUB-ORG      Acme Corp                       own domain, own admins, own boundary
  BRANCH      EMEA                            a role granted here reaches all below
   BRANCH     Dubai office
    GROUP     Compliance intake, September     40 people, one programme, two dates

上から下へ読むと、各層は別々の問いに答えています。誰が誰から分離されているか。誰が何に責任を負うか。いま誰が、これを一緒に学んでいるか。

サブ組織:明け渡せる境界

サブ組織モデルでは、組織が第一級のレコードであり、組織は親を持てます。ブランディング、ドメイン、ユーザー、ロール、コンテンツ、受講登録、レポートは、すべてそこにぶら下がります。親は子の中を見られますが、子は上も横も見られません。入れ子は、実際の構造の深さのぶんだけ続きます — 学校グループ、各学校、そして一部の運営法人ではグループの上にさらに連合体があります。

マルチテナンシー

一つのプラットフォームのインストールが多数の組織にサービスを提供し、各組織には自分の人員、コンテンツ、ブランディング、レポートだけが見える状態。サブ組織とは、これを一顧客の内側に適用したものです。独自の境界を持つ子テナントが、その中を見られる親の下にぶら下がります。判定基準は、テナントごとに違うロゴが出せるかどうかではありません。その分離が誤操作に耐えるかどうかです — フィルターなしで書かれた新しいエクスポートのエンドポイントは、他人の学習者ではなく、何も返さないべきです。

最後の点は、どのベンダーに対しても — 私たちに対しても — 突き詰める価値があります。テナントが行の1列にすぎないなら、分離とは、アプリケーションのコードが忘れずに絞り込んだ範囲でしかなく、次の機能がリリースされるまでしか保ちません。ルールがデータベースにあるなら、フィルターが抜けたクエリは何も返しません。

サブ組織の重さは本物です。一つひとつを個別に設定します。ブランディング、ドメインとその証明書、管理者、ロール、保持期間と同意の設定。その代わりに、明け渡せるものが手に入ります。サブ組織には、あなた以外の所有者がいます。そして解約時の作業は、ユーザー、グループ、コース、レポートの — 漏れがないことを誰かが願うだけの — チェックリストではなく、削除する部分木になります。

サブ組織とブランチの違いは何ですか

サブ組織はデータを分離します。独自のユーザー、ブランディング、ドメイン、管理者、レポートを持ち、兄弟との間に境界を持つ入れ子の組織です。ブランチは到達範囲を形づくります。一つの組織の中のツリーにあるノードで、別のブランディングやドメインは持たず、そのノードで付与されたロールがその下すべてに適用されるために存在します。決め手となる問いは、構造のこの部分が、あなたの管理の外にいる誰かに運営される可能性があるかどうかです。あるならサブ組織です。自社の組織図の上の内部的な形にとどまるならブランチです。

ブランチ:付与がどこで止まるか

ブランチは、一つの組織の中にある運営上のノードです。キャンパス、部門、学部、地域、配信拠点、コストセンター、フランチャイズエリア — 自社の組織図に実際に書いてあるもの、何でも。ブランチは組織のブランド、ドメイン、ユーザー、コンテンツライブラリを共有します。ブランチが持つのはスコープです。

継承こそが要点です。EMEA のブランチで誰かにロールを与えれば、それは EMEA とその下すべてを — 今日も、オフィスをあと二つ開いたあとも — 覆います。継承するツリーがなければ、同じ人にノードごとの付与が必要になり、付与はその理由よりも長く生き残ります。ドバイのオフィスが閉じたときに、ドバイの付与を取り消すことを誰も覚えていません。一覧を持っている人がいないからです。

Lurno

地域はツリーの中のノードです。だから地域マネージャーは、来年開くキャンパスをすでに覆っている1件の付与です。

Not this

地域が命名規則で、地域マネージャーが9件の付与と、そのうちどれがまだ有効であるべきかを追うスプレッドシートである、ということではありません。

ブランチのツリーが壊れるのは深さです。ツリーが写し取るべきは組織図であって、時間割ではありません。階層を一つ増やすたびに、人が加わるたびの判断が一つ増えます。マネージャーが一人しかいない五階層のツリーは、読み手のいない管理作業です。ある階層で誰にもロールが付与されることがないなら、その階層はブランチではなく、レポートのフィルターです。

グループ:人が受講登録される単位

グループとは、何かを一緒に学ぶ人々の集まりです。4B クラス。9月のコンプライアンス受講者。新卒のコホート。発売前に新製品研修を受けるプロジェクトチーム。グループには、変化するメンバーと、たいていは紐づいたプログラムと、終わりがあります。

出入りが起きる場所はグループです。それが、グループを他の二つと分けておく理由です。メンバーは毎週変わります。遅れて加わる人がいて、異動する人がいて、次の期でモジュールをやり直す人がいます。そのどれも、ある人の権限を書き換えたり、その人を組織間で移動させたりするべきではありません。学習者をグループ間で移すのは小さな行為ですが、学習者をサブ組織間で移すのは移行作業です。

グループで、誰が何を見られるかを制御できますか

そうすべきではありませんし、それを許すシステムは、管理者に悪い習慣を教えます。グループが答える問いは一つです。いま誰が、これを一緒に学んでいるか。権限はロールから来るもので、組織かブランチで付与されます。グループを権限の担い手として使うと、二つの失敗が続きます。レポートを見せるために、在籍していないクラスに人が追加され、そのクラスが生む修了の数字がすべて狂います。そして誰かをクラスから外すと、無関係な何かへのアクセスが静かに失われ、その原因となった変更と誰も結びつけられません。受講登録を決めるのはグループ、到達範囲を決めるのはロールです。

実例を三つ

学校グループ

学校を二つ持つ運営法人も、114 校を運営する出版社も、幅が違うだけの同じ構造です。各学校がサブ組織です。保護者が知っている名前があり、自分の教職員名簿を持つ校長がいて、たいていは独自のドメインがあり、多くの場合は独自の視察と独自の補助金契約があります。運営法人はその上にあり、下を見ることができます。

学校の内側では、学年段階や教科部門がブランチです — 理科主任は、校内のすべての理科の授業を覆う1件の付与です。クラス、ホームルーム、習熟度別のセットはグループです。

Riverside Trust                             the group
├── Riverside Primary       SUB-ORG         own domain, own head, own inspection
│   ├── Early years         BRANCH
│   └── Key stage 2         BRANCH
│       └── Class 4B        GROUP           28 pupils, one form tutor
└── Riverside High          SUB-ORG         own domain, own head
    ├── Sciences            BRANCH          head of department scoped here
    └── Humanities          BRANCH
        └── Year 10 history, set 2   GROUP

ここでの罠は学年です。運営法人全体の学年別の到達度が欲しいという人がいて、学年が組織として作られ、その結果すべての児童生徒が間違った種類の入れ物に入り、各学校のブランドとドメインの設定を学年ごとに繰り返すことになります。学年はグループの属性であり、レポートの軸です。テナントではありません。

企業内アカデミー

一つのテナントから 15 のクライアント企業向けに研修を運営する企業内アカデミーを考えます。各クライアント企業がサブ組織です。独自のドメイン、アカデミーにメールを送らずに公開もレポート取得もできる独自の管理者、独自のブランディング、そしてクライアントのセキュリティ担当が残りの 14 社について尋ねてきたときに保たれる境界を得ます。

クライアントの内側では、事業部門と地域がブランチです。クライアント自身の研修責任者にはそのすべてを覆う1件の付与が必要で、地域マネージャーにはその一部を覆う1件が必要だからです。9月の入社時研修、年次の贈収賄防止研修、リーダーシッププログラムを受ける12人 — これらはグループであり、絶えず作られては閉じられます。

ここでの罠は、案件ごとのサブ組織です。クライアントが三つのコースを契約したので組織が三つ作られ、それぞれに設定すべきブランディングと招待すべき管理者があり、やがてクライアントが三つを横断する一つのレポートを求めたときに、誰も出せません。クライアント一社にサブ組織一つ。三つのコースは三つのグループです。

研修事業者

事業者は混在した形を運営しており、このモデルが元を取るのは、まさにその混在ゆえです。事業者自身のブランドで、誰でも受講登録できる公開カタログがあります。それぞれがクライアントらしく見えるアカデミーを求める法人契約があります。固定のコホートと評価者を持ち、記録の提出を求めてくる認定機関のついた認定プログラムがあります。

Your training company                       everything below is yours to administer
├── Public catalogue        BRANCH          open enrolments, your own brand
│   └── Project management, Nov intake      GROUP
├── Acme Corp               SUB-ORG         learn.acme.com, Acme's own admins
│   ├── EMEA                BRANCH
│   └── Americas            BRANCH
└── Borden Group            SUB-ORG         training.bordengroup.com
    └── Borden Manufacturing    SUB-ORG     a subsidiary with its own brand

気づくべきことが二つ。公開カタログはサブ組織ではなくブランチです。自社のブランド、自社のドメイン、自社のスタッフであり、分離すべきものが何もないからです。そして三階層目は現実です。独自のアイデンティティを持つ子会社を抱えたクライアントは、事業者にとって普通の事例であり、1階層しかないサブアカウントのモデルが、命名規則なしには表現できない事例です。

ツリーを描く前の四つの問い

  1. 見知らぬ人のブラウザに、違うブランドと違うアドレスを表示しなければならない部分はどれですか。それがサブ組織です。
  2. 名前の分かる担当者を置く必要がある部分はどれですか。それがブランチです。
  3. 開始日と終了日がある部分はどれですか。それがグループです。
  4. レポートにフィルターが要るという理由だけで存在する部分はどれですか。それは三つのどれでもありません。

いちばん手間を省くのは四つ目の問いです。数字を特定の切り口で見たいという理由で、多くの構造が作られます。しかし構造は、フィルターを得るための、考えうるかぎり最も高くつく方法です。レポートのスコープはブランチのツリーとグループに従うべきで、逆ではありません。

キャンパスごとにサブ組織にすべきですか

境界が守るべきものを、そのキャンパスが持っている場合だけです。独自のブランドとドメイン、他のキャンパスを見るべきでない独自の管理者、あるいは独自の規制当局、視察、契約。ブランドと教職員名簿と一つの管理チームを共有するキャンパスはブランチです。実務上の違いは、誰が手を動かすかです — サブ組織は一つずつ設定しますが、ブランチは一度描けば、あとはすべてが継承します。別々の名前を持つ学校のグループは、たいてい学校ごとに一つのサブ組織になります。四つの校地を持つ一つの大学は、たいていブランチになります。

Lurno での実装

Lurno は三つすべてを別々のプリミティブとして持っています。この記事がこの長さに値するのは、そのためです。サブ組織は任意の深さで入れ子にでき、それぞれが独自のブランディングと、自動 TLS 付きの独自のカスタムドメインを持ちます — ブランディングとドメインの側はホワイトラベルにまとめています。組織の内側には、二つ目の別個のブランチのツリーがあり、ブランチで付与されたロールはその下へ継承されます。グループは受講登録のプリミティブであり、それ自体は権限を一切持ちません。

境界はアプリケーションのコードではなく Postgres で強制されています。676 のマイグレーションにわたる 868 の行レベルセキュリティポリシーがあり、フィルターを忘れたクエリは何も返しません。これは、どのベンダーに対しても確かめるべき主張です — 詳細はセキュリティのページにあります。

制約を二つ、率直に書いておきます。展開の計画の立て方が変わるからです。アカウントは招待によって作られます — セルフサービスのサインアップと決済は開発中なので、クライアント組織は自分で購入するのではなく、こちらが設定して請求する形になります。そしてパートナーサインオン(サイレント SSO)は現在利用できますが、SAML と OIDC はロードマップ上にあり、提供されていません。クライアントの情報システム部門が、従業員の認証方法をすでに決めているなら、早い段階でその話を持ち出してください。研修を再販する事業者向けの提供モデルは、研修事業者向けのページにあります。

短くまとめると

サブ組織は分離します。ブランチはスコープを与えます。グループは受講登録します。構造のある部分がどれなのか迷ったら、間違えたときに何が壊れるかを問うてください。ブランチが入るべきところに境界を置けば、繰り返しの設定と、実行できないレポートを抱えます。境界が入るべきところにブランチを置けば、誰かのセキュリティ担当との会話を抱えます。データを流し込む前にツリーを描き、一覧に載ったサブ組織を一つずつ誰かに弁護させてください。