コーディングの深部にいる間に開発者が中断されるべきではない理由を素人に説明する方法は?[閉まっている]


92

私の質問の2番目の部分、「なぜコーディングの深部にいる間、開発者が中断されるべきではないか」を考慮すると、それは賢い人々によって何度も議論されてきました。SOの共同創設者であるJoel SpolskyでさえあるHeckは、「ゾーンに入る」および「ゾーンからノックアウトされる」こと、そして複雑な作業に参加するときに生産性を達成するのに平均15分かかる理由についてブログ投稿を書きました。ソフトウェア開発関連のタスク。だから、その理由が確立されたと思います。

私が興味を持っているのは、BeansについてBeanを知らない人にそれをすべて説明する方法です(つまり、ソフトウェア開発を意味します)。妻、職場の経理担当の変な男、またはSkypeで30分ごとに「Wazzzzzzup ?!」でpingを送信する長年の友人に、すべての中断が仕事に与える影響がはるかに大きいことを伝える方法彼らがあなたの時間からかかった明らかな30秒。空白の凝視や友好的な虐待の標的になりたくない限り、「短期記憶で多くの変数名をジャグリングしなければならない」などの文で説明できないことは明らかです。

攻撃的、エリート的、または技術的になりすぎることなく、すべてを非開発者に明確に理解できる方法で説明できるようにしたいと思います。

編集:素晴らしい洞察力をくれたみんなに感謝します。EpsilonVectorの答えは、彼の類推が私の本来のニーズに最も近いものであったため、受け入れました。「眠りに落ちる」説明は攻撃的でも技術的でもありません。ほとんど誰もがそれに関連することができます。時間の。


36
それらを0から開始し、大声で見て
ティムポスト

8
確かにほとんどの職業に関係があるので、外科医の中流を止めてみてください。
ozz

24
職場でスカイプを降りる。
ジョシュ

6
「攻撃することなく」、どこかにキャッチがあることは知っていました。:)
biziclop

7
@Josh職場では、オフィス間通信にSkypeを使用しています。オープンにする必要があります。別の仕事用アカウントを持っていますが、まだこれらの問題に直面しています。
マシューシャーリー

回答:


124

次の例えを試してください:最初の例:「眠りにつくのにどれくらいかかりますか?「X分」「今、あなたが眠りに近づいたら、誰かが入ってあなたを邪魔したと想像してください。あなたが今眠りにつくのにどれくらい時間がかかりますか?あなたがいた場所に戻ってシンク?」「もう一度始めなければならない」「すばらしい。同じこと。眠りに落ちるのと同じように、フォーカスモードに「沈む」のに時間がかかり、中断されてからフォーカスモードに戻るには時間がかかります。私がやっていたことの半分も忘れていることを除いて。」

2つ目:「本を読んでいるとき、どのように「本を読む」かを知っています。しばらくすると、言葉に気付かなくなり、自分の周りのすべてをブロックし、精神的なイメージに完全に没頭します。分かりますか。" "はい。" 「そこに着くまでどれくらいかかりますか?」「約X分」「今、あなたがその本に没頭しているときに、誰かが入り込んで邪魔するとき、それに戻るまでにどれくらいの時間がかかるか想像してみてください。あなたがいた場所に戻ってシンク?」「もう一度始めなければならない」「素晴らしい。同じこと。読書と同じように、フォーカスモードに「沈む」には時間がかかります。


14
+1すばらしい、すばらしい、特に「眠りに落ちる」もの。まさに私が探していた種類の説明。
アンドラスシェペシャジ

1
助けにならないかもしれない-私は普通に眠りに落ちることができる
アルマン

1
@Alison私はそれができないことを知りませんが、読んでいないので、2番目の点に関係できない人がたくさんいます。
マシューシャーリー

3
眠りに落ちる比metaが大好きですが、すぐにそれを使って私の妻に私の仕事を説明するつもりはありません!;>
dthorpe

7
プログラマーのモーニングコールしないでくださいalexthunder.livejournal.com/309815.html
クリス・ナバ

30

ジョエルが説明する空想の状態は技術的なものではないと思います。それは、誰もが本当に良い本の呪文を描いたり、その呪文に陥ったときに経験するのと同じ右脳シフトです。(ベティ・エドワーズの「脳の右側に描く」は完全に説明しています。)あなたは時間の経過を知らない集中力を誰もが経験しています。

