Как объяснить непрофессионалу, почему разработчик не должен быть прерван во время написания кода? [закрыто]

92

Если вы просто рассмотрите вторую часть моего вопроса: «Почему разработчик не должен быть прерван во время написания кода», этот вопрос неоднократно обсуждался умными людьми. Хек, даже соучредитель SO Джоэл Спольски, написал в своем блоге сообщение о том, как «попасть в зону» и «быть выбитым из зоны», и почему для участия в сложных соревнованиях требуется в среднем 15 минут, Задачи, связанные с разработкой программного обеспечения. Поэтому я думаю, почему это было установлено.

Меня интересует, как объяснить все это кому-то, кто не знает bean-компонентов о Beans (я имею в виду разработку программного обеспечения). Как сказать жене, или забавному парню из бухгалтерии на рабочем месте, или давнему другу, который каждые 30 минут пингует тебя по скайпу с помощью «Wazzzzzzup ?!», что все прерывания оказывают гораздо более глубокое влияние на твою работу, чем очевидные 30 секунд, которые они взяли из вашего времени. Очевидно, что вы не можете объяснить это предложениями типа «Я должен манипулировать многими именами переменных в моей кратковременной памяти», если вы не хотите стать целью пустых взглядов или дружеского оскорбления.

Я хотел бы иметь возможность объяснить все это не-разработчикам таким образом, чтобы они четко поняли - не будучи оскорбительными, элитарными или слишком техническими.

РЕДАКТИРОВАТЬ: Спасибо всем за их отличные идеи. Я принял ответ EpsilonVector, так как его аналогия была наиболее близкой к моим первоначальным потребностям. Объяснение «засыпания» не является ни оскорбительным, ни техническим, к нему может относиться почти каждый, и последствия беспокойства во время засыпания или пребывания в зоне очень похожи: вы испытываете разочарование и «теряете» 15-20 минут времени.

András Szepesházi
источник
36
Пусть они начнут с 0 и посчитают до очень большого числа, посередине взгляда! Белка!
Тим Пост
8
Конечно, имеет отношение к большинству профессий, попробуйте остановить хирурга в середине потока.
Оз
24
сойти со скайпа на работе.
Джош
6
«без обид» я знал, что где-то есть подвох. :)
biziclop
7
@Josh На работе мы используем Skype для межгородской связи. Нам нужно это открыть. У меня есть отдельный рабочий аккаунт, но вы все еще сталкиваетесь с этими проблемами.
Мэтью Шарли

Ответы:

124

Попробуйте следующие аналогии: Первая: «Сколько времени вам нужно, чтобы заснуть?» «X минут» «Теперь представьте, что когда вы близки к тому, чтобы заснуть, кто-то входит и прерывает вас, сколько времени вам потребуется, чтобы заснуть сейчас? Те несколько секунд, которые у вас остались, или вам придется начинать снова» вернуться туда, где ты был? «Мне придется начинать снова» «Отлично. То же самое. Точно так же, как засыпание, мне требуется некоторое время, чтобы« погрузиться »в режим фокусировки, и мне требуется некоторое время, чтобы вернуться к нему, когда меня прерывают, кроме того, что я также забыл половину того, что я делал ".

Второй: «Вы знаете, что когда вы читаете книгу, вы« погружаетесь в нее »- через некоторое время вы даже не замечаете слов, вы блокируете все вокруг себя и полностью погружаетесь в ментальные образы». понимаете." "Да." "Сколько времени тебе нужно, чтобы добраться туда?" «Около X минут» «Теперь представьте, что когда вы погружены в книгу, кто-то входит и прерывает вас, сколько времени вам понадобится, чтобы вернуться к этому? Это произойдет немедленно или вам придется начинать снова» вернуться туда, где ты был? «Мне придется начинать снова» «Отлично. То же самое. Так же, как и с чтением, мне требуется некоторое время, чтобы« погрузиться »в режим фокусировки, это так же раздражает, когда кто-то выбивает меня из этого,

EpsilonVector
источник
14
+1 отлично, отлично, особенно "засыпающий". Именно такое объяснение я искал.
Андраш Шепешази
1
Может не помочь - я могу сразу же вернуться к нормальному сну ...
Арманд
1
@ Элисон, я не знаю, не могу, но есть много людей, которые не читают и, следовательно, не могут относиться ко второму пункту.
Мэтью Шарли
3
Люблю метафору засыпания, но я не буду использовать это, чтобы объяснить мою работу моей жене в ближайшее время! ;>
dthorpe
7
Не будите программиста alexthunder.livejournal.com/309815.html
Крис Нава,
30

