Прерванный программист
sdfgh153 — 18.06.2012
На прошлой неделе совершенно неожиданным образом на второй
виток популярности вышла статья «Не будите
программиста». Я её читал еще в 2009 году и был с
ней бурно согласен. Ну правда, хорошая же статья, очень приятная и
сразу объясняет почему мы, программисты, такие мерзкие,
раздражительные придурки. Все дело в том, что программист работает
в «потоке», вот оно что!
Да, действительно, существует особое функциональное
состояние мозга называемое «потоком», состояние полной
включенности в решение задачи. Это отнюдь не особое состояние
программистов, любой человек бывает в потоке несколько раз в день.
Входит и выходит из него без каких либо проблем. Когда ведет
машину, моет посуду, думает о жене, читает что-нибудь или
самозабвенно (это ключевое слово, кстати) поет в душе арию Самиеля
из «Der Freischütz». Нет никаких «мук вхождения в поток», а поток
есть. Как так?
Есть у меня ощущение, что чем сильнее ты хочешь попасть
в поток, тем позже ты туда попадешь. Единственный способ — начать
что-то делать. Дальше организм сам, не надо ему мешать. Сначала
отвалится ощущение времени, потом отвалится окружающий мир и
наконец отвалишься ты сам. Останется только задача и ничего вокруг.
Вот это он и есть.
Если в этот момент человека отвлечь, то он выйдет из
потока моментально. Если программист отбрехивается словами
«отстань, я потоке», значит он уже не в потоке,
просто ему очень обидно вылезать из продуктивного состояния и
он не осознает, что все уже
случилось.
А теперь, дорогие программисты, давайте вернемся в
реальность. Реальность коварна, из нее мы прямо сейчас можем
достать одну важную мысль, ради которой я вообще затеял писать этот
пост: в реальности вы никогда не сможете сделать так, чтобы вас не
будили.
Хоть запритесь в башне на острове, ваши собственные
черти будут отвлекать не хуже самого говорливого менеджера. Поток
можно разрушить почесав нос или чихнув. Или вспомнив о том, что в
принтере кончилась краска. Или что через три недели приедет тёща и
надо думать куда ее положить. Что теперь, анастезироваться перед
работой?
Невозможно приказать миру не выводить вас из потока, это
проигрышный вариант. Не проще ли научиться туда быстро
возвращаться?
Автор статьи «Work 2.0» утверждает, что можно привыкнуть
падать в поток и выбираться из него в кратчайшие сроки, как это
происходит с полифазным сном. Я склонен ему верить. В этом нет
ничего фантастичного, это дисциплина и упражнения, а не «дар» и не
«врожденная способность».
Я так пока не умею, я плохо вхожу в поток когда мне
этого хочется и иногда расстраиваюсь когда меня выдергивают. Но я
не считаю, что все задачи, которые мне приходится решать на работе
требуют «потока». Когда задача требует потока, хочу я этого или
нет, я туда попадаю, правда медленней, чем это возможно.
Что касается пассажа о сложных химерах, которые вылетают
из головы при выходе из потока, то это правда. Вот только относится
она к программистам, которые не умеют писать на бумаге. Самая
большая проблема смены деятельности это восстановление контекста
задачи. Именно поэтому весь контекст задачи за исключением того
фрагмента, над которым вы работаете прямо сейчас должен быть вне
головы. В блокноте, в багтракере, на стикноуте, да где угодно, лишь
бы не в голове.
Вы чините поиск и вдруг вспомнили, что вот этот вот класс надо
срочно отрефакторить, что обычно происходит? Лично я довольно часто
бросаюсь рефакторить забывая про поиск. Готов спорить, я не одинок.
А надо было просто взять ручку и написать в блокноте кривым
почерком, что такой-то класс надо срочно починить и продолжать
чинить поиск.
Вас позвали обедать, вы встали и все химеры разлетелись.
Это в лучшем случае они разлетелись, в худшем случае вы ловите их
за кривые лапки и пытаетесь удержать внутри своей головы. В итоге и
химеры покалечены и обеда вы не помните. Беда.
Если вы записываете контекст вне головы, то внутри у вас
всегда строго одна химера, с которой можно вести себя вежливо и
высадить в блокнот перед обедом. Она там перекантуется одна пол
часа, с ней все будет хорошо еще и обед усвоится лучше.
Целую, обнимаю, Кэп.
P.S. За время написания этого поста в потоке я был дважды,
чай пил один раз, говорил с коллегами трижды, переключал вкладку в
браузере пять раз.