Если вы просто рассмотрите вторую часть моего вопроса: «Почему разработчик не должен быть прерван во время написания кода», этот вопрос неоднократно обсуждался умными людьми. Хек, даже соучредитель SO Джоэл Спольски, написал в своем блоге сообщение о том, как «попасть в зону» и «быть выбитым из зоны», и почему для участия в сложных соревнованиях требуется в среднем 15 минут, Задачи, связанные с разработкой программного обеспечения. Поэтому я думаю, почему это было установлено.
Меня интересует, как объяснить все это кому-то, кто не знает bean-компонентов о Beans (я имею в виду разработку программного обеспечения). Как сказать жене, или забавному парню из бухгалтерии на рабочем месте, или давнему другу, который каждые 30 минут пингует тебя по скайпу с помощью «Wazzzzzzup ?!», что все прерывания оказывают гораздо более глубокое влияние на твою работу, чем очевидные 30 секунд, которые они взяли из вашего времени. Очевидно, что вы не можете объяснить это предложениями типа «Я должен манипулировать многими именами переменных в моей кратковременной памяти», если вы не хотите стать целью пустых взглядов или дружеского оскорбления.
Я хотел бы иметь возможность объяснить все это не-разработчикам таким образом, чтобы они четко поняли - не будучи оскорбительными, элитарными или слишком техническими.
РЕДАКТИРОВАТЬ: Спасибо всем за их отличные идеи. Я принял ответ EpsilonVector, так как его аналогия была наиболее близкой к моим первоначальным потребностям. Объяснение «засыпания» не является ни оскорбительным, ни техническим, к нему может относиться почти каждый, и последствия беспокойства во время засыпания или пребывания в зоне очень похожи: вы испытываете разочарование и «теряете» 15-20 минут времени.
источник
Ответы:
Попробуйте следующие аналогии: Первая: «Сколько времени вам нужно, чтобы заснуть?» «X минут» «Теперь представьте, что когда вы близки к тому, чтобы заснуть, кто-то входит и прерывает вас, сколько времени вам потребуется, чтобы заснуть сейчас? Те несколько секунд, которые у вас остались, или вам придется начинать снова» вернуться туда, где ты был? «Мне придется начинать снова» «Отлично. То же самое. Точно так же, как засыпание, мне требуется некоторое время, чтобы« погрузиться »в режим фокусировки, и мне требуется некоторое время, чтобы вернуться к нему, когда меня прерывают, кроме того, что я также забыл половину того, что я делал ".
Второй: «Вы знаете, что когда вы читаете книгу, вы« погружаетесь в нее »- через некоторое время вы даже не замечаете слов, вы блокируете все вокруг себя и полностью погружаетесь в ментальные образы». понимаете." "Да." "Сколько времени тебе нужно, чтобы добраться туда?" «Около X минут» «Теперь представьте, что когда вы погружены в книгу, кто-то входит и прерывает вас, сколько времени вам понадобится, чтобы вернуться к этому? Это произойдет немедленно или вам придется начинать снова» вернуться туда, где ты был? «Мне придется начинать снова» «Отлично. То же самое. Так же, как и с чтением, мне требуется некоторое время, чтобы« погрузиться »в режим фокусировки, это так же раздражает, когда кто-то выбивает меня из этого,
источник
Я не думаю, что состояние мечтательности, которое описывает Джоэл, является техническим. Это тот же сдвиг правого полушария, который любой испытывает, когда рисует или попадает под действие действительно хорошей книги. («Рисование на правой стороне мозга» Бетти Эдвардс прекрасно описывает это.) Каждый испытал такое чувство концентрации, когда вы не знаете о времени.
Я думаю, что снисходительно сразу представить себе, что это то, что понимают только технические люди, что концепция должна быть ошарашена, чтобы ее могли понять не разработчики. Просто объясните простым языком - они получат это.
источник
Перенесите свой внутренний поток на вербальный ввод-вывод, т. Е. Оборачивайтесь, когда вам мешают, продолжайте бормотать код и смотреть на среднее расстояние, пока они не сдадутся и не уйдут. Если они говорят, просто бормочите громче.
источник
Скажите им, что кодирование (или вставьте здесь другую высококонцентрированную активность) похоже на то, что вы цирковой артист, играющий вращающиеся тарелки .
Сначала вы вращаете одну пластину на палочке, начинаете вращаться, затем начинаете вращать вторую пластину, начинаете вращаться, возвращаетесь к первой пластине, даете ей немного дополнительного вращения, чтобы она продолжала вращаться, затем начинаете вращать третью пластину. , начните, затем вернитесь ко второй пластине, немного дополнительного вращения, дополнительное вращение первой пластины, дополнительное вращение третьей пластины, затем начните вращение четвертого и т. д. и т. д.
Затем звонит телефон и все тарелки падают.
Состояние потока исчезло. Теперь вы должны начать все сначала. Получить одну тарелку крутится ...
Мне нравится думать о каждой пластине как о части данных, переменных, концепций, состояний и т. Д., Которые вы должны поддерживать в своей голове.
источник
Несколько месяцев назад я велел кому-то войти в мой куб и вытащить наушники, пока я кодировал. Помимо внутренней ярости, мой подход состоял в том, чтобы объяснить, что часто программисты глубоко погружены в логическое мышление, которое требует другого и концентрированного подхода к мышлению, и что внезапное прерывание может действительно испортить мыслительный процесс. Это не случилось с этим человеком снова, так что, возможно, это сработало. Еще одна вещь, которую вы могли бы рассмотреть, это знак занятости / свободного. У меня есть друг, который выполняет алгоритмы, и у него есть двухсторонний знак, на котором написано «Кодирование - не прерывайте» с одной стороны и «Свободный чат» с другой. Устранение двусмысленности - вот ключ.
источник
Хорошо, я добавляю свой собственный ответ (я знаю, что это немного глупо, но, возможно, это проливает некоторый дополнительный свет на то, к чему я стремился).
Я сказал следующее тому, кто недавно прервал меня в неподходящее время: «Разработка программного обеспечения - это то же самое, что впервые в жизни управлять автомобилем на очень оживленной дороге. Все ваше внимание сосредоточено на руле, педалях и автомобилях. спотыкаясь вокруг вас, и у вас просто не остается лишнего внимания для приятного чата. Если вы начнете сосредотачиваться на том, о чем идет речь, вы непременно потеряете контроль над машиной, и в итоге вы окажетесь в несчастный случай".
Это было то, к чему человек мог относиться, но это далеко от хорошей аналогии. Если меня прервут, последствия будут сильно отличаться от несчастного случая. Я занимаюсь разработкой SW уже два десятилетия, так почему я сравниваю это с тем, что делается впервые. И так далее.
источник
« Mihaly Csikszentmihalyi on flow » - это хорошая беседа TED об этой идее быть действительно продуктивной в определенных условиях, которые могут или не могут понравиться людям. Не забывайте, что для некоторых людей они, возможно, никогда не захотят понять объяснение, и это похоже на рекурсивное избиение мертвой лошади до бесконечности.
источник
Я называю это трансом программистов. Здесь есть много хороших аналогий, что еще, а? Как было сказано ранее, программист мысленно будет перемещаться по нескольким различным логическим потокам, пока не появится правильный. Затем он записывается в код и сохраняется на компьютере.
Итак, скажем, вы пишете курсовую работу или важный документ. Мысли текут в слова в компьютер, но вы еще не сохранили изменения. Затем пуф, питание отключается или компьютер выходит из строя. Возврат всего этого займет столько же времени, сколько займет оригинал. (У скольких из нас, старых таймеров, ЭТО произошло?)
Это то, что происходит с кодом в вашей голове при прерывании. Мысли так же хрупки, как дым. Если они еще не были спасены, и что-то приходит, чтобы нарушить их, они ушли.
источник
Уважаемый уважаемый CoWorker! Стремясь стать более эффективным, я концентрируюсь на своей работе и отвечаю на вопросы по электронной почте в промежутках между работой, чтобы свести к минимуму перерывы, чтобы лучше обслуживать вас и название компании _ . Пожалуйста, напишите мне, и я свяжусь с вами, как только смогу. Спасибо.
источник
Если вы слушаете музыку, поставьте знак, который говорит что-то вроде
Это эффективно только в том случае, если кто-то читает, а наушники не всегда включены.
источник
Я думаю об этом как о большой паутине сложных связей, которые я должен создать в своем сознании, о структуре взаимосвязанных отношений, которые влияют друг на друга различными, не всегда очевидными способами, и все они должны быть поняты и четко сохранены. в фокусе, как я пишу код. Создание этого веб-сайта занимает от 5 до 15 минут в проекте, с которым я достаточно хорошо знаком, и в несколько раз - в одном менее интимном.
Когда моя концентрация прерывается, сеть начинает разрушаться, и если прерывание длится более нескольких секунд, или мне нужно подумать о какой-то другой, даже немного сложной вещи («Когда сервер вышел из строя на прошлой неделе, что вы сделали скажи клиенту? "), сеть совершенно рушится. Когда перерыв закончится, мне придется заново создавать всю сеть, в основном с нуля.
Если на создание сети у меня уходит 10 минут, а меня прерывают всего на 2 минуты три раза в час, вы должны понимать, что вместо того, чтобы кодировать 50 минут в час, я выполняю только 24 минуты работы. Эти 3 крошечных перерыва сократили мою производительность вдвое .
источник
Об этом Нил Форд рассказал в прошлом Devoxx. Он написал книгу об этом: продуктивный программист. Он объясняет советы о выключателях потока. Если вы находитесь в потоке, вы находитесь в самой высокой точке концентрации. Но если вас прерывают, потребуется + -20 минут, чтобы вернуться в ваш поток.
Возможно, вы захотите объяснить им, что если вы выходите из потока, память произвольного доступа в вашем мозге теряет данные о том, что вы работаете, и вам нужно 20 минут, чтобы вернуть данные в оперативную память;)
источник
Я обычно ставлю следующий статус своим IM-клиентам:
По крайней мере, это похоже на трюк с
источник
Вы можете попытаться объяснить, но вы также можете попробовать это:
Вы прерываете их , когда они делают что-то, что требует глубокой концентрации, будь то чтение, просмотр фильма, подсчет или, что еще лучше, подсчет чего-либо. Затем все, что вам нужно объяснить, это то, что для вас это точно так же, когда вас перебивают. Должен сделать свое дело. Только, пожалуйста, не беспокойте их, пока они едут или что-то в этом роде :).
источник
Я не объясняю Я любезно сообщаю им, что перерыв только добавил 6 недель к графику.
источник
Что я делаю в офисе, так это нахожу горячие точки (укрытия) в разных отделах офиса, так что никто не знает, где вы находитесь, и не может вам мешать, но если это не вариант, просто получите знак и объясните, что если это не имеет жизненно важного значения, не беспокоить!
источник
Об остальном я не знаю, но для Skype, по крайней мере, я бы предложил использовать режим «Не беспокоить». И если вы должны использовать это для общения на работе, имея вторую учетную запись только для работы, которой вы не делитесь ни с кем, вы не хотите мешать вам на работе :)
источник
Это не должно быть сложным. Что-то простое и не враждебное: «Я работаю над чем-то, что требует большой концентрации. Можно ли это поместить в электронное письмо? Я обещаю посмотреть на него, как только закончу».
источник