Я не думаю, что состояние мечтательности, которое описывает Джоэл, является техническим. Это тот же сдвиг правого полушария, который любой испытывает, когда рисует или попадает под действие действительно хорошей книги. («Рисование на правой стороне мозга» Бетти Эдвардс прекрасно описывает это.) Каждый испытал такое чувство концентрации, когда вы не знаете о времени.

Я думаю, что снисходительно сразу представить себе, что это то, что понимают только технические люди, что концепция должна быть ошарашена, чтобы ее могли понять не разработчики. Просто объясните простым языком - они получат это.

duffymo
источник
17
По моему опыту, они не обязательно получают это - они могут принять это как факт, но все еще не могут иметь к этому отношение. Для большинства людей, которых я знаю, работа - это просто работа, которую можно приостановить или продолжить в любое время.
3
Не люди, с которыми я разговариваю. По моему опыту, каждый, кто выполняет работу, которая выполняет задачи, не связанные с рутинной работой, мог бы иметь отличные отношения. Может быть, вы говорите со слишком многими людьми, выполняющими рутинные задачи.
duffymo
3
@duffymo: Хм. Я не рассматриваю продавца, который пишет индивидуальное предложение для клиента, выполняющего рутинную задачу. Тем не менее, если я прерву его / ее, он / она потеряет максимум полминуты, пока не вернется на правильный путь. Это то, что я имел в виду - большинство работ намного легче приостановить / продолжить, чем у нас. ИМХО.
5
Это вопрос того, сколько государства вы потеряете. Программистам, как правило, нужно держать в голове целое состояние программы во время кодирования, но другие профессии, которые требуют больше написания, сохраняют состояние создаваемого документа. Какое состояние легче восстановить?
Майкл К
2
Я думаю, что многое зависит от того, действительно ли человек испытывает состояние потока во время его / ее работы (или свободного времени). Если они это сделают, они лучше поймут, что мы имеем в виду.
Петер Тёрёк
23

Перенесите свой внутренний поток на вербальный ввод-вывод, т. Е. Оборачивайтесь, когда вам мешают, продолжайте бормотать код и смотреть на среднее расстояние, пока они не сдадутся и не уйдут. Если они говорят, просто бормочите громче.

Питер
источник
16
LOL это хорошо, но, безусловно, приводит к разводу, если прервала жена.
Андраш Шепешази
Это определенно более быстрый и эффективный подход! : P
Робин Мабен
16

Скажите им, что кодирование (или вставьте здесь другую высококонцентрированную активность) похоже на то, что вы цирковой артист, играющий вращающиеся тарелки .

Сначала вы вращаете одну пластину на палочке, начинаете вращаться, затем начинаете вращать вторую пластину, начинаете вращаться, возвращаетесь к первой пластине, даете ей немного дополнительного вращения, чтобы она продолжала вращаться, затем начинаете вращать третью пластину. , начните, затем вернитесь ко второй пластине, немного дополнительного вращения, дополнительное вращение первой пластины, дополнительное вращение третьей пластины, затем начните вращение четвертого и т. д. и т. д.

Затем звонит телефон и все тарелки падают.

Состояние потока исчезло. Теперь вы должны начать все сначала. Получить одну тарелку крутится ...

Мне нравится думать о каждой пластине как о части данных, переменных, концепций, состояний и т. Д., Которые вы должны поддерживать в своей голове.

Dhaust
источник
13

Несколько месяцев назад я велел кому-то войти в мой куб и вытащить наушники, пока я кодировал. Помимо внутренней ярости, мой подход состоял в том, чтобы объяснить, что часто программисты глубоко погружены в логическое мышление, которое требует другого и концентрированного подхода к мышлению, и что внезапное прерывание может действительно испортить мыслительный процесс. Это не случилось с этим человеком снова, так что, возможно, это сработало. Еще одна вещь, которую вы могли бы рассмотреть, это знак занятости / свободного. У меня есть друг, который выполняет алгоритмы, и у него есть двухсторонний знак, на котором написано «Кодирование - не прерывайте» с одной стороны и «Свободный чат» с другой. Устранение двусмысленности - вот ключ.

n1reu
источник
16
Пока вы оставляете «Free to Chat» стороной разумное количество времени. Если сторона «Не прерывать» всегда активна, у вас также может не быть знака…
Дин Хардинг,
4
Кажется, это будет раздражать, когда нужно постоянно переворачивать знак.
Никто
3
Вы можете иметь Мыслящую шапку вместо знака. Всякий раз, когда вы надеваете свою Мыслящую шапку, люди не должны вас перебивать.
Муравей
3
Разве «бесплатно общаться» не означает (для менеджеров): «У меня недостаточно работы»?
Badgerr
8
На моем рабочем месте наш недокументированный индикатор «в зоне» - это наличие наушников. Босс сказал: «Даже если вы ничего не слушаете, наденьте их, если вы сосредоточены. Мы будем считать, что вы заняты».
Джелтон
12

