読者です 読者をやめる 読者になる 読者になる

ところどころモノリシック・システムの悲劇

Yaemon Advent_Calendar_2014

そう、既にある恵方巻き注文システムに恵方巻きの他にもう 1 種類、例えばネギトロ巻きを扱うようにシステムを変更することになったとしよう。

しかし、実のところこの恵方巻き注文システムは恵方巻きだけを扱うようにできていて、それ以外を扱うことは全く考えていなかった。
つまりこのシステムには、ネギトロ巻きが扱えるような余裕は全くなかったのだ。

それでどうなったかって?

この修正はひどい大工事だった。
ある画面などは恵方巻きを積み込んだトラックの他にネギトロ巻きを積んだトラックが通れるように大きく書きなおされた。
これはちょうど一車線しか無い町の道路を無理やり二車線にするような無茶な工事だった。
道路の周りの建物を取り壊さなければならなかったわけだから。

この話の教訓はなんだろう?
この変更を見越して最初から二車線にしておくべきだということだろうか?

それは違う。
この恵方巻き注文システムは恵方巻きだけを扱うように設計されていて、それ以外の寿司トラックを受け入れる様にはできていなかったし、 もともと、そういう予定もなかったからだ。

内緒だけど、このシステムは元から現状に合っていなかった。
このことはネギトロ巻き修正が入るときに判明したもので、結果的に我々は前任者の流していないトイレの後始末をすることになってしまったのだ。

前任者が存命な時代に何が起こったのかは定かではなく、私が何を云っても始まらないのだが、云わせてもらいたい。
何故多くのえんじにゃーがコードをドロ団子の様に組むのだろう?
前任者がコードをもっと積み木やレゴブロックのように「構造化」していればこんなことになることはなかったのだ。

今の多くのギョームでコードを書く仕事ではえんじにゃーが溶けてダクトを繋げている。
そこでは、えんじにゃーはクソ仕様書を解読することで、「空気」を推し量ることになる。
でも、f**k'in 仕様書より多くのことを語っているのは他でもないコードの方だ。
何故コードにもっと語らせてやらないのだろう?