プログラミングのような知識労働では、作業に集中して周りがまったく見えなくなる状態が最も生産性の高い状態であることが知られている。この状態は「フロー」または「ゾーン」と呼ばれ、「ピープルウェア」や「Joel on Software」でも取り上げられている。もしこれらを読んだことが無くても、プログラマなら感覚的にこのことは理解できると思う。

私自身はCADで図面を描いているときや、文章を書いている時にも経験したことがある。感覚的にはこれらの作業のほうがプログラミングよりフロー状態に入り易い気がする。おそらくこれらの作業の方がプログラミングに比べて複雑さが少ないからだろう。

特に複雑な状態遷移などについて考えている時は、外乱の影響は甚大だ。私の場合、こういった時には頭の中に「状態をもった物」を思い浮かべ、その変化を想像しながら思考する。もちろん紙に図を描くこともするが、これは記憶の補助に過ぎない。頭の中と紙というのはちょうどCUPレジスタとメインメモリと同じような関係で、CPUはレジスタにある値しか演算することはできない。CUPの場合はレジスタに置いておけない値はメインメモリに保存しておいて、後で必要になったときに読み込む。コンピュータで扱う「数値」は、レジスタ上にあるときとメモリ上にある時とで全く等価であり、後からレジスタの状態を完全に再現できる。つまり一旦演算を中断しても、あとから中断前と全く同じ状態に復帰できる。
ところが脳というのはある時点での「値」を全く同じ形で外部に保存することができない。そのため中断後に中断前の状態を再現することは難しい。

ところがこれはプログラマ以外にはほとんど受け入れられない。いや、本当は分かっている人もいるのだが、結局は精神論で乗り越えろという結論になる。
人間の精神活動についての研究結果を活用して生産性向上を計るという方針は決して非合理的ではない。
「自分のことは分かっている」という思い込みが原因なのだろう。
自分自身を研究対象として冷静に観察すると、それが思い上がりであることが分かる。
こちらが「無理な要求ではないでしょう。それで生産性が十分に上がらなかったらクビにでもなんでも指定ただいて結構。」と考えているのに対して、
これは簡単に社員をクビにできないという日本の企業文化にも原因があるかもしれない。