Комментарии 112
В принципе согласен. Но есть один момент, если вы придумываете что-то настолько сложное, на что надо переключаться много времени, то скорее всего это переусложнено. К книге не надо возвращаться 15 минут, продолжаешь читать там где закончил, хотя и лучше читать без отвлечений. Хороший код и контекст должен быть как книга - в него легко возвращаться. Код, написанный в состоянии т.н. потока, может представлять собой такую чушь, которую потом неделю разгребать надо.
К книге не надо возвращаться 15 минут
Это зависит от книги, зависит от времени, на которое вас прервали, но также зависит от степени СДВГ :)
А у СДВГ может быть степень?
Или она true/false?
Могут быть степени и разновидности, в зависимости от классификаций -- https://ru.wikipedia.org/wiki/Синдром_дефицита_внимания_и_гиперактивности
Состояние по ока связано не только с придумыванием, но и с сохранением контекста, условий, обнаруженных ограничений, связей и т.п.
Не обязательно придумывать сложное. Можно писать код, учитывая кучу нюансов, которве изначально могут быть не очевидны.
Опять же, можно писать с учетом будущих планов на развитие проекта, что сделает код не только чище, но и легче модифицируемым.
К книге не надо возвращаться 15 минут
Если это не учебник по квантовой термодинамике.
Было такое. Ходил на лекции по квантовой механике, потом пропустил пару лекций, когда вернулся, оказалось, что уже ничего не понимаю. Перестал ходить вообще. Перед зачётом полистал учебник, выхватил пару формул, их оказалось достаточно, чтобы сдать зачёт. Но квантовую механику до сих пор не понимаю.
по квантовой термодинамике?
это что?
Не то, чтобы я правда читал такой учебник, но перед тем как оставить коммент я проверил, что это существует.
Я читал такие книги где после пары абзацев задумываешься на пару минут, а иногда и перечитываешь. Просто читать развлекательную литературу и сложную научную - это разные процессы.
если вы придумываете что-то настолько сложное, на что надо переключаться много времени, то скорее всего это переусложнено.
иногда, чтобы придумать что-то простое - надо хорошенько подумать.
Верно, но вы же не можете выносить универсальную оценку. У всех работа разная.
(из прошлого опыта) наверно самая большая беда это угодить в команду к горе лидам с хаотичной разработкой и ручным управлением, где подчиненным день напролет непрерывно выносят мозг, особенно когда наряду с психопатией такой лид страдает выраженным нарциссизмом. Сразу валить пока не выгорел.
да, это прям беда. у меня на одной из первых работ был начальник нарцисс, который еще в эпоху СССР преподавал марксизм-ленинизм. То есть словоблудие было поставлено у него на поток :) И вот к концу рабочего дня пару - тройку раз в неделю у него случалось обострение, и он начинал отправлять сотрудников в командировку. А потом говорил, что лучше не надо - и все эти оформления с участием самого сотрудника и бухгалтера летели к черту :)
А вообще про микроменеджмент у нас тоже есть что почитать :) https://habr.com/ru/companies/netologyru/articles/831164/
В небольших конторах избежать этого не реально, а в больших все построено по тикетам и там то-же не айс...
Лично мне ближе вариант когда меня дергают, чем вариант когда за меня решают что именно мне делать прямо сейчас (строгая работа по тикетам).
В моем понимании выгорание быстрее наступает именно там где нет творчества, где ты с утра до вечера занят одним и тем-же и нет вот этих "ах, все пропало, надо все бросить и бежать на склад" (разумеется если это не слишком часто).
Дубль статьи опубликованной 3 дня назад..
Небольшая смена заголовка и комментариев больше.
Любопытно.
Кстати, в предыдущей статье помидор другой. :)
Я когда-то предлагал админам идею поиска ссылки на оригинал по Хабру, а воз и ныне там. Не раз уже помогло бы не попадать в такую ситуацию.
Значит, это выгодно.
Вполне возможно, что параллельный перевод. Искать, был ли уже такой перевод, очень неудобно.
текущая попала в топ статей от компаний за неделю, так я ее заметил. а та никуда не попала.
мир несправедлив
Переключатся между контекстами ПОЛЕЗНО, правда не слишком часто...
добавлю всего 2 пункта, но они перевешивают всю статью :)
никогда не используйте личный телефон/почту/месенджеры для решения рабочих вопросов.
никогда сразу не отвечайте на вопросы, даже от начальника, выдерживайте минимум 15 минут, а лучше планируйте время когда отвечаете, например в 10-00 утра потом в 13-00 а потом в 18-00, и соответственно планируйте свой процесс так, что-бы в это время "переключится".
Предлагаете купить второй телефон за свои деньги или немедленно уволиться, если вам не дали корпоративный телефон?
Лучше купить второй телефон за свои чем иметь расшатанную психику и испорченные отношения с личным окружением из-за психа на рабочие сообщения в нерабочее время
Если это чистая психология, то не вижу как это поможет. Все равно обычно надо часто быть на связи во нерабочее время - всякие инциденты, плановые активности в выходные типа деплоя большой системы и прочее.
Не надо. Если это не входит в оффер, или же вы сами не находите в этом дополнительный профит. Вся рабочая фигня вне работы просто отключается (в мозгу нет кнопки, а вот на девайсах есть).
Как мне кажется это технический костыль для плохой организации работы. При нормальной организации даже зная ваши личные контакты туда не будут ничего писать и тем более в нерабочее время за исключением каких-то редких исключительных ситуаций.
Осталось только работать при Нормально организации работы.
Скрытый текст
За сегодняшний выходной
в чат с одной организацией написал поставщик что он накосячил и просит предоставьте новые данные
в другом чате переписка на 20 сообщений
в другом чате порядка 20 сообщений о том как работают сервисы
написал сотрудник из другой организации по выполнению ранее отправленной инструкции
написал сотрудник из другой организации из-за того что ему не дал доступ его руководитель
в 21 час написал сотрудник из другой организации из-за того что ему не дал доступ его руководитель
И это не говоря что вчера была работа с 8:00 до 20-30, а в позавчера с 8:00 до 22:10
Я вам сочувствую и если вы программист, то из такого дурдома надо бежать. То что описано в спойлере - это работа для сотрудника поддержки и аналитика. Мне довелось поработать в поддержке и это тоже грустно, но как минимум это основная работа и она не сопровождается требованиями решать задачи по разработке и писать качественный код. И даже в таком случае она не должна сопровождаться постоянными переработками - но тут я не могу знать всего контекста вокруг.
Если Вам не выдали корпоративного - это их проблемма, не твоя. Если контору это не устраивает пускай ищет себе нового спеца который на это согласится.
У нас слава богу не рабство, и ПРОГРАММИСТУ (а речь именно о них) не так сложно найти новое место.
Вот у меня например сейчас реальная ситуация - на работе используется корп системема которая требует на мобильном устройстве установить программу. Я не устанавливаю (и не собираюсь) и вследствие этого не пользуюсь корп системой. Если компании нужно, что-бы я пользовался этой корп системой - то или пусть придумывают как можно ей пользоватся без установки приложения на личные телефоны сотрудников ли-бо выдают мне корпоративный.
Да при чем тут рабство? Вот я долго не могу найти работу, но мне ещё повезло, потому что нет всяких ипотек, кредитов и прочих больших расходов. А так-то я согласен, что если не хочется, то ворота открыты.
Вот я долго не могу найти работу
У каждого свои проблемы: кто-то не может нанять программиста с двадцатилетним стажем за миску риса, а кто-то не может найти работу эникейщика на 100К/наносек.
Речь про разработчиков. Условные 20 тыс даже в обмен на +1% эффективности, это выгодно.
Для кого-то это может быть вопросом принципа - ни копейки из своего кармана на нужды работы.
Эффективность ваша, результаты ваши, зарплата ваша, вам и решать. Если работодателя ваши результаты устраивают, вас тоже, то и решения вам не нужны.
Однако вы пишете «надо быть на связи в нерабочее время». Если программисту надо быть на связи, значит его код не работает нормально. Если критичных багов нет, вменяемый работодатель после работы писать не будет, у него тоже личная жизнь есть.
Если программисту надо быть на связи, значит его код не работает нормально.
1) он может отвечать за большую часть системы и за всю систему, посменно, на поддержке последнего уровня.
2) код любой большой системы не работает нормально и система периодически ломается.
Одно дело, отвечать. Другое, если правда на бою что-то чинить нужно, потому что сломалось, а подняться не может.
Код по настоящему большой системы на бою по выходным не чинят. В сбере, например, у программиста нет доступа к боевым серверам (с их слов на конференции).
К тому же, если система большая, то и разработчиков много. Если вы самое ответственное лицо за всю систему в IT-отделе на 100 человек, то никакой проблемы с корпоративным телефоном, ноутбуком или даже массажисткой не будет. Но ведь это не так, правда? С другой стороны, у пяти разработчиков система не такая уж большая.
Вы удивитесь, но не все программисты работают в Сбере. Более того, не все большие системы делаются в Сбере.
Одно дело, отвечать. Другое
Хоть двадцатое дело, но факт, что довольно часто по работе требуется 1) быть иногда на связи во нерабочее время, и 2) гораздо чаще требуется поставить или какой-то корпоративный софт на телефон, или вступить в рабочие чаты в обычных месенджерах. При этом никто телефон тебе не даёт.
И это факты из личного большого опыта, а не рассуждения.
Еще лучше, чтобы все знали об этом. А совсем идеально, ответить, что ответишь в течении часа например, и записать себе куда то, что нужно ответить.
совсем идеально, ответить, что ответишь в течении часа например, и записать себе куда то, что нужно ответить.
Чего ж тут идеального? И сам отвлёкся (не только не чтение, но ещё и на пометку отложенной задачи и на ответ об ответе, то есть и УЖЕ отвлёкся и поток пошёл прахом и сам себе подсознательное давление создал) и ответа не дал вовремя. Дурь какая-то несусветная.
Если уж позволил себя отвлечь и ответ не требует больше 2 минут, от ответил и забыл. А так ответ писать и через час возвращаться и ещё ра писать и целый час в памяти всё это держать. Вот делать людям нечего!
Классика же "Не будите программиста!"(с)
По моему мнению (но я интроверт), у каждого программиста должен быть отдельный кабинет, с закрывающейся дверью, окном и стенами для липких листочков. "Оупен спейсы" — зло страшное, когда нашу компанию купили американцы, они первым делом снесли несколько стен и засадили всех в один зал. Меня вот ровно на три месяца хватило, самых бесполезных месяцев моей жизни. Потом я снова перебрался в кабинет. В домашнем офисе — тоже самое, должна быть хоть маленькая, но отдельная комнатушка. Это притом, что я работаю в промышленном программировании, и иногда приходится работать на заводе, в шумозащитных наушниках, но это другое.
С другой стороны, а как тогда поболтать с коллегами? Иногда бывает полезно что-то обсудить, вполне возможно и отвлеченное от непосредственно выполняемой задачи. Но я скорее экстраверт)
Хотя надо сказать, что опенспейс - опенспейсу рознь. Самый некомфортный вид - это когда столы рядами просто выставлены, без всяких перегородок, без ничего. Не представляю как в таких условиях продуктивно работать, когда у тебя за спиной люди ходят постоянно.
поболтать на перерыве, обсудить на совещании, появилась гениальная идея, скинь в чат или емал. За более чем 10 лет работы где надо активно общаться с клиентами, полезность от прерывающих "поболтать" стремится к минус бесконечности
Как тогда поболтать с коллегами?
Отдельные кабинеты не исключают общей кухни, кулера и пинг-понга :)
Много лет работал в офисе, с коллегами особо не болтал вне работы. Зависит от типа характера.
Ну и опять же в контексте статьи вот это вот "поболтать" выглядит особенно иронично. Потому что внезапное желание коллеги немного поболтать - это то самое вырывание из контекста, которое намного сложнее проигнорировать чем письмо или сообщение в мессенджере.
Ну а какой иной смысл работы в офисе кроме социализации и неформальной коллаборации? По крайней мере, со стороны сотрудников, других плюсов не просматривается.
Отвлечение же коллег по пустому поводу, которые сотредоточены на работе в данный момент - это пожалуй больше похоже просто на неуважение. Такого тоже лучше избегать - правила элементарной вежливости.
и стенами для липких листочков
Листочки – для длинных, уникальных паролей? 😁
Вот именно. Как можно сосредоточиться в "open space" офисе, когда кругом движуха. Один месяц работы там и потом захочется сбежать оттуда.
Сильнее мешает биомусор с автомобилями и перфораторами за пределами рабочей зоны. Вот если бы они перестали жить, можно было бы и сосредоточиться.
Переключение между контекстами убивает эффективность разработчиков на корню.
Самое смешное, что это верно не только для программистов, но и, скажем, при изучении иностранных языков.
Что такое переключение между контекстами?
Про то, что близко вам, я писать не буду, напишу про то, что близко мне.
Почему мы плохо учим языки? В данном случае, иностранные. Потому, что постоянно переключаемся с контекста языка оригинала, на родной язык (хоть при работе с русским преподавателем / репетитором, хоть при чтении учебника для русскоговорящих). А это очень мешает мозгу погрузиться в новую языковую среду. К тому же, набор сухих грамматических правил очень скучен, а наш мозг зубрежку не слишком любит.
Какой выход? Говорю по собственному опыту. Всю жизнь учил французский язык, но не выучил и сотни слов. Чтобы решить проблему, написал собственную обучающую программу (моя статья на эту тему опубликована здесь). Потом начал готовить данные для нее. При подготовке обучающих материалов, неожиданно, пришел к выводу, что, если учить французский язык на французском языке, то эффект восприятия нового материала значительно лучше. Даже, описание правил произношения и грамматики, от носителей языка, достаточно увлекательно и интересно, просто потому, что это происходит «вживую» и неформально.
Но, как понимать иностранный язык, если ты его не знаешь? Оказывается, очень просто, должен быть синхронный перевод, но «для глаз», а не «для ушей». Родная речь не должна звучать от слова «совсем». Только быть в виде текста!
Это очень просто, но очень эффективно. Тем более, что моя программа позволяет работать в интерактивном режиме, причем, в разных вариантах.
Так что, определившись, наконец, после многих лет экспериментов, с концепцией подготовки обучающих данных, для изучения иностранного языка, я начал их готовить. Очень надеюсь, что, со временем, напишу статью, на Хабре, на эту тему.
Так что автор абсолютно прав: «Хотите эффективности? Не переключайтесь между контекстами!».
А все потому что надо научиться отключать уведомления по умолчанию.
Началось все с того, что я начал испытывать отвращение к чуть более сложным задачам. С какого-то момента осознал это и начал рефлексировать. Выяснил, что меня отвлекают примерно раз в час (в среднем. т.е. это может быть и 2 раза за час и раз в три часа). А вот подсознательно, мозг понимает, что нет смысла копать в глубокий контекст, потому что сейчас звоночек и все рассыпется, как карточный домик, поэтому будем экономить энергию.
Как решение - стал ставить себе кирпич, а корпоративные источники связи проверять, когда сам поставил себе перерыв. Попробуйте, это реально увеличивает продуктивность и снижает стресс.
Опять все эти псевдо-теории, основанные на ложных аналогиях с аккумуляторами, помехами, и каждому на свой вкус (про ману было лучше всего на мой вкус из этого цикла). Вы не можете провести A/B тестирование этих гипотез. У вас один мир, один мозг, один уникальный стейт относительно каждой уникальной задачи и один прерыватель ваших размышлений. Только вашему мозгу внутри контекста его сознательной внутренней обратной связи кажется, что результат решения проблемы был бы лучше, если бы прерывателя не было бы.
Можно ли это доказать?
А что именно надо доказать? Что если тебя отвлекают, то ты отвлекаешься? Что если ты отвлекаешься, то нужно сменить контекст? Что если отвлекают, то хуже работаешь?
Ничего из этого. Что ты можешь лучше работать, если не отвлекают.
Кажется, что это почти тоже самое, что "если отвлекают, то хуже работаешь", но выключаем LLM в голове. Последний тезис доказуем, если вас отвлекать максимум из возможного времени (100%), то работать вы не сможете, чтд. Он валиден.
А первый?
путано написали как-то, я не понял логику рассуждения.
Как могу. Вы написали "хуже", а для доказательства чего либо нужно это формализовать. Хуже, чем если бы вас не отвлекали? Тогда на помощь Байес, и нам всего лишь нужна априорная вероятность написать код хорошо при отсутствии отвлечения.
Я думаю, это тупиковый путь, пытаться все сводить к математическим доказательствам. Особенно для простых, понятных вещей интуитивно. Например, можно уйти в крайность и оспаривать утверждение, что "Если тебя ударили - тебе больно" и говорить, что раз нет математического доказательства, то это не так или под сомнением.
Или, что если вы не можете доказать, что вы думаете, то вы не думаете.
Ниже kenomimi приводит пример эмпирического опыта и на мой взгляд тут все очевидно.
Например, можно уйти в крайность и оспаривать утверждение, что "Если тебя ударили - тебе больно" и говорить, что раз нет математического доказательства, то это не так или под сомнением.
Нельзя же. Есть нервные окончания, наука примерно представляет, как они работают, это подтверждается кучей разных тестов начиная со всякого иглоукалывания гидр и морских огурцов. Даже если бы их не было, то можно было бы выделить контрольную и тестовую группы, одних бить, других не бить и измерить активность нужных секторов мозга. Короче, это утверждение как раз вполне доказуемо, при необходимости.
Так а с чем работать? Теории, прямо или косвенно, доказывающей гипотезу, я не видел, эксперимент не могу найти (ну то есть возможно что-то есть, вот это было бы интересно увидеть), доказательство крайнего случая очевидное, я его написал, переход в обратную сторону не очевиден.
Вдруг есть какой-то локальный оптимум количества отвлечений в час, который позволяет в среднем более эффективно решать задачи, требующие значительно большего, чем час времени? Интуитивно - да, вполне. Мне тоже не нравится вынужденно отвлекаться, но замечаю, что если не отвлекаться несколько часов, то с большой вероятностью ухожу в фрустрацию.
Может там вообще, какая-нибудь хитрая нейробиологическая штука есть, что при отвлечении, мозг в фоне сериализует ключевые моменты полученного промежуточного решения задачи, а потом повышает им значимость, относительно других артефактов.
А вы говорите, "если отвелекают, то хуже работаешь, шах и мат".
ну вот пример: https://kjl.name/papers/icse24.pdf. Я думаю, можно и еще что нагуглить :)
Можно ли это доказать?
Можно. Берем две группы тех же школьников с одинаковой успеваемостью, даем сложную долгую задачу. Одна группа без телефона и в тишине, вторую постоянно дёргаем, плюс даем телефон и разрешаем им развлекаться. Результат предсказуем. Дальше тест сразу повторяем, но обе группы сидят в тишине и без телефонов. Опять предсказуемо вторая группа покажет в разы ниже результат, так как будет намного более уставшая.
ну почему нет? можно работать, прерываясь раз в 20 минут, и потом посмотреть, что на выходе, замерить свой субъективный уровень усталости от этих переключений... мне где-то попадались описания психологических экспериментов с замеров времени на решение простых арифметических задач - там получалось, что если человека все время дергать, то он даже простые задачки по математике решает гораздо дольше и с ошибками...
вообще в плане тестирования A/B гипотез психологи и всякие нейробиологи еще те затейники :)
По большому счёту, все эти проблемы остро проявляются скорее при работе в строго офисном формате. В случае удаленки, вполне можно выставить статус "занят", чтобы не отвлекали. При гибридном формате, на дни работы из дома можно оставить наиболее сложные задачи, требующие концентрации. На офисные же дни, оставить задачи коммуникации с командой, различных согласований и задач, не требующих глубокой концентрации.
Все было хорошо, пока не появилось расписание, в крюотором толпа митингов и 3 блока по 1.5 часа для погружения на дно. 1.5 часа, Карл!
Каждое короткое сообщение, которое вы отправляете коллеге в Slack, отнимает у него 23 минуты продуктивной работы
Или наоборот – экономит несколько часов, а то и дней – если содержит решение проблемы, над которой коллега сейчас бьётся. А в общем случае в башке хорошего айтишника обычно стоит ось с поддержкой вытесняющей многозадачности.
Глупо спорить с переводом, но в статье нет ни малейшего обоснования ни исходных данных (ровно 23 минуты и никак иначе, really?), ни рекомендаций, набор голословных утверждений.
Спольски в книжке «Джоэл о программировании» пишет об этом же (глава 23 «Многозадачность придумана не для разработчиков»). Конкретные цифры, конечно, непонятно откуда взяты, да и они индивидуальны. Но я по своему опыту программирования знаю, для того, чтобы эффективно программировать, нужно отключать себя от внешнего мира по крайней мере на период выполнения некоторого более-менее значимого блока. Если меня может вырвать из контекста любое сообщение или звонок, результата не будет. Поэтому наиболее эффективно, если коммуникацию с внешним миром будут брать на себя менеджеры, и уже они, зная, влияет ли внешний сигнал на выполнение конкретной задачи, которой сейчас занят конкретный разработчик, будут иметь полномочия прервать его, осознавая все последствия такого шага.
Спольски в книжке «Джоэл о программировании» пишет об этом же
Да мало ли кто о чём пишет – нельзя же всякое печатное слово принимать на веру. В реальности это крайне индивидуально – есть люди, способные к быстрому переключению, и те, кому нужна полная концентрация на текущей задаче. Я вот вполне могу поддерживать до трёх технических чатов одновременно – проверено практически. Правда, сам не программирую уже давно – но тем не менее речь именно об обсуждениях, требующих глубокого погружения в тему.
Понимаете, не люблю, когда с большим апломбом и без малейшего обоснования выдаётся набор якобы универсальных рекомендаций, которым должен следовать каждый. А статья как раз из таких.
То есть вы уже давно не работаете на той позиции, на которой возникают описанные проблемы, следовательно, физически не можете столкнуться с этими проблемами, но при этом утверждаете, что этих проблем нет, они надуманы, а предлагаемые решения - неправильные? :)
Всё выглядит максимально логично. Экспертное мнение от практиков, так сказать.
Экспертное мнение от практиков, так сказать.
Ваш сарказм (это ведь был он?) мне не вполне понятен. Подозреваю, что Dr. Milan Milanović, пишущий:
Я работаю с командами разработчиков вот уже десять лет
тоже находится скорее на руководящей позиции – но его экспертность у Вас почему-то сомнений не вызывает. Почему так? У меня опыта заметно побольше – как в качестве программиста, так и руководителя, так что наши мнения как минимум равноценны.
И как, вам часто присылают сообщения в Slack, которые содержат решение проблемы, над которой вы прямо сейчас работаете? :) Не комментарий в issue или такстрекере, не пуллреквест, а короткое сообщение в мессенджере, серьёзно?
Если вас тегают в мессенджере, то это почти всегда либо менеджер, которому нужно обязательно убедиться, что вы отвлеклись от работы прямо сейчас и прочитали это архиважное сверхсрочное сообщение от него, либо коллега, который хочет решить с вашей помощью свою проблему, а не вашу.
Так что ситуация, с помощью которой вы пытаетесь оправдать отвлекающие сообщения, выглядит полностью высосанной из пальца. Сложно представить, даже теоретически, чтобы кто-то в мессенджере стучался, чтобы сообщить решение моей рабочей задачи.
Сложно представить, даже теоретически, чтобы кто-то в мессенджере стучался, чтобы сообщить решение моей рабочей задачи.
Мне несложно, если несколько человек работают над разными частями одной задачи и в курсе возникающих друг у друга проблем. У меня программисты нередко устраивают вероятно, вообще невообразимую с точки зрения автора вещь: групповые обсуждения в чатах – т.е. отвлекается не один человек, а сразу несколько. И это (сюрприз!) в конечном итоге ведёт к повышению общей эффективности команды. Если же рассматривать программиста как слепого исполнителя, которого ничего не интересует за рамками текущей задачи – то конечно, любые контакты отвлекают. У нас не так.
Вы подменяете понятия. Запланированные групповые обсуждения - это одно. А статья вообще о другом: она о частом переключении контекста из-за мусорных отвлекающих сообщений.
И кстати, в статье показано, что запланированное отвлечение не даёт такого негативного эффекта. Там вообще пол-статьи об этом. Так что складывается чёткое ощущение, что вы её либо не прочитали, либо не поняли, но сразу побежали спорить.
Советую послушать лекции С.В. Савельева, что бы вообще понять как работает мозг над задачей, что в нем вообще происходит, как увеличивается питание кровью областей мозга, как образуются связи, как умирают нейроны. Поймёте, что мозг человека не многохадачен, в принципе, по физиологическим особенностям,
Ахххахаха! Слово в слово воровство https://habr.com/ru/companies/spring_aio/articles/890146/ :). Интересно, а переводы защищены авторским правом?
"Разработчик програмного обеспечения" не только код пишет. Это часть работы, часть обязанностей - отвечать в Слаке на сообщения, и в целом общаться с людьми насчёт выполняемых задач.
Это девушки с писательной машинкой в середине 20 века могли автономно работать над набором текстов 8 часов 5 дней в неделю. Это было их работой основной.
Работа программиста - уже стала гораздо шире чем простой набор кода в редакторе. Любые действия, даже общение с нудными менеджерами или глупыми девушками-дизайнершами можно освоить, это не настолько сложно как кажется. Даже общение с людьми можно оптимизировать и делать максимально ефективным - см. "ПишиСокращай" Ильяхова (и другие его книги тоже, впринципе).
В целом кажется очевидным, что переключения контекста увеличивают время выполнения работы.
Про "переключение контекста" (не ИТ) есть история.
Скрытый текст
Несколько лет назад знавал я одного старшего смены на складе, который (с моей точки зрения) весьма странно раздавал указания грузчикам. Работает кто-то на одном конце склада, так он его посылает на другой конец (выгрузить фуру, к примеру), а с разгрузочной зоны мог послать грузчика на помощь в комплектации. Склад достаточно большой, идти из одного конца до другого можно минут десять, потом обратно, и так несколько раз за смену. Смысл подобного я так и не понял. Возможно, чтобы все были заняты и не сидели. Возможно, просто тупой начальник. С точки зрения грузчиков (сами рассказывали) им не было никакого смысла даже пытаться выполнить задание до конца, поскольку с большой долей вероятности чудесный начальник сдёрнет их до выполнения порученного. Соответственно, работа выполнялась много медленнее, чем могла бы, плюс к этому грузчики уставали от бесцельного перемещения по складу, что также не способствовало рабочему процессу.
После прочтения подобных статей, понимаю, что я не настоящий программист. У меня возвращение в работу не занимает 23 минут, я не придумываю сложных функций, на которых нужны часы обдумывания, и я не "замечали, как у вас путаются мысли, когда вы переключаетесь с чтения имейла на написание кода".
Где-то совсем рядом живут настоящие программисты, я с ними, может быть, даже знаком, но не подозреваю об этом.
Хайповать на тему "не мешайте разработчикам писать код" можно бесконечно, ну а более широкая тема ненависти к менеджерам и менеджменту вовсе даёт бескрайние возможности по набрасыванию на вентилятор.
Почему-то разработчики уверены, что вот если посадить их всех в отдельные тёмные кабинеты и разрешить вообще ни с кем и никогда не общаться, то вот тогдаааааа. Но на деле ни одно топовое приложение, ни один сервис, принесший создателям славу и богатства, так не написан. Такой метод работы в принципе занимает какую-то мизерную долю. Почему? Бизнес - это про умение считать затраты и максимизировать прибыль. Если бы эта схема действительно работала, все бы стремились к ней. Но она не работает. Поэтому, да, сообщения, письма, созвоны.
Плохо, когда рабочие процессы не настроены. Когда я работал проджектом, я говорил своей команде, что всех невалидных "отвлекаторов" нужно сдавать мне. А я уже объяснял этим гражданам, что по срокам могу ответить я, а какую-то инфу по проекту можно найти в документации. Но при этом я просил команду не игнорировать сообщения от других членов команды. Даже вот эта история про 23 минуты для возвращения в контекст можем сэкономить команде больше времени за счёт оперативной коммуникации и помощи.
Да, и ещё на тему "отключения от раздражителей". Личные соцсети и тп подпадают же сюда? Или сообщения от коллег рушат состояние потока, но мемас в в телеге от кореша - это норм?)
Очень верная и правильная статья. особенно иронично в ее свете смотрятся многочисленные споры об удаленке, где защитники офиса приводят как один из главных аргументов в его пользу то, что людей там можно постоянно гарантированно отвлекать и они от этого никак не смогут отвертеться никаким статусом "я занят". Причем отвлекать не только рабочими вопросами но и разнообразной болтовней ни о чем, которую тоже приводят в пример как преимущество.
Единственный спорный момент - это регулярные перерывы по технике помидора. Как по мне это те же самые вырывания из потока и подходят только тем, у кого работа состоит из большого количества коротких и разнообразных задач.
Тоже мне открытие - погружение в контекст отнимает много ресурсов. Хаха. Еще Генри Форд об этом знал и создал конвейер чтобы люди всегда работали в одном контексте.
у разработчиков, которых часто отвлекают, признаки умственной усталости проявляются намного раньше, чем у остальных
Только я прочитал «признаки умственной отсталости»?
Человеческий фактор. Ничего не поделаешь. Все что можно автоматизировать. И работать как работается
Как бы программисты не старались а все равно, нейронка напишет функцию быстрее. Скоро будут рассуждения 8 часов сна мешают дедлайну.
Давайте хоть кто-то побудет критиком.
Я вообще не считаю это большой проблемой. Нет, конечно лучше, когда программист спокойно трудится над одной задачей в удобном ему темпе. Но меня откровенно удивляют и даже немного шокируют заявления, которые есть в этой статье, например, навроде "Каждое короткое сообщение, которое вы отправляете коллеге в Slack, отнимает у него (разработчика) 23 минуты продуктивной работы." Это прямо противоречит всему тому, что я наблюдаю вокруг себя.
Я в IT уже 15 лет. До 2020 мы работали в офисах. Почти всегда это были openspace. Да, openspace - откровенно плохой способ организации рабочего пространства. Тем не менее, люди неплохо работали. Они точно работали хуже, чем если бы находились в идеальных условиях, но они работали на достаточно приличном уровне, имея не "одно сообщение в 23 минуты", а постоянные отвлекающие факторы.
Вообще, лучшие программисты, лиды, с которыми я имел дело, каждый день переключаются между многими задачами, иногда десятками. Это не мешает им быть лучшими. Скорее, даже есть обратная зависимость: лучших можно отвлекать 50 раз на день, и они всё равно остаются лучшими, в то время как новичок или просто человек, которого случайно занесло в IT, потом долго восстанавливает контекст.
Ну ладно, в массовой разработке, в индустрии нельзя ориентироваться на лучших, надо на средних. Но вот здесь и вмешивается то важное, о чём обычно не упоминают в подобных статьях про "идеальную работу программиста в вакууме" - это баланс. С одной стороны на чаше весов - супер-идеальные условия, в которых программист выдаёт 100% своей продуктивности. На другой - объём подготовительной и организационной работы, которую нужно провести, чтобы программист всегда находился в идеальных условиях, когда всё всегда понятно, никаких коммуникаций в течение дня не требуется, прод не ложится, экспертное мнение не нужно и т.д. и т.п. За "неидеальность" программист платит примерно 20% своей эффективности, но кто сказал, что это больше, чем все вышеназванные затраты?
Возьмите любую деятельность человека, которая занимает большие ресурсы мозга. Например, оживлённая беседа, спор на профессиональные темы. Вот вы ведёте монолог, и вдруг ваш визави задаёт вам один вопрос вне контекста, что-то о погоде. Вы что, правда выпадете на 23 минуты из беседы, пытаясь в голове восстановить цепочку аргументов? - Нет же, вы сделаете это за считанные секунды. Ладно, с поправкой на объём кода в IDE, может быть 2-3 минуты. Но не больше. Я сейчас руковожу командой, у меня как у лида огромное количество отвлекающих факторов в течение дня, однако я ещё пишу код, и кажется, не сильно отстают от себя самого, когда я был просто сеньор-разработчиком, ни по скорости выполнения задач, ни по качеству.
Подводя итог: откровенное преувеличение ужасов совместной работы смешит и немного раздражает. В конце концов, если вы не глухой интроверт, у вас большое количество отвлекающих факторов помимо рабочего мессенджера: сейчас многие подписаны на сотню-другую телеграм-каналов, постоянно слушают подкасты, а ещё мимоходом торгуют на криптобиржах. Идеального тихого мира никогда больше уже не будет. Да его и не было.
>работали на достаточно приличном уровне, имея не "одно сообщение в 23 минуты", а постоянные отвлекающие факторы.
При нормальной организации работы в офисе, а не тотальном бардаке - программиста и там не дергают постоянно. А если там бардак - то я сильно сомневаюсь в нормальной производительности.
> Скорее, даже есть обратная зависимость: лучших можно отвлекать 50 раз на день, и они всё равно остаются лучшими
А у меня совершенно иной опыт как и у многих других в этом обсуждении.
Люди как всегда бывают разными - а вот насколько много таких экстравертов вроде вас и ваших коллег которые продуктивно решают сложные задачи непрерывно отвлекаясь на разные дела - вопрос открытый.
>Например, оживлённая беседа, спор на профессиональные темы. Вот вы ведёте монолог, и вдруг ваш визави задаёт вам один вопрос вне контекста, что-то о погоде. Вы что, правда выпадете на 23 минуты из беседы
Оживленная беседа даже на профессиональные темы - это задача требующая гораздо меньшего сосредоточения, чем интеллектуальная работа.
> С одной стороны на чаше весов - супер-идеальные условия, в которых программист выдаёт 100% своей продуктивности. На другой - объём подготовительной и организационной работы, которую нужно провести, чтобы программист всегда находился в идеальных условиях, когда всё всегда понятно, никаких коммуникаций в течение дня не требуется, прод не ложится, экспертное мнение не нужно
Такое гипертрофирование - это скорее манипулятивный психологически-риторический прием.
Потому что между "вообще никогда не отвлекать" и "отвлекать постоянно и непрерывно" есть большой диапазон промежуточных состояний.
Ну и после общего выхода на удаленку после ковида нормальные условия очень часто есть по умолчанию и дополнительные усилия надо прилагать что условия работы ухудшить - например выгнать сотрудников угрозами в офис перебарывая их сопротивление.
Но имитация бурной деятельности и бессмысленная бюрократия именно так и работают, к сожалению.
Прилагать множество усилий для достижения вредных и бессмысленных целей.
> глухой интроверт, у вас большое количество отвлекающих факторов помимо рабочего мессенджера: сейчас многие подписаны на сотню-другую телеграм-каналов, постоянно слушают подкасты, а ещё мимоходом торгуют на криптобиржах. Идеального тихого мира никогда больше уже не будет. Да его и не было.
Вообще-то и был и есть и будет. Потому что все телеграм каналы переводятся в беззвучный режим и просматриваются в свободное время после работы и вместо подкастов сосредоточению гораздо лучше помогает пение птиц за окном или спокойная тихая музыка.
Грустно конечно, что такие простые вещи превращаются для многих во что-то немыслимое.
>Подводя итог: откровенное преувеличение ужасов совместной работы смешит и немного раздражает.
Люди могут быть разными и для многих из них это вовсе не преувеличение а очень жизненные ситуации. Подозреваю, что для большинства, хотя это конечно сложно замерить.
Я в целом достаточно стрессоустойчивый и вообще на своей волне всегда, но однажды я поработал на испытательном сроке в компании продажников, с которыми пришлось сидеть в одном кабинете и которые весь день отпрабатывали холодные звонки и обсуждали свои скрипты, количество продаж и просто всякую офисную чушь -- это настоящий ад программиста! До конца испытательного срока даже не было желания дорабатывать -- уволился. Пы.Сы. там еще главный начальник ИТ упорно любил ваниллаЖС, периодически попиливая самопальные местами глючные полифилы, а из фреймворков признавал только ExtJS, т.к. оно ему в наследство как кусок легаси досталось, причем что такое MVC/MVVM он не знал вообще. Так что кабинет продажников все-таки был не самой главной причиной.
А так чисто для себя -- очень долго не использовал виртуальные десктопы, но когда в хроме помимо своих парочки гмыл-акков еще добавилось несколько корпоративных -- раскидал все по столам, чтоб вообще на глаза даже не попадалось пока над чем-то одним работаю.
Вообще за 30+ лет опыта создается впечатление, что в мире программирования слишком раздулась мета-информация, а про бритву Оккама почему-то многие забыли вообще.
Хакатоны не плохо помогают отойти от всех этих SCRUM/agile с бестолковыми коллектиыными обсуждениями списков задач, которые итак у всех назначены, и перевести стиль работы в "дедлайн уже вчера!"
Походу, я всегда работал в хакатон-компаниях.
Про SCRUM слышал дважды. Один раз — когда наш менеджер обучился и рассказывал нам, как ещё может бывать. И второй раз, когда менеджер-удалёнщица называла этим словом утренние созвоны.
Сегодня утром у меня был дедлайн, поэтому пойду работать полночи, чтобы хоть к завтрашнему было сделано.
Переключение между контекстами убивает эффективность разработчиков на корню