「JOIN禁止」が通り続けたのは、一人のせいだとは思えない

【読むのに約 1 分】

SQLのJOIN禁止ルールが数千万赤字を生んだ現場の衝撃(Xのトレンド)

SQLのJOINを禁止した人がいて、そのせいで数千万円の赤字と、メンタルをやられた人が出た現場があった、という投稿を見た。

ただ、わたしはこれを、JOIN禁止を言い出した一人のせいだとは思えない。

おかしなことを言う人はたまにいるし、普段はまともな人が間違った判断をすることもある。当時は妥当だった方針が、システムや組織の変化によって合わなくなることもある。

たとえばRailsで、できるだけActive Recordを使って単純に書くという方針は、処理が簡単なうちは保守しやすい。しかし複雑な集計や一括更新が増えれば、SQLやDBの機能を直接使ったほうが単純になる。それでも昔の方針が絶対ルールとして残れば、JOIN禁止と似たことになる。

元投稿によれば、DBは適切に正規化され、設計担当者も優秀だったという。それなら技術者がいなかったわけではない。

セキュリティや監査が理由なら、技術的な効率だけでは決められない禁止ルールもある。しかしJOINを使うかどうかは、処理時間、負荷、実装量などを比べられる技術的な問題である。それがITを仕事にする会社で、周囲が反対しても覆らなかったというのは不思議だ。

言い出した人にも上司にも責任はあるだろう。ただ、異論が通らず、数字で検証されず、問題が出ても方針を変えられないなら、どちらか一人ではなく組織環境全体がおかしい。

技術的な判断は、サーバー費用や開発工数を増やし、リリースを遅らせ、損失につながることはある。ただ、JOIN禁止だけで数千万円の赤字が出たと言うには説明が足りない。会社の赤字なのか、案件の予算超過なのかも分からない。

投稿からは、JOIN禁止と、それを言い出した人への強い恨みが伝わってくる。それだけ大変な現場だったのだろう。しかし、会社で起きた複雑な失敗を「あのルールとあの人のせい」とまとめると、原因を見誤る気がする。

View as Markdown · Open in Claude · Open in ChatGPT