これは技術者だけが理解できるものであり、開発者でない人が理解するためには概念を馬鹿にする必要があると想像するのは一目瞭然だと思います。わかりやすい言葉で説明してください-彼らはそれを取得します。


17
私の経験では、彼らは必ずしもそれを得るわけではありません-彼らはそれを事実として受け入れるかもしれませんが、それでもそれと関係はありません。私が知っているほとんどの人にとって、仕事はいつでも中断または継続できる仕事です。

3
私が話す人ではありません。私の経験では、非腐敗性の仕事をしている仕事をしている誰もが完全に関係することができるでしょう。たぶん、あなたは非常に多くの人と暗記作業をしているのです。
-duffymo

3
@duffymo:うーん。私は、営業担当者が粗悪な仕事をしている顧客向けにカスタマイズされたオファーを書いているとは考えていません。それでも、私が彼/彼女を中断した場合、彼/彼女は軌道に戻るまで最大30分を失います。それが私が意図したことです-ほとんどの仕事は私たちの仕事よりも中断/継続がずっと簡単です。私見では。

5
それはあなたがどれだけの状態を失うかという問題です。プログラマーは、コーディング中にプログラム全体の状態を維持する必要がありますが、より多くの書き込みを必要とする他の職業は、構築中のドキュメントの状態を維持します。復元しやすい状態はどれですか?
マイケルK

2
多くのことは、その人が実際に自分の仕事(または自由時間)の間にフローの状態を経験するかどうかに依存すると思います。彼らがやったことがあるなら、彼らは私たちの意味をよりよく理解するでしょう。
ペテルトレック

23

内部スレッドを口頭IOに再ルーティングします。つまり、割り込みが発生した場合はラウンドを回し、コードをつぶやき、あきらめて消え去るまで真ん中の距離を見続けます。彼らが話したら、ただもっと大声でつぶやきます。


16
LOLこれは良いことですが、インタラプターが妻である場合、確かに離婚につながります。
アンドラスシェペシャジ

これは間違いなく、より速く、より効果的なアプローチです!:P
ロビンマーベン

16

コーディング(または他の高濃度アクティビティをここに挿入する)は、回転プレートの動作を行うサーカスパフォーマーのようなものであることを伝えます。

最初に、スティック上で1つのプレートを回転させ、それを開始し、次に2つ目のプレートを回転させ、それを開始し、最初のプレートに戻り、それを維持するために少し余分に回転させ、3つ目のプレートを回転させます、それを取得してから、2番目のプレートに戻り、少し余分なスピン、最初のプレート余分なスピン、3番目のプレート余分なスピン、次に4番目のスピンなどを開始します。

その後、電話が鳴り、すべてのプレートが倒れます。

フロー状態はなくなりました。今、最初からやり直す必要があります。1つのプレートを回転させます...

各プレートを、データ、変数、概念、状態などの塊と考えて、頭の中で維持する必要があります。


13

数ヶ月前、私は誰かが私のキューブに入って、コーディング中にイヤフォンを引き出しました。内部の怒りは別として、私のアプローチは、多くの場合、プログラマーが異なる集中したアプローチを必要とする論理的思考に深く関わっていることと、突然中断すると思考プロセスが本当に台無しになることを説明することでした。二度とその人からは起きていないので、うまくいったかもしれません。あなたが考慮するかもしれないもう一つは、忙しい/無料サインです。私にはアルゴリズムを実行する友人がいて、彼には一方の側に「コーディング-中断しない」、もう一方の側に「チャット無料」という両面サインがあります。ここでは、あいまいさを取り除くことが重要です。


16
「無料チャット」側を妥当な時間だけ長くしておく限り。「中断しないでください」側を上にいつもあるならば、あなたにも...全く兆候を持っていないかもしれません
ディーン・ハーディング

4
それは迷惑になりそうなので、常にサインをひっくり返す必要があります。
誰も

3
サインの代わりに思考キャップを持つことができます。Thinking Capを装着しているときはいつでも、他の人に邪魔されるべきではありません。
アリ

3
「チャットを自由に」とは(マネージャーに)「私には十分な仕事がない」という意味ではありませんか?
badgerr

