http://anond.hatelabo.jp/20070722053313
元 Excel 設計チームの Joel Spolsky 氏はこう書いている。
広く書かれていることだが、生産的な利益は、知識労働者に空間と静かさとプライバシーを与えることによってもたらされる。古典的なソフトウェア管理の本「ピープルウェア」はこれらの生産性が広範囲に渡ることを述べている。
ここに問題がある。我々はみな知識労働者が「すらすらできる」状態のとき、"in the zone"(自分の中に入った状態)としても知られているが、完全に仕事に集中していて周りの環境から遮断されてしているときにベストの仕事をできるということを知っている完全に集中している間に、時間を忘れて素晴らしいものを作り上げるのだ。これが、生産的な仕事をやりとげる時だ。ライター・プログラマ・科学者、そして野球選手さえもが、完全に集中した状態について語ることができるだろう。
問題は、「集中する」ことは簡単ではないということだ。計ってみるならば、最高の生産性の状態で仕事を始めるまでに平均15分かかるようだ。時には、疲れているときやその日にすでに沢山の生産的な仕事をしてしまったときには、集中することすらできず、残りの就業時間をぶらぶらしたりウェブサイトをみたり、テトリスで遊んだりしてすごすことすらある。
もうひとつ、集中した状態から覚まされることがとてもた易いことだ、という問題がある。騒音、電話のなる音、昼食、コーヒーのためにスターバックスまで5分のドライブ、そして同僚による割り込み、特に同僚による割り込みが問題だが、これらのことはすべて君を集中から覚ますものだ。同僚が君に質問すると1分間の割り込みが入る。しかしそのことで、君は集中が途切れ、再び生産的な状態に入るまで30分を要し、君の全体の生産性にとっては深刻な問題となる。もし君がカフェイン中毒のドットコム企業のやつらが作りたがる、騒々しい牛の囲い場のような環境にあって、営業担当者がプログラマの隣りで電話に向かって叫んでいるとしたら、君の生産性は落ち込むだろう。というのも、そんな環境では知識労働者は次から次へと割り込まれ、決して集中することができないからだ。
プログラマについていうと、この問題は特に厄介だ。プログラマの生産性というのは、細々した沢山のことをちょっとずつ記憶しながら同時に操ることができるかどうかにかかっているからだ。いかなる時に割り込みが入っても、そういった細かいことがクラッシュする。仕事に戻ったとき、君は細かいこと(使っているローカル変数の名前や検索アルゴリズムのどこまでを終えたかなど)を思い出せないだろう。そして、そういったことを思い出すことからやり直して、そのために元のスピードに戻るまでには多くの時間がかかる。
ここに簡単な計算式がある。いいかい、(これまで書いてきたように)あるプログラマの邪魔をしたとすると、たとえそれが1分間でも実際には15分間の生産力を吹き飛ばしたことになる。例えば、ここに二人のプログラマがいるとしよう。ジェフとマットだ。典型的なディルバート式の囲いの中に隣り合わせで座っている。(訳註:ディルバートは、1989年よりアメリカの新聞各紙で連載されたコミックの主人公。うだつのあがらない係長で、彼の働くオフィスはキュービクルと呼ばれる一人ずつのパーティションに区切られている。)マットはstrcpyのUNICODEバージョンの関数名が思い出せない。マットは関数名を30秒かけて自分で探すこともできるし、15秒かけてジェフに聞くこともできる。ジェフは隣りに座っているから、ジェフにたずねる。ジェフは注意を逸らされ、15分の生産を失う。(マットの15秒を節約するために、だ。)
さて、二人を壁とドアで区切られた別々の部屋に引越しさせるとしよう。そうするとマットは関数名を忘れたときにはやはり30秒かけて自分で探すか、今や45秒かかり立ち上がることも必要となったが、(プログラマの平均的運動能力からいってこれは簡単なことではない)ジェフに聞くこともできる。立ち上がりたくないので、マットは自分で調べる。マットは30秒の生産を失うが、ジェフの15分は節約できた。ハハハ!
パソコンに詳しい人は、普段から「 Windows のことはわかりません( Linux 専門です)」と云っておいた方がいいかもしれない。 Linux なんて触ったことさえなくともね。