水は腐ってないか?(プロセス改善と"garbage in, garbage out")

 最近、私が勤務している部署は、一応プロセス改善を担当している。自分としてもある程度はやりたいことでもあるので、そこそこは頑張れる。けれども、この分野に対する周囲の人々(世間でプロセス改善に携わっている人々も含めて)の無理解は、しばしば私の気力を失わせるのに十分過ぎるものがある。
 水道水を頭に浮かべてもらいたい。普段飲んでいる水道水がサビ臭かったら、何が悪いと疑うだろう?普通は配管がサビていることを疑う。でも、水道水が妙にカビ臭かったり、何か腐ったような臭いがする、となったらどこを疑うだろう?まともな大人なら、屋上にあるタンクの清掃状況はどうなってるんだとか、最寄りの水道局に連絡したり、といったことを考えたりするハズだ。20mmの水道管にネズミの死骸がつまってるなんて、誰も考えたりはしない。
 開発プロセスの場合にも理屈はあまり変わらないのだが、なぜだか「タンク」の部分にあたる要件定義プロセスを正面きってどうにかしようという動きには、なかなかならない。ほとんどすべての場合、問題は「配管」である下流工程のせいにされる。多少マシな場合には「タンクは簡単に開けられないから、まず配管をチェックする」という論理が使われることもある。
 いずれにしても、いじくり回されるのは常に「配管」である。超高性能の浄水器を配管につければ、ドブの水でも飲めるようになるかも知れないが、喜んでそんな水を飲む人はいない。"garbage in, garbage out"は、プログラムだけの話ではない。プロセスも一緒なのだ。ここに正面から向合わない限り、日本のシステム開発の現状は100年経っても今と変わらないだろう。