第一次インデント紛争
| 対象領域 | ソフトウェア開発(コード整形・スタイル規約) |
|---|---|
| 発生時期 | 前後(主に第2四半期に集中) |
| 発生地域 | 、特に |
| 主要対立軸 | タブ派 vs スペース派、さらに2マス派 vs 4マス派 |
| 当事者 | 大手クラウド企業のエンジニア組織、請負開発チーム、CI運用係 |
| 特徴 | 差分(diff)監査を武器化した“整形戦” |
| 直接的きっかけ | 自動整形ツールの導入をめぐる権限争奪 |
第一次インデント紛争(だいいちインデントふんそう)は、ので、主に中のインデントをめぐって激化したとされるシリコンバレー規模の紛争である。とりわけ、タブ文字かスペース文字かの選択をめぐる対立が原因となり、多数の死傷者が出たと記録されている[1]。また、スペース派による2マス運用の台頭が従来の4マス運用陣と衝突したという説もある[2]。
概要[編集]
第一次インデント紛争は、2012年のシリコンバレーにおいて、ソースコードのインデント方式をめぐる対立が、技術的議論を超えて組織対立へと拡大した出来事として語られる[1]。
紛争の焦点は、(tab)を用いるか(space)を用いるか、という一見些細な選択であった。ところが当時、コードレビューの合否がインデント差分に強く連動しており、結果としてマージ(統合)権限の争いが生じたとされる[3]。
さらに、スペース派の内部でも「2マス運用」が勢いを増し、従来の「4マス運用」を前提にした規約運用と摩擦が起きたという。このため紛争は、単純な二項対立ではなく、整形スタイルの“系譜”同士の内戦へと転じたと記述される[2]。
当時の報告では、特定の週末における“整形停止”が連鎖し、複数のリリース列車が同時に停止したという。なお、死傷者数については資料により幅があるが、「少なくとも数十名が負傷し、数名の死者が発生した」とする記録がある[1]。
概要(選定基準と資料の扱い)[編集]
本項では「インデント紛争」と呼ばれる事件を、(1) インデント方式の変更が公式規約として提案されたこと、(2) CI(継続的インテグレーション)または自動整形によって差分評価が変動したこと、(3) 組織内に派閥(タブ派・スペース派・2マス派・4マス派等)が成立したこと、のいずれかを満たす出来事として扱う[4]。
資料は主に、当時の社内メーリングリスト「」や、コードレビュー記録を抜粋したアーカイブ、「」などの二次資料に依拠しているとされる[5]。ただし、ログの引用には編集者による脚色が混ざる可能性があり、特に“死者の人数”は報道機関ごとに異なる数が記されている[6]。
また、紛争の原因を単一の決定に還元する説明は少数派であり、一般にはツール導入、権限設計、監査ルール、採用基準、そして心理的安全性の欠如が連鎖したものと解釈されている[3]。
歴史[編集]
誕生:自動整形ツールの“権限”が火種になったとされる過程[編集]
2012年初頭、クラウド開発の現場では、コードの体裁を統一するための自動整形ツールが導入され始めたとされる。ところが、整形は単なる見た目の調整ではなく、差分(diff)とマージ可否の判定に影響するため、運用権限が政治的意味を持つようになった[3]。
当時、近郊の請負開発チーム「」では、整形結果を監査するゲートが設置されていた。監査ゲートは「インデント差分が全変更行の0.8%を超えるとレビュー停止」と定義されており、実際にある週だけで変更の0.81%が“許容を超過”したという[4]。
この閾値の小ささが、タブ派にとっては「不意打ちの排除」と見え、スペース派にとっては「品質の担保」と見えるようになった。以後、議論は「どれが正しいか」ではなく「誰のルールで測るか」へと移ったと説明される[1]。
なお、運用メモの一部では、夜間に走る整形ジョブが“人の意図を上書きする”として批判され、の名の下に監査が強化されたと記されている。ただし、この手記は後年に匿名化されており真偽には幅がある[5]。
拡大:2マス派が台頭し、4マス派との“内乱”が発生したという説[編集]
紛争の転換点として、スペース派の中から「2マス運用」が急速に普及したことが挙げられる。2マス派の中心には、横断の標準化委員会「」があるとされる[2]。
彼らは「リストとブロックの視認性」を理由に、インデントを2マスへ縮める方針を提案した。提案文には“2マス化により、同一関数内の階層深度の平均が0.93段減る”といった、やけに具体的な数値が並んでいたとされる[7]。この根拠をめぐり、4マス派側は「平均ではなく、障害発生率で語るべきだ」と反論し、会議はしばしば深夜まで延長されたと記録されている[3]。
また、4マス派が主に依拠したのは、歴史の長い社内規約「」である。同規則は、仕様変更のたびに“インデント由来のバグを追跡する”ことを求めていたため、2マス化は“追跡可能性の破壊”と受け止められたとされる[6]。
こうして、タブ派 vs スペース派の対立に加えて、2マス派 vs 4マス派の対立が重なり、複数の開発拠点でレビュー権限の引き剥がしが起きたという。結果として、CIのキューが膨張し、リリースが連鎖的に遅延したと説明される[1]。
終結:規約の勝利ではなく、“監査の疲弊”で収束したとされる経緯[編集]
終結は「勝者が決まった」形ではなく、運用の持久戦として語られることが多い。具体的には、対立派閥が互いのコミットを監査し直す“再採点”を続けた結果、最終的に監査担当者の稼働が閾値を下回ったとされる[4]。
「」の集計では、監査担当者がレビューを完了できなかった案件が累計で1,742件に達した週があり、そのうち1,231件が“インデント非一致による再提出”だったと記されている[5]。
この疲弊により、企業側は一時的に「インデント差分を無条件で許容し、仕様変更のみを合否判定する」暫定ルールへ切り替えたとされる。もっとも、暫定ルールは暫定のまま固着し、「正しさ」より「運用が回ること」を重視する文化が残ったという[3]。
ただし一方で、終結直後に整形ツールの委譲権限が特定チームへ集中し、後続の紛争(別名の“レビュー権戦争”)につながったという指摘もある[6]。
社会的影響[編集]
第一次インデント紛争は、技術者コミュニティに対し「規約は単なる好みではない」という認識を強く残したとされる。実際、以後の企業では、の基準に“形式”をどこまで含めるかがガバナンス課題として扱われるようになった[4]。
また、紛争は採用の評価軸にも波及した。面接では「あなたはタブ派ですか?スペース派ですか?」に加えて、「CIが止まったとき、あなたは何を見に行きますか?」という質問がセット化したと記録されている[7]。ここで重視されたのは、思想よりも“監査可能性”であると説明される。
さらに、非技術職側にも影響が及んだ。管理部門は、インデント変更がリリース遅延の原因になり得ることを学び、仕様計画に“整形移行期間”という概念を織り込むようになったとされる。結果として、プロジェクトマネジメントのテンプレートに「移行のためのバッファ」が増えたという指摘がある[5]。
ただし、紛争が表面化したことで、コミュニケーションはむしろ険悪になったとも言われる。一部のエンジニアは「diffの見た目が、人の仕事の価値を測る指標として扱われた」ことに衝撃を受けたと語ったとされる[1]。
批判と論争[編集]
第一次インデント紛争が“紛争”と呼ばれること自体への異論もある。批判では、死傷者の記録や街頭騒乱の描写が、後年の誇張や創作を含む可能性が指摘された[6]。
一例として、ある回顧録は「の路上で、2マス派の旗が掲げられた」と述べているが、同時期の警備記録と突合しないとされる[5]。また、死者数についても「公式発表ではゼロに近い」とする見解と、「夜間の出来事が記録から抜けた」とする見解が併存している[1]。
さらに、争点そのものが技術史の文脈から切り離されているという批判もある。すなわち、インデントの問題は本質的にはツール設計、権限設計、品質ゲートの調整不足に起因するのに、あたかも“タブかスペースか”が原因であるかのように語られる点が問題視されたとされる[3]。
とはいえ、擁護側は「些細な規則ほど、組織の摩擦を増幅させる」という経験則があると反論している。結果として、第一次インデント紛争は“原因究明”より“教訓の物語化”が先行した出来事としても扱われている[4]。
脚注[編集]
関連項目[編集]
脚注
- ^ エイダ・クロウリー『diffに支配された夜:2012年シリコンバレー整形監査の記録』ベイウィンド出版, 2013.
- ^ J. M. Hartmann「Indentation as Governance: A Case Study of the 2012 Bay Review Grid」『Journal of Software Rituals』Vol. 18 No. 4, pp. 77-119, 2014.
- ^ ミン・タナカ『二マスの誘惑:スペース派標準化運動の内部史』マーケットリズム社, 2015.
- ^ サラ・ゴールドスタイン『Continuous Integrationと人間の待機行列』北米開発会議叢書, 第3巻第2号, pp. 201-239, 2016.
- ^ ピーター・ロドリゲス「Tabs vs Spaces: Myth, Metrics, and the Diff Spiral」『Proceedings of the Unreconciled Tools Symposium』Vol. 9, pp. 1-21, 2017.
- ^ 佐伯雫『整形停止の閾値設計:レビューゲート工学入門』ワークフロー工学研究所, 2018.
- ^ F. N. Okada「The Quadrant Rule and the Memory of Standards」『International Review of Team Conventions』Vol. 22 No. 1, pp. 55-90, 2019.
- ^ 【微妙に一致しない】R. L. Whitcomb『The Real Riot of Formatting』Starlane Academic Press, 2020.
- ^ ノア・ベネット『CIキュー膨張の社会学:監査疲弊の統計』クラウド運用文化研究会, 2021.
- ^ 鵜飼正人『ガバナンスとしてのスタイル規約:2010年代の再解釈』東海テック評論社, 2022.
外部リンク
- 湾岸整形監査ログ(アーカイブ)
- ForkAndPray(投稿検索)
- クォドラント整形規則(要約ページ)
- マーケットリズム規約局(声明集)
- レビュー停止閾値計算機