Хорошо, я добавляю свой собственный ответ (я знаю, что это немного глупо, но, возможно, это проливает некоторый дополнительный свет на то, к чему я стремился).

Я сказал следующее тому, кто недавно прервал меня в неподходящее время: «Разработка программного обеспечения - это то же самое, что впервые в жизни управлять автомобилем на очень оживленной дороге. Все ваше внимание сосредоточено на руле, педалях и автомобилях. спотыкаясь вокруг вас, и у вас просто не остается лишнего внимания для приятного чата. Если вы начнете сосредотачиваться на том, о чем идет речь, вы непременно потеряете контроль над машиной, и в итоге вы окажетесь в несчастный случай".

Это было то, к чему человек мог относиться, но это далеко от хорошей аналогии. Если меня прервут, последствия будут сильно отличаться от несчастного случая. Я занимаюсь разработкой SW уже два десятилетия, так почему я сравниваю это с тем, что делается впервые. И так далее.

Андраш Шепешази
источник
1
Это хорошая аналогия. Просто удалите часть «первый раз» и подчеркните, что это очень оживленная дорога, с множеством перекрестков, светофоров, грузовиков и велосипедов, и все. Тем более, что перекресток хорош для представления всех решений, которые вы должны принять, не всегда зная, что может ударить вашу машину за углом.
Горан Йович
Я не думаю, что это хорошая аналогия, и я думаю, что вы признаете это сами, но если это заставит их уважать ваше время разработки, то используйте его.
Бернард
Это неплохо.
Марси
4
Просто добавьте, что сзади уже трое кричащих детей, которых вы пытаетесь игнорировать (все ваши собственные естественные отвлекающие факторы).
Бенджол
7

« Mihaly Csikszentmihalyi on flow » - это хорошая беседа TED об этой идее быть действительно продуктивной в определенных условиях, которые могут или не могут понравиться людям. Не забывайте, что для некоторых людей они, возможно, никогда не захотят понять объяснение, и это похоже на рекурсивное избиение мертвой лошади до бесконечности.

JB King
источник
+1 Я был в процессе написания ответа на Flow: en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser
+1 Помимо хорошего упоминания о потоке, я нахожу часть «рекурсивного избиения мертвой лошади бесконечной» просто смешной.
Андраш Шепешази
4

Я называю это трансом программистов. Здесь есть много хороших аналогий, что еще, а? Как было сказано ранее, программист мысленно будет перемещаться по нескольким различным логическим потокам, пока не появится правильный. Затем он записывается в код и сохраняется на компьютере.

Итак, скажем, вы пишете курсовую работу или важный документ. Мысли текут в слова в компьютер, но вы еще не сохранили изменения. Затем пуф, питание отключается или компьютер выходит из строя. Возврат всего этого займет столько же времени, сколько займет оригинал. (У скольких из нас, старых таймеров, ЭТО произошло?)

Это то, что происходит с кодом в вашей голове при прерывании. Мысли так же хрупки, как дым. Если они еще не были спасены, и что-то приходит, чтобы нарушить их, они ушли.

Р Хьюз
источник
Мне это нравится больше всего, потому что многие люди поймут его, и поскольку в нем достаточно выражений, чтобы вернуться к нему не потребуется 15 минут, это займет больше времени, чем в первый раз, и с худшими результатами.,
orbfish
3

Уважаемый уважаемый CoWorker! Стремясь стать более эффективным, я концентрируюсь на своей работе и отвечаю на вопросы по электронной почте в промежутках между работой, чтобы свести к минимуму перерывы, чтобы лучше обслуживать вас и название компании _ . Пожалуйста, напишите мне, и я свяжусь с вами, как только смогу. Спасибо.

user16784
источник
2

Если вы слушаете музыку, поставьте знак, который говорит что-то вроде

Headphones on? Please do not interrupt.

Это эффективно только в том случае, если кто-то читает, а наушники не всегда включены.

Ян Поттер
источник
Для меня это было бы наоборот. Слушание музыки и глубокая концентрация не идут вместе для меня.
CodesInChaos
2

Я думаю об этом как о большой паутине сложных связей, которые я должен создать в своем сознании, о структуре взаимосвязанных отношений, которые влияют друг на друга различными, не всегда очевидными способами, и все они должны быть поняты и четко сохранены. в фокусе, как я пишу код. Создание этого веб-сайта занимает от 5 до 15 минут в проекте, с которым я достаточно хорошо знаком, и в несколько раз - в одном менее интимном.

