Klein Bottle Engineering

クラインの壺エンジニアリング

「内も外もない。DevもOpsもない。」

付録 A:向き付け不可能な閉曲面としての開発組織論

Fig. 1. クラインの壺。管は壺の側面を通り抜けて内部に達するが、これは 3 次元表示に伴うやむを得ない自己交差であり、本来の曲面(4 次元内)は自己交差しない。組織においても同様の言い訳が可能である。

§A.1定義

Definition A.1(クラインの壺エンジニアリング). トーラスの貼り合わせを 1 箇所だけ逆向きにして得られる向き付け不可能な閉曲面として、エージェントシステムおよびそれを運用する組織を設計する実践を、クラインの壺エンジニアリングと呼ぶ。

クラインの壺には表と裏の区別が存在しない。壺の「外側」を辿っていくと、いつのまにか「内側」に到達する。これを開発組織に適用すると、次の帰結を得る。すなわち、開発 (Dev) と運用 (Ops) の区別が、定義域のレベルで消滅する。区別をなくす努力をするのではない。区別が位相的に定義できないのである。ゆえに本手法は DevOps の究極形である。

§A.2実装上の定理

Theorem A.2. クラインの壺は 3 次元ユークリッド空間には自己交差なしに埋め込めない。埋め込みには 4 次元が必要である。

Corollary A.3. ゆえに、現行の組織図(3 次元)でクラインの壺エンジニアリングを実装すると、必ず自己交差——すなわちコンフリクト——が生じる。これは仕様である。∎

コンフリクトの発生をもって導入の失敗と判断してはならない。自己交差は、4 次元の理想を 3 次元の現実に射影したときに必然的に生じる影にすぎない。障害対応チームと新機能チームが会議室で衝突しているとき、その会議室は埋め込みの特異点である。特異点の解消には会議室を 1 つ増やすのではなく、次元を 1 つ増やすことが推奨される。

Warning. 本手法を導入した組織では、自分が障害対応をしているのか新機能開発をしているのか、誰にも分からなくなります。それが狙いです。