8
私の職場では、文書化されていない「ゾーン内」インジケータはヘッドフォンの存在です。上司は、「あなたが何も聞いていない場合でも、集中している場合はつけてください。忙しいということを意味します」と言っています。
-JYelton

12

わかりました、私は私自身の答えを追加しています(これは少しあいまいですが、多分それは私が目指していたものにいくつかの余分な光を当てる)。

最近、私を邪魔した人に次のように言いました。「ソフトウェアの開発は、あなたの人生で初めて非常に混雑した道路で車を運転するようなものです。あなたの周りを急いでいると、あなたは単に素敵なチャットに余計な注意を払っていません。チャットの内容に集中し始めると、あなたは車をコントロールできなくなり、結局は事故"。

これは人が関係できるものでしたが、それは良いアナロジーとはほど遠いものです。中断された場合、結果は事故とは大きく異なります。私は20年にわたってsw開発を行ってきたので、なぜこれを初めて行われたものと比較するのでしょうか。等々。


1
それは良い例えです。「初めて」の部分を削除して、多くの交差点、信号機、トラック、自転車など、非常に混雑した道路であることを強調してください。特に交差点は、あなたの車の後ろに何が当たるかを常に知らずに、あなたがしなければならないすべての決定を表すのに良いからです。
ゴランジョヴィック

これは良い類推だとは思いませんし、あなたもそのことを認めていると思いますが、開発時間を尊重するようになったらそれを使用してください。
バーナード

悪くない。
マーシー

4
ただ、あなたが無視するのに苦労している叫び声の子供がすでに3人いることを付け加えてください(あなた自身のすべての自然な気晴らし)。
ベンジョル

7

流れの上のミハリー・チクセントミハリイ」は、人々にアピールするかもしれないし、しないかもしれない特定の条件下で本当に生産的であるというこのアイデアについての良いTEDトークです。一部の人々にとって、彼らは説明を決して理解したくないかもしれないことを忘れないでください。したがって、それは一種の死んだ馬を再帰的に無限に打ち負かすようなものです。


+1私はFlowに関する回答を書いている最中でした:en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser

+1流れへの良い参照とは別に、私は「死んだ馬を無限に繰り返し打ち負かす」部分は単に陽気だと思います。
アンドラスシェペシャジ

4

私はそれをプログラマーのトランスと呼んでいます。ここには多くの良い類似点がありますが、もう1つは何ですか?前に述べたように、プログラマーは、適切なロジックフローが現れるまで、いくつかの異なるロジックフローを精神的に操作します。その後、コードで記述され、コンピューターに保存されます。

だから、あなたは用語論文や重要な文書を書いていると言ってください。思考は言葉でコンピューターに流れ込みますが、まだ変更を保存していません。その後、パニック、電源が入る、またはコンピューターがクラッシュします。そのすべてを取り戻すには、長くまたは長くかかり、元のものと同じになることはありません。(何人の古いタイマーがそれを実現しましたか?)

これは、中断されたときにあなたの頭の中のコードに何が起こるかです。思考は煙のように壊れやすい。それらがまだ保存されておらず、それらを混乱させる何かがやって来れば、彼らは消えてしまいます。


多くの人々はそれを理解し、それは十分にそれが戻ってそれに入るために15分かかりませんことを表しているので、それは最初の時間よりも長い時間がかかるし、より悪い結果となりますので、私は、このいずれかに最高のが好きで、。
オーブフィッシュ

3

著名な同僚の皆様、より効率的になるための努力で、私は私の仕事に焦点を当てていますし、より良いあなたと提供するために、最低でも中断を保つために、作業間の瞬間に電子メールを介しての質問に答えています会社名を _。私に電子メールを送ってください、そして、私はできるだけ早くあなたに戻ります。ありがとうございました。


2

音楽を聴く場合は、次のような線に沿って何かを示す標識を立ててください

Headphones on? Please do not interrupt.

これは、誰かが読んでいて、常にヘッドフォンをオンにしていない場合にのみ有効です。


私にとっては、逆になります。音楽を聴くことと集中力は私にとってはうまくいきません。
-CodesInChaos

2