Когда моя концентрация прерывается, сеть начинает разрушаться, и если прерывание длится более нескольких секунд, или мне нужно подумать о какой-то другой, даже немного сложной вещи («Когда сервер вышел из строя на прошлой неделе, что вы сделали скажи клиенту? "), сеть совершенно рушится. Когда перерыв закончится, мне придется заново создавать всю сеть, в основном с нуля.

Если на создание сети у меня уходит 10 минут, а меня прерывают всего на 2 минуты три раза в час, вы должны понимать, что вместо того, чтобы кодировать 50 минут в час, я выполняю только 24 минуты работы. Эти 3 крошечных перерыва сократили мою производительность вдвое .

Мэтью Фредерик
источник
1

Об этом Нил Форд рассказал в прошлом Devoxx. Он написал книгу об этом: продуктивный программист. Он объясняет советы о выключателях потока. Если вы находитесь в потоке, вы находитесь в самой высокой точке концентрации. Но если вас прерывают, потребуется + -20 минут, чтобы вернуться в ваш поток.

Возможно, вы захотите объяснить им, что если вы выходите из потока, память произвольного доступа в вашем мозге теряет данные о том, что вы работаете, и вам нужно 20 минут, чтобы вернуть данные в оперативную память;)

Джефф
источник
Думаю, разговор о произвольном доступе и потере памяти превосходит цель «не быть техническим».
Андраш Шепешази
0

Я обычно ставлю следующий статус своим IM-клиентам:

Я на работе, и так как я не могу многозадачность, пожалуйста, не беспокойте меня ...

По крайней мере, это похоже на трюк с

давний друг, который пингует тебя по скайпу каждые 30 минут с "Wazzzzzzup ?!"

Yaneeve
источник
1
Вы знаете, что можете выйти из сети или просто выйти из своего IM-клиента, Skype и т. Д.
Spoike
@Spoike Нет, если IM также используется для работы, как это обычно бывает.
Эрик Уилсон,
1
@EricWilson Зарегистрируйте другую учетную запись для использования на работе, и не говорите давнему другу, который пингует тебя через Skype каждые 30 минут с помощью «Wazzzzzzup ?!»
Даниэль Бек,
@EricWilson: Если вы хотите сосредоточиться на работе в течение нескольких отрезков времени, вы все равно можете отключить или выйти из IM / электронной почты, даже если она используется для работы. Я был в состоянии сделать это в местах, где я работал.
Спойк
0

Вы можете попытаться объяснить, но вы также можете попробовать это:

Вы прерываете их , когда они делают что-то, что требует глубокой концентрации, будь то чтение, просмотр фильма, подсчет или, что еще лучше, подсчет чего-либо. Затем все, что вам нужно объяснить, это то, что для вас это точно так же, когда вас перебивают. Должен сделать свое дело. Только, пожалуйста, не беспокойте их, пока они едут или что-то в этом роде :).

Горан Йович
источник
Кому-то, очевидно, не нравится мой подход к проблеме, но иногда единственный способ - это объяснить примером . Особенно, если тема неясна для людей, которым вы ее объясняете.
Горан Йович
Это не похоже на объяснение на примере. Звучит как «отомстить».
Марси
0

Я не объясняю Я любезно сообщаю им, что перерыв только добавил 6 недель к графику.

Throwback1986
источник
4
Это предложение в том же духе, что и «хамите, и люди перестанут вас беспокоить». Это может быть эффективно, но не является хорошим способом работы в команде.
Марси
Я не верю, что «хороший способ работы в команде» был указан как требование :) Как я понимаю, вопрос был направлен на перерывы - которые могут быть или не быть ортогональными к членству в команде.
Throwback1986
0

Что я делаю в офисе, так это нахожу горячие точки (укрытия) в разных отделах офиса, так что никто не знает, где вы находитесь, и не может вам мешать, но если это не вариант, просто получите знак и объясните, что если это не имеет жизненно важного значения, не беспокоить!

kyndigs
источник
0

Об остальном я не знаю, но для Skype, по крайней мере, я бы предложил использовать режим «Не беспокоить». И если вы должны использовать это для общения на работе, имея вторую учетную запись только для работы, которой вы не делитесь ни с кем, вы не хотите мешать вам на работе :)

satuon
источник
0

Это не должно быть сложным. Что-то простое и не враждебное: «Я работаю над чем-то, что требует большой концентрации. Можно ли это поместить в электронное письмо? Я обещаю посмотреть на него, как только закончу».

Энди Лестер
источник