エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

想像で設計する

今回も、半ばグチです。
ソフトウェアの開発をやっていて、意外と目につくのがこれ。想像で設計する。インタフェースする相手はこうするだろう、エラーのときはこう動くだろう、割り込みはこの順序で発生するだろう、などなど。
以前のエントリで「想像力、大事!」と書いたように、想像力を働かせながら設計することは大事なことなんですが、想像して仮定したことを前提として設計を進めるのは危険きわまりないわけで(ソフトウェアの設計に限らず、世の中大抵そうですが)。

想像で設計してしまうというのは、実はまだまだ想像が足りないということなのかもしれません。もう一歩踏み込んだ問い。「…はこうだろう、でもこうでなかったら?」。この一歩を、わかりやすい形で、開発のプラクティスにできるとよいのですが。

それとも、これをアンチパターンにすればいいのだろうか?