私は、心の中に築かなければならない複雑なつながりの大きなウェブ、常に変化する、必ずしも自明ではない方法で互いに影響を与える連動関係の構造であると考えています。私がコードを書くときに焦点を合わせます。このWebの構築には、私がかなり馴染みのあるプロジェクトで5〜15分かかり、親密ではないプロジェクトで数倍かかります。

私の濃度が中断されたときにウェブが崩壊し始め、中断が数秒以上続いた場合、または私があなたに何をしたか、サーバーが先週ダウンしたときに、いくつかの他にも、やや複雑なもの(「考えることを必要としていますお客様に伝えますか?」)、ウェブは完全に崩壊します。中断が終わったら、ウェブ全体を、主にゼロから再構築する必要があります。

ウェブの構築に10分かかり、1時間に3回、たった2分間中断された場合、50分の時間をコーディングする代わりに、24分の作業しか完了しないことを理解する必要があります。これらの3つの小さな中断により、私の生産性は半分になりました


1

ニール・フォードは、それについて最後のデボックスについて語った。彼はそれについての本を書きました:生産的なプログラマー。彼は「フロー」ブレーカーに関するヒントを説明します。あなたが流れの中にいるなら、あなたは最高の集中ポイントにいます。しかし、中断された場合、フローに戻るには+ -20分かかります。

あなたがあなたの脳のランダムアクセスメモリがあなたが働いているものに関するデータを失い、あなたのRAMからデータを取り戻すために20分を必要とするあなたの流れから抜け出す場合、emを説明したいかもしれません;)


ランダムアクセスとメモリ損失の種類について話すことは、「技術的ではない」という目標に勝ると思います。
アンドラスシェペシャジ

0

通常、IMクライアントに次のステータスを付けます。

私は仕事中です。マルチタスクができないので、気にしないでください...

少なくともそれはとトリックをするようです

「Wazzzzzzup ?!」と30分ごとにSkypeでpingを送信する長年の友人


1
あなたは、あなたがオフラインまたはちょうどなど、あなたのIMクライアント、Skypeは、終了することができることを知っています
Spoike

@Spoike IMが仕事にも使用されている場合は一般的です。
エリックウィルソン14年

1
@EricWilson職場で使用する別のアカウントを登録し、Skypeで30分ごとにpingを送信する長年の友人に「Wazzzzzzup ?!」で知らせないでください。
ダニエルベック14年

@EricWilson:仕事に集中したい場合は、仕事に使用されていてもIM / emailをオフまたはログオフできます。私は働いた場所でそうすることができました。
スポイケ14年

0

説明を試すこともできますが、これを試すこともできます。

読む、映画を見る、計算する、何かを数えるなど、深い集中力が必要な何かをしている間、あなたそれらを中断します。それから、あなたが説明しなければならないのは、彼らがあなたに割り込んだとき、それはあなたにとってまさにそのようであるということです。トリックを行う必要があります。彼らが運転している間、またはそのようなものを気にしないでください:)。


明らかに誰かが私の問題へのアプローチを好まないのですが、唯一の方法は例によって説明することです。特に、トピックを説明している人にわかりにくい場合は。
ゴランジョヴィック

例で説明するようには聞こえません。「復getを手に入れる」ように聞こえます。
マーシー

0

説明しません。中断がスケジュールに6週間を追加したことをお伝えします。


4
この提案は、「失礼であり、人々はあなたを悩ますことをやめます」と同じ線に沿っています。それは効果的かもしれませんが、チームで働くには良い方法ではありません。
マーシー

私は、「チームで働く良い方法」が要件として指定されたとは思わない:)私が理解するように、質問は中断に向けられた-チームメンバーシップに直交するかもしれないし、そうでないかもしれない。
スローバック1986

0

オフィスで私がしていることは、オフィス内のさまざまな部門でホットデスクスポット(隠しスポット)を見つけることです。このように誰もあなたがどこにいるか邪魔することはできません。それが非常に重要でない限り、邪魔しないでください!


0

残りについてはわかりませんが、少なくともSkypeの場合は、「邪魔しない」モードを使用することをお勧めします。また、仕事でのコミュニケーションに使用する必要がある場合は、仕事で邪魔したくない人と共有しない2つ目の仕事専用アカウントを持っています:)


0

複雑にする必要はありません。「私は集中力が必要なものに取り組んでいます。これをメールに入れることはできますか。ここで終わったらすぐに見ることを約束します。」

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.