操作の結果は操作対象の状態に依存する

全く当然の話なんですけど、自分自身がこのことをつい忘れてしまう人間になりつつあることを実感したので、復習の意味を込めてまとめます。
まず、例としてテキトウに物語をでっち上げます。

私は、目の前にあるドアのようなものを開けることになりました。なぜだかはわかりませんが、ここにはそれ以外なにもないのでそうなのでしょう。
『ドアのようなもの』は、私の知っているドアとは少し違いました。ドアノブもなければ、レールもありません。しかし、私の知っているドアと同じ大きさと形で、右端の中央に手を引っ掛けるのにちょうどよい穴がありました。だからそれをドアだと思いました。
私は、そのドアを押すことにしました。まず、軽く押してみました。開かなかったので、力いっぱい押してみましたが、それでも開きませんでした。そのあと、ありとあらゆる方向へ押しました。しかし、ドアはびくりともしません。私は、押しても開かないと思いました。
次に、そのドアを引いてみることにしました。穴に手をかけて、軽く引いてみました。すると、ドアはほんの少しだけ開きました。しかし、それ以上は開きません。そのあと、ありとあらゆる方向へ引きました。横や上にも引きました。しかし、それ以上ドアは開きませんでした。
私はあきらめました。
「これはドアではなかった。そもそも開かないのだ」
そして、その場にしゃがみこんでしまいました。


「押してみてはどうじゃろうか」
あれからどれだけたったのか分かりません。声に気づいて後ろを振り向くと、老人が立っていました。
「押してみてはどうじゃろうか」
老人は落ち着いた口調で言いました。
私は答えます。
「ありとあらゆる方向へ押してみたが、開かなかった」
自分に言い聞かせるように答えました。
しかし、老人は繰り返します。
「押してみてはどうじゃろうか」
老人はゆらゆらと揺れています。
私は老人のほうへ体を向けました。
「すでにありとあらゆる方向へ押してみた。しかし、開かなかったのだ」
はっきりと大きな声で答えました。
しかし、老人は繰り返します。
「押してみてはどうじゃろうか」

私は、めんどくさそうに立ち上がると、向き直り、ドアのようなものを勢いよく押しました。すると、ドアは勢いよく開き、私は外へ転がり出ました。

なぜドアが開いたのかは分かりません。老人が魔法でドアの鍵を開けてくれたのかもしれません。
個人的な意見としては、『引いて押せば開くドア』だったのではないかと思います。
『私』は、『ありとあらゆる方向へ押した』という経験によって、『押しても開かない』という知識を得えました。だから、引いたあとに、押すことをしませんでした。しかし、押して開かなかったのは、引く前の状態のドアであり、引いた後のドアではなかったのです。
この例では、『ドアのようなもの』という得体の知れないブラックボックスが操作対象ですが、実社会ではもっとクリアーなものが対象となるので、ドアを開くのはもっと簡単な問題のはずです。しかし、ある程度の経験や知識を得てくると、それ自体に自信を持つようになってくるので、つい経験と似たようなモノに対して、操作対象の状態をきちんと考慮せずに経験から得た知識を使ってしまうことがあります。
あのときの操作対象はどんな状態だったか。対して、今はどうか。まずそうを考えて、本当にそれは解決済みの問題なのか、適切な方法なのかをきちんと判断することが大切だと思います。


具体的に言うと、設計のときに!
具体的に言うと、デバックのときに!