ゴミ屋敷のメタファでは不十分

http://d.hatena.ne.jp/Yamashiro0217/20130215/1360896937
ひとこと.

部屋の片付けメタファは,現実を過小評価する危険があるのでお勧めしない.むしろこれは非常にダメなメタファだ.

  • id:yun2dot0 爪切りが増えることが問題じゃなくて、爪切りの機能変更に漏れが出るのが問題なんすよね。 / 結局、住める(=動く)からいいじゃん、と言われてしまう気が。
  • id:cheapcode 非エンジニア「掃除なんか簡単じゃん。もの置く場所がないならそこだけチャチャッとやればいいっしょ?つか手が足りないんなら他人にやらせりゃいいじゃん。…で、糞コードの何がダメなんだっけ?」エンジニア「orz」
http://b.hatena.ne.jp/entry/d.hatena.ne.jp/Yamashiro0217/20130215/1360896937
  • 部屋がどんなに汚くったって死にはしない.
  • 物が見つからなくても代わりのものを買ってくればいい.
  • 部屋が住めなくなってもホテル住まいすれば良いじゃない.
  • 最悪では,専門の掃除業者を呼んで全部綺麗に片付けて貰うことだってできる.普通の家なら2〜3日のものだろう.
  • 通常はゴミが増える速度が,全ゴミ収集車によって回収できるゴミの総量を上回ることはない.*1
  • 通常ならゴミが増える速度は,ゴミが増えるほど下がる.部屋がゴミでいっぱいなのに次から次へとゴミを増やすことはあまりない.

プログラムはそうはいかないんだよ.

  • 部屋が少々よごれていても,片付けるのにかかる時間はゴミのO(n)くらいのもんだ.プログラミングのコストはO(n^3)〜O(n^5)で増えるかもしれない.
  • 部屋をどんなに汚しても部屋の容積以上のゴミを詰め込むことはできない.プログラミングのゴミは,プログラミング本体の何十倍でも何千倍でも何万倍でも上限なく詰め込むことができる.そういう組織においては,ゴミは誰にもメンテできなくなるまで,ひたすら単調増加する.
  • ゴミの増える速度はゴミの総量に比例する.汚れれば汚れるほど,ゴミの増える速度は幾何級数的に増えていく.
  • たとえ専門家でも引き継ぎには相応の時間がかかる.綺麗なコードで且つドキュメントが揃っている場合でさえも.糞コードの場合は引き継ぎが事実上不可能になる.
  • しかも仕様変更は一切禁止.仕様はドキュメントに残ってないどころか,誰も理解してない.
  • 影響範囲が予測しにくい.新品の冷蔵庫を捨てても影響0だったかと思えば,紙くず一つゴミ箱に入れただけで家が倒壊することだってある.そんな感じ.
  • 代わりになる物がない場合が少なくない.「家に住めなければホテル住まいにすればいいじゃない.ダメなら野宿だって可能.」とはいかないのだ.*2

部屋のメタファで理解したつもりの素人は,無限増殖するゴミプログラムの真の恐ろしさを理解できはしないのだ.*3

http://d.hatena.ne.jp/fizzco/20130215/1360923321

こっちの方がしっくりくる.

「非エンジニアに分かるように説明するなら、部屋の模様替えを頼まれたはずなのに、実際にはクソ汚い赤の他人の部屋の大掃除からやらなければならず、しかもゴミ以外にも契約書や振込用紙、写真やアルバムが大量に出てきて、持ち主行方不明で勝手に捨てていいか念入りに調べないと分からない、みたいな。」

カップラーメンの空き容器なら捨てられるけど、他人のゲームや契約書とか写真なんて捨てていいのかわからんよね。」

機能改修→部屋の模様替え、新たなインテリアの配置

要るのか要らないのか分からない処理→契約終了しているかもしれない契約書や期限切れかもしれない振り込み用紙

不要なリソース→誰のか分からない写真やアルバム

行方不明の住人→前にソース書いたやつ

「大家さん、これは模様替えどころじゃありません・・・!」

こんなかんじかも。

しかもゴミだと思って捨てたグシャグシャの十年前の映画の半券が,俺には必要な物だったから100万円弁償しろといわれるような,そんな世界.

*1:プログラムの場合は「ゴミが増える速度 >>> 全開発者によってゴミを取れる速度」になるのはそんなに難しくない.

*2:作り直しに最短1年かかるとしと,どんな糞コードでもその1年の間は死ぬほどボロボロになってでもメンテするしかない.しかも往々にして「作り直しに必要不可欠な人材 = メンテナンスができる人」だったりするから,そうなると完全に詰む.

*3:むしろゴキブリがグロス単位でゾロゾロ這い回るベッドで寝る生活を想像して貰った方がいいかも.しかも一匹見れば30匹.ゴキブリの数は毎日目に見えて増え続けているのだ.あなたはそこで生活しているので,バルサンを炊くこともできません.