本邦事業会社におけるコード品質の低下は、大手テック企業のそれとは事情が異なりそう
結論として、組織の決定に個々のエンジニアが抗うことはできない。
組織の目的を達成することを前提に、現場における「不」を低減させる方策をマネジメントレイヤが主導する必要がある。
/icons/hr.icon
1. 「優秀なエンジニア」が「悪いコード」を書く理由(元記事の指摘)
Sean Goedecke氏の記事『How good engineers write bad code at big companies』 によれば、巨大テック企業でのコード品質低下は個人の能力不足ではない。
主因は、組織が「コード品質」よりも「エンジニアの流動性(Fluidity)」を優先している ことにある。
特定領域への属人化を防ぎ、経営判断でリソースを即座に再配置できる状態(Fungibility)が重視される。
「悪いコード」は事故ではなく、機動力を最大化するための経営的なトレードオフの結果である。
2. 構造が生み出す「永遠の初心者」
コードベースの寿命(10年以上)に対し、エンジニアの在籍期間(1〜2年)が短すぎる。
結果、「なぜそうなっているのか」という 文脈知識(Context Knowledge) を知る「古参(Old Hands)」が不在、または過負荷となる。
優秀なエンジニアであっても、文脈を知らないまま手探りで修正を行う「永遠の初心者」としての振る舞いを強いられる。
これが、技術的負債が構造的に積み上がり続けるメカニズムである。
3. 日本の事業会社における「無邪気さ」の正体
日本の現場も同様のコード品質問題を抱えるが、背景は少し異なる。
意図的な流動性というよりは、「構造的な学ぶ機会の欠如」 に起因するケースが多い(長年の外部委託、社内エンジニアの「何でも屋」化)。
これを「個人の学習意欲不足」と断罪してはならない。
構造的要因で機会を奪われている相手に精神論を説くのは、相手の痛みを知らずに道具を押し付ける「タコピー問題」の再生産 である。
彼らはサボっているのではなく、構造の中で最適化した結果、無邪気に(悪気なく)負債を生んでいる可能性がある。
4. 「教育」だけでは間に合わない緊急性
日本の事業会社も、終身雇用は揺らぎ、エンジニアの流動性は高まっている。
我々は今、「基礎的なエンジニアリング力の底上げ(教育)」に取り組んでいる最中だが、同時に「流動性による文脈の喪失」という波が押し寄せている。
人が育つのを待っている間に、人は辞め、文脈は失われていく。
教育だけに頼るアプローチはもはや時間的に間に合わない。「人が入れ替わり、AIがコードを書く」未来を前提とした、構造的な生存戦略が必要である。
5. 採るべき対応策:「したたかな戦略」
構造に抗い、価値を守るための3つのアプローチ。
AIを「Whyの永続化装置」にする
コードの「How(実装)」は腐るが、業務の「Why(意図・制約)」は不変である。
Web会議録画やADRをAIに蓄積し、新参者が即座に文脈を引き出せる「常にそこにいる古参」を作る。
モデリングを「地図」として使う
詳細なドキュメントを書く時間がないからこそ、抽象度の高いモデル(コンテキストマップ等)が必要になる。
精緻な設計図ではなく、全体像を見失わないための「コンパス」として機能させる。
インターフェースによる「契約」で自由を確保する
チーム・モジュール間の境界(インターフェース)を「契約」として厳守する。
これは他者を拒絶するためではない。契約さえ守れば、内部実装は各チームが自由に最適化できるという「自律性の確保」**である。
互いの領域をリスペクトし、流動性の中でも各チームがドメイン探求を続けるための防波堤となる。
6. マネージャーの責務:インフラへの投資
個人の根性論や意識変革に頼るマネジメントは限界を迎えている。
リーダーの仕事は、AIナレッジベースやモデリング文化といった 「人が入れ替わっても価値が残り続けるインフラ」 への投資を承認し、推進することである。
「誰が書いてもそこそこの品質になる(そして壊れたら直せる)」体制を作ることこそが、組織の持続可能性を担保する。
/icons/hr.icon
個人的なメモ: