私の質問の2番目の部分、「なぜ開発者はコーディングに首を突っ込んでいる間、邪魔されるべきではないのか」を考えれば、それは賢い人々によって何度も議論されてきました。ヘックは、SOの共同創設者であるジョエルスポルスキーでさえ、「ゾーンに入る」と「ゾーンからノックアウトされる」ことについて ブログ投稿 を書いています。なぜ平均15分かかるのですか。複雑なソフトウェア開発関連のタスクに参加するときに生産性を実現します。だから、その理由が確立されたと思います。
私が興味を持っているのは、BeanについてBeanを知らない人にすべてのことを説明する方法です(khmm私はソフトウェア開発を意味します)。 「Wazzzzzzup ?!」を使用して30分ごとにSkypeでpingを送信する妻や変な男、または長年の友人にSkypeにpingを実行することを伝える方法は、すべての中断が作業よりもはるかに深い影響を与えることを示します。彼らがあなたの時間から取った明らかな30秒。空白の視線や友好的な虐待の対象になりたくない場合を除き、「短期間の記憶の中で多くの変数名を操作しなければならない」などの文でそれを説明することはできません。
開発者以外の人にも、攻撃的、エリート主義的、または専門的すぎることなく、それらを明確に理解できる方法でそれらすべてを説明できるようにしたいと思います。
編集:すばらしい洞察を提供してくれた皆さんに感謝します。私は EpsilonVectorの回答 を受け入れました。彼のアナロジーは私の最初のニーズに最も近いものでした。 「眠りに落ちる」の説明は不快でも技術的でもありません。ほとんど誰もがそれに関係する可能性があり、眠りに落ちている間またはゾーンにいる間に邪魔されることの結果は非常に似ています。欲求不満を経験し、15〜20分「失う」時間の。
次の例を試してみてください。最初の例:「眠りにつくまでどれくらいかかりますか?」 "X分" "さて、眠りに落ちそうになると、誰かが歩いて邪魔をして、今すぐ眠りにつくまでどのくらいかかりますか。あなたがいた場所に戻って沈む?」 「もう一度始めなければならない」「すごい。同じこと。眠りにつくのと同じように、フォーカスモードに「沈む」までに時間がかかり、中断されてから戻るまでに時間がかかる自分がしていたことの半分も忘れてしまったことを除いて」
2つ目:「本を読んでいるときに、どのようにしてそれに没頭するのかを知っています。しばらくすると、言葉に気付かなくなり、自分の周りのすべてを遮断して、完全に精神的なイメージに没頭します。分かりますか。" "はい。" 「そこに着くまでどれくらいかかりますか?」 「約X分」「あなたが本に没頭していて、誰かが歩いて邪魔をしているときに、それに戻るのにどれくらいの時間がかかるか想像してみてください。それはすぐに起こりますか、それとももう一度始めなければなりません 'あなたがいた場所に戻って沈む?」 「もう一度やり直さなければならない」「すごい。同じこと。読書と同じように、フォーカスモードに「沈む」には少し時間がかかります。中断されたときに戻ってくる限り、ただし、読んだ内容の半分も忘れてしまいます。」
ジョエルが語る空想の状態は技術的なものだとは思いません。これは、誰もが本当に良い本の呪文を描いたり、それらに陥ったりするときに経験するのと同じ右脳シフトです。 (ベティ・エドワーズの「脳の右側に描く」はそれを完璧に説明しています。)誰もがあなたが時間の経過に気づいていない集中力を経験しました。
これは技術者だけが理解できることであり、開発者以外の人が理解するには概念を沈静化する必要があることを想像すると、すぐに頭が下がると思います。わかりやすい言葉で説明してください-彼らはそれを理解するでしょう。
内的スレッドを口頭IOに再ルーティングします。つまり、邪魔されたときに向きを変えて、コードをつぶやき、諦めて離れるまで中距離を探します。彼らが話すなら、ただ大声でつぶやいてください。
コーディング(またはここに他の高濃度のアクティビティを挿入)は スピニングプレートの動作 を行うサーカスパフォーマーのようなものであることを伝えます。
最初に、スティック上の1つのプレートを回転させ、それを開始し、次に2番目のプレートを回転し始め、それを開始し、最初のプレートに戻り、それを継続するために少し回転させ、3番目のプレートの回転を開始します。 、それを始めて、2番目のプレートに戻って、少し余分なスピン、最初のプレートの余分なスピン、3番目のプレートの余分なスピン、そして4番目のスピンなどを開始します。
その後、電話が鳴り、すべてのプレートが落下します。
フロー状態がなくなりました。今、最初からやり直す必要があります。 1つのプレートを回転させます...
各プレートは、頭の中で維持しなければならないデータ、変数、概念、状態などのチャンクと考えるのが好きです。
数か月前に、コーディング中に誰かが私のキューブに入ってイヤフォンを引き抜いてもらいました。内部の怒りはさておき、私のアプローチは、しばしばプログラマーが論理的思考に深く関わっていることを説明することでした。思考には別の集中的なアプローチが必要であり、中断すると突然思考プロセスが台無しになる可能性があることを説明しました。それはその人から再び起こったのではないので、たぶんそれはうまくいった。もう1つの考慮事項は、ビジー/フリーサインです。私にはアルゴリズムを行う友達がいて、彼には、「コーディング-中断しないでください」と「無料でチャット」と言う両面のサインがあります。ここでは、あいまいさを取り除くことが重要です。
わかりました、私は自分の答えを追加します(これは少し役立たずであることを知っていますが、それが私が目指していたものにいくつかの余分な光を投げかけるかもしれません)。
最近、悪い時に邪魔をした人に次のように言いました。「ソフトウェアの開発は、人生で初めて非常に混雑した道路で車を運転するようなものです。すべての注意は、ホイールとペダルと車に集中しています。あなたの周りに急いでいて、単に素敵なチャットに特別な注意を払う必要はまったくありません。チャットの内容に集中し始めると、車をコントロールできなくなり、最終的には事故"。
これは人が関係することができるものでしたが、それは良いアナロジーからはほど遠いです。私が中断された場合、結果は事故とは大きく異なります。私は20年間SW開発を行ってきましたが、なぜこれを初めて行われているものと比較するのですか?等々。
" Mihaly Csikszentmihalyi on flow "は、人にアピールするかもしれないし、しないかもしれない特定の条件下で本当に生産的であるというこのアイデアについての良いTEDトークです。一部の人々にとっては説明を理解したくないかもしれないことを忘れないでください。したがって、それは一種の死んだ馬を無限に繰り返し打つようなものです。
私はそれをプログラマーのトランスと呼んでいます。ここには良いアナロジーがたくさんあるので、もう1つは何でしょうか。前に述べたように、プログラマーは適切なものが現れるまで、いくつかの異なるロジックフローをメンタルナビゲートします。次に、コードで記述され、コンピューターに保存されます。
だから、あなたは定期的な論文や重要な文書を書いているとしましょう。思考はコンピューターに言葉に流れ込んでいますが、まだ変更を保存していません。その後、電源が切れるか、コンピュータがクラッシュします。そのすべてを取り戻すには、長くまたは長くかかり、元のものと同じになることはありません。 (私たちの古いタイマーの何人がそれを起こしましたか?)
これは、中断されたときにあなたの頭の中のコードに何が起こるかです。考えは煙のように壊れやすい。それらがまだ保存されておらず、それらを混乱させる何かが発生した場合、それらはなくなっています。
親愛なるDistinguished CoWorker様、より効率的になるために私の仕事に集中し、仕事と仕事の合間にメールで質問に答えて、中断を最小限に抑え、より良いサービスを提供します会社名_。メールをください。できるだけ早くご連絡いたします。ありがとうございました。
音楽を聴く場合は、次のように何かを示す標識を貼ってください
Headphones on? Please do not interrupt.
これは、誰かが読んでいて、常にヘッドフォンをつけていない場合にのみ有効です。
私はそれを、私の頭の中で構築しなければならない複雑なつながりの大きな網、さまざまな、常に明白ではない方法で相互に影響する相互関係の構造のすべてを理解し、明確に保つ必要があると考えますコードを書くときに焦点を当てています。このWebの構築には、私がある程度慣れているプロジェクトでは5〜15分かかり、親密でないプロジェクトでは数倍かかります。
私の集中力が中断されると、ウェブは崩壊し始め、中断が数秒以上続く場合or他の少し複雑なことについて考える必要があります(「サーバーが先週、顧客に何を伝えましたか?」)、ウェブが完全に崩壊しました。中断が終わったら、ウェブ全体を最初からゼロから再構築する必要があります。
Webを構築するのに10分かかり、1時間に3回2分間だけ中断された場合、50分のコーディングではなく、24分の作業しか行われていないことを理解する必要があります。これらの3 tiny中断はhalfで私の生産性を削減します。
ニール・フォードは最後のDevoxxについてそれについて話しました。彼はそれについて本を書きました:生産的なプログラマー。彼は「フロー」ブレーカーに関するヒントを説明しています。あなたが流れの中にいるなら、あなたはあなたの最高の集中点にいます。しかし、中断された場合、フローに戻るには+ -20分かかります。
フローから抜け出すと、脳のランダムアクセスメモリが動作しているものに関するデータを失い、データを元に戻すのに20分かかる場合は、emについて説明する必要がありますRAM ;)
その他についてはわかりませんが、少なくともSkypeの場合は、「サイレントモード」を使用することをお勧めします。そして、仕事で通信するためにそれを使用する必要がある場合は、仕事で邪魔したくない人と共有しない2番目の仕事専用アカウントを持っている:)
私は通常、IMクライアントに次のステータスを設定します。
私は仕事をしていて、マルチタスクができないので、気にしないでください...
少なくともそれでトリックを行うようです
「Wazzzzzzup ?!」で30分ごとにSkypeであなたにpingを送信する長年の友人
説明することもできますが、これを試すこともできます。
あなたはそれらを中断します(= /// =)彼らは、それが読書、映画鑑賞、計算、さらには何かをよりよく数える。そして、あなたが説明しなければならないのは、彼らがあなたを邪魔するときそれがあなたのためにまさにそのようにであるということです。トリックを行う必要があります。彼らが運転している間、そのようなことを気にしないでください:)。
私は説明しません。中断がスケジュールに追加されたのは6週間です。
私がオフィスでやっていることは、オフィスのさまざまな部門のホットデスクスポット(隠しスポット)を見つけることです。これにより、誰もあなたがどこにいるのかわからないので、邪魔することはできません。それが極めて重要でない限り、邪魔しないでください!
複雑である必要はありません。 「非常に集中力のあるものに取り組んでいます。これをメールで送信できますか?ここで完了したらすぐに確認することを約束します。」のような単純で敵意のないもの。