コードよりデータのドキュメント

「私にフローチャートだけを見せて、テーブルは見せないとしたら、私はずっと煙に巻かれたままになるだろう。逆にテーブルが見せてもらえるなら、フローチャートはたいてい必要なくなる。」 -- フレデリック.P.ブルックス.Jr 『人月の神話』より



業務系の死んでるプロジェクトに行くと、たいがいデータベースのドキュメントがショボい。実際にテーブル作んなきゃなんないから、DDLはある。項目名も決まってる。けれど、たいていの人が、その項目の使い方や意味を分かってない。一部の人は、自分は分かってると思っているかも知れないが、他の人はその人が理解しているようには理解していない。

マスタテーブルの代表的な値がドキュメント化されていないこともショッチュウある。その値によってプログラムの動作が変わるようなテーブルは、本質的に列挙型と変わんないから、そこがドキュメント化されていないと、やっぱり理解できない。

こんな状況で、うまく動くモノが作れる訳がない。プロジェクトが火を噴くのも当然かな、という気がする。

一般社会での言葉の使い方は「まず言葉ありき」でいいだろうけど、システム設計でそれはないよ。どこまで厳密に定義するかはさておいて、システム設計で「言語ゲーム」やるのはやめてほしいな、と思う。