Не Программируете Ли Вы Себя На Выгорание?



Не программируете ли вы себя на выгорание?

Программисты более подвержены выгоранию, чем представители других профессий? Если да, то какие факторы риска существуют и как с ними бороться? Данный текст не претендует на научную глубину или тщательность в подборе материалов и аргументов.

Это просто мысли автора на интересующую его тему.

Эта статья является переводом почта в моем англоязычном блоге.

Недавно ко мне в гости пришел мой хороший друг.

По профессии он психиатр.

В разговоре он упомянул, что в последнее время к нему обращается все больше программистов с диагнозом «выгорание».

Один мой знакомый признался, что мало понимает в сути работы программиста, но ему кажется, что стрессовых факторов в ней не больше, чем во многих других.

«Чем ваша профессия отличается от других, что так часто приводит программистов к выгораниюЭ» он спросил.

После нашего разговора я немного покопался в Интернете, но не нашел статистического подтверждения эмпирическому предположению моего друга о том, что программисты чаще других страдают от выгорания.

Тем не менее, я нашел несколько пугающих фактов о масштабах выгорания в Германии.

Подробности вы найдете в исходное сообщение .



Откуда берется стресс у программистов?

Я очень далек от психиатрии, но программированием и архитектурой программных систем занимаюсь более 40 лет. Несколько моих коллег страдали от выгорания.

Поэтому меня заинтересовал вопрос: какие конкретно профессиональные факторы могут спровоцировать выгорание программистов? Вот моя линия рассуждений.



Как спят программисты?

Наша жизнь делится на сон и бодрствование.

Начнем со сна.

Существует множество профессий, где люди работают посменно в разное время суток, со сменами разной продолжительности, или спят в состоянии постоянной готовности (английский термин on-call и немецкий – Bereitschaft).

Среди этих профессий – близкая нам профессия системного администратора.

Новое поколение программистов (так называемые DevOps) пострадало больше, чем «классические» программисты.

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

Но в целом профессия программиста не несет в себе риска нарушения или неадекватного сна.

Итак, это не сон.



Необщительные программисты

Время нашего бодрствования делится на рабочее и нерабочее.

Давайте сначала разберемся с нерабочим временем – вечерами после работы и выходными.

Люди проводят это время с близкими людьми или в одиночестве, посвящая его своим хобби, потребляя информацию из Интернета, книг, телевидения, а также спорту, прогулкам и т. д. По моей оценке, программисты — менее общительные люди, чем представители других профессий.

Это хорошо видно хотя бы на конференциях, где присутствуют и программисты, и менеджеры, а также на компьютерных выставках.

Представители этих двух групп не смешиваются, как масло и вода.

В перерывах между встречами и на вечерних мероприятиях менеджеры активно заводят новые контакты, возобновляют старые, флиртуют или просто наслаждаются жизнью.

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

Я думаю, вы согласитесь со мной в этом наблюдении.

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

Итак, в поисках факторов риска мы выбрасываем и свободное время.

Давайте теперь посмотрим на работу.



Как другие

Думаю, можно предположить, что факторы риска, связанные с работой, можно разделить на две группы – связанные с коллегами и связанные с «рабочим материалом».



Проблема не в команде

Понятно, что в команде программистов могут возникнуть все те стрессовые факторы, которые возникают в рабочих коллективах - моббинг, изоляция, недооценка, засилье любимцев начальника и т.д. Но в командах программистов нет особенностей, свойственных командам с уставной иерархией.

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

).

Таким образом, в этих аспектах работа программистов мало чем отличается от других «нормальных» профессий.

Отбросим и этот аспект.

Проблема в материале

Итак, остается «материал».

Это означает, чем занимается конкретный профессионал в своей работе.

Для хирурга – это человеческое тело, для учителя – студенты, для механика – металл, для программиста – программный код. В отношении материала хотелось бы выделить следующие аспекты:

  • Необратимость ошибки
  • Неизбежность ошибки
  • Невозможность «сетевой» работы.

  • Скорость наступления «расплаты».

Итак, давайте рассмотрим эти аспекты по порядку.



Необратимость ошибки

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

Ошибки хирургов могут быть еще более трагичны.

У программистов такого нет — перепишите не те строчки кода, и мир снова станет правильным.

Мы отбрасываем этот аспект.

Неизбежность ошибки

В некоторых профессиях допущенные ошибки устраняются «самостоятельно».

Правильнее было бы сказать, без участия человека, допустившего ошибку.

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

Ученик плохого учителя может усвоить материал самостоятельно, либо родители могут нанять ему репетитора.

В программировании такого почти никогда не происходит. Исключение составляют случаи, когда коллега замечает ошибку и тем временем исправляет ее, или внешние условия меняются так, что ошибка не проявляется.

В большинстве случаев рано или поздно наступит момент, когда ошибка проявится.

Конечно, лучше раньше, чем позже.

Программисты это знают. И это их постоянно беспокоит. Итак, мы нашли первый фактор риска, который специфичен для профессии программиста и редко встречается в других профессиях.



Неспособность «забить»

В некоторых профессиях может быть даже разумно подождать, пока «проблема не разрешится сама собой».

Это знает любой бюрократ. А там, где задачи или зоны ответственности четко не определены, можно «подхватить», и работу сделает кто-то другой.

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

Например, так: Вас отправили возглавить новое подразделение.

Вы видите много людей, некоторые из которых явно пугливы.

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

Рецепт: найдите самого занятого и продуктивного человека и поручите это ему.

Сеть может испортить работу, но эта обязательно справится.

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

Поэтому в среднесрочной и долгосрочной перспективе «неттинг» негативно влияет на отношение к работнику.

Современные инструменты вроде Jira и Git «безжалостно» помогают команде и менеджерам в этом деле.

В краткосрочной перспективе еще хуже.

Любой программист знает, что необходимые решения принимаются в состоянии высокой концентрации и творческого тонуса.

Если они приехали — путь свободен и дальше остаётся только их реализовать и написать тесты (а ещё лучше сначала написать тесты, а потом их реализовать).

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

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

).

Мы добавляем этот фактор риска в наш список.



Скорость наступления «расплаты»

По этому показателю профессия программиста достаточно уникальна и сравнима с профессиональным спортом.

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

Современные методы и инструменты программирования таковы, что IDE мгновенно указывает на синтаксические ошибки.

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

В отличие от футболиста, программист не будет освистан публикой за свой «промах».

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

Для программиста это длится полную рабочую неделю.



Исторический экскурс: Реальная история из 70-х годов

В связи с этим мне вспомнилась одна история.

Когда я только начинал свою профессиональную деятельность в Вычислительном центре Сибирского отделения Академии наук в Академгородке, там вычислительные ресурсы распределялись между подразделениями «в режиме разделения времени».

Это выглядело вот так.

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

(Тогда их называли ЭВМ).

Наши задания мы подготовили в виде колод перфокарт. Когда наступало наше временное окно, лаборант брал первую колоду из нашей стопки и вставлял ее в устройство чтения перфокарт. Компьютер обработал его и отправил сигнал лампочкой.

Принтер распечатал результат на бумажной ленте.

Лаборантка взяла следующую колоду.

и так повторялось до тех пор, пока не закончилось временное окно.

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

Тонкость была в том, что если в предыдущем отделе колод было мало или они обрабатывались быстро, то колоды нашего отдела могли быть обработаны раньше.

Такое случалось крайне редко, но однажды мы заметили, что нам систематически «везет».

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

(Сегодня это назвали бы DSL — доменно-ориентированный язык).

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

Власти, планирующие ресурсы, не знали об этом споре и выделили для него окна на несколько месяцев вперед. Чем мы невольно воспользовались.

Этот талантливый человек писал, печатал на перфокартах, тестировал (все мы тогда умели читать и понимать «дырочный» язык перфокарт не хуже русского) многие тысячи строк кода без единого прогона.

Но.

он проиграл спор.

При первом запуске было несколько ошибок.

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

Я программирую постепенно и запускаю тесты после написания нескольких десятков строк кода.

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

Но преимущества современного метода не абсолютны.

Возможность быстро проверить код отбивает желание глубоко и всесторонне его продумывать.

Но вернемся к нашему аспекту.

На мой взгляд, средняя скорость, с которой программисты «расплачиваются за свои ошибки», — одна из самых высоких среди всех профессий.

И это может быть одним из основных профессиональных факторов риска стресса.



Давайте подведем итоги

Итак, сформулируем основные специфические стрессовые факторы для программистов:
Программисты проводят большую часть своего рабочего времени, борясь со своими ошибками.

Код, который они только что написали, постоянно расстраивает их ошибками.

Программисты знают, что почти любая ошибка, которую они допускают, рано или поздно проявится.

Ожидание этих проявлений угнетает их.

Как известно, в спокойном состоянии человеческий мозг тратит 20% энергии, потребляемой всем телом.

При решении сложных интеллектуальных задач его доля возрастает до 40%.

Программисты вынуждены постоянно работать в изнурительном режиме высокой творческой отдачи и психологической концентрации.



Ну и что? Как избежать стресса? (Или как начать новую жизнь в новом году)

Как я уже отметила, я далека от психолога.

Я также не пытаюсь отобрать хлеб у своего друга, его коллег, авторов многочисленных книг и фильмов на эту тему.

И все же, рискну дать несколько простых советов.

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

Тогда мой совет может быть вам полезен.

  1. Больные герои никому не нужны.

    Помните, что для достижения результатов необходимо хорошее физическое самочувствие и творческие способности.

    Если их нет, нет и результата.

    Вы весь день плохо себя чувствовали, и ваш код плохо написан.

    Не беспокойтесь об этом вечером.

    Не пытайтесь закончить то, что не сделали в течение дня дома, с термометром под мышкой.

    Лучше пейте чай с медом и ложитесь спать пораньше.

  2. Правильная смесь.

    Программирование можно сравнить с прыжками в длину.

    Только прыгун сначала бегает всё быстрее и потом прыгает, а у программиста есть инсайт-решение (прыжок) и тогда он выполняет необходимые рутинные операции.

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

  3. Научитесь расслабляться в течение рабочего дня .

    Менеджеры проектов, особенно крупных, склонны переусердствовать с встречами, от которых программистам мало пользы.

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

    Подумайте о чем-то своем, посылая болтовню по второстепенному пути сознания.

    Научитесь принимать на лице задумчивое и заинтересованное выражение.

  4. Планируйте ежедневный успех.

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

    В крайнем случае, организуйте свои планы на день так, чтобы еще была надежда что-то «закруглить» до конца рабочего дня.

  5. Завершите рабочий день победой.

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

    Скорее всего, «батарейки» в вашей голове уже сели.

    Может быть, у вас накопилась парочка организационных задач, например отчет о командировке? А если вам нужно уйти через 5 минут, чтобы успеть на поезд, выключите компьютер и не пытайтесь написать еще одну строчку.

    Написанная строка, скорее всего, ничего не даст, а вот опоздание на поезд разозлит вас на самого себя.

    И самое главное, если вы задержитесь на работе еще на два часа и более, решение, скорее всего, не придет. Но по дороге домой оно вполне может прийти.

    Я проверял это на себе много раз.

Я повторю это еще раз.

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

Мне было бы очень интересно узнать ваше мнение.

Поэтому прошу Вас ответить на вопросы ниже.

А если вам не нравятся мои доводы, то отразите, пожалуйста, свои возражения в комментариях, а не минусованием статьи.

Ведь Новый год уже не за горами.

Иллюстрация автора «Кошмар программиста на JavaScript» В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

«Эмоциональное выгорание коллег» 67,98% Мне приходилось наблюдать эмоциональное выгорание у некоторых коллег 121 32,02% Мне не приходилось наблюдать эмоциональное выгорание у коллег 57 Проголосовали 178 пользователей.

53 пользователя воздержались.

В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

«эмоциональное выгорание среди программистов в целом 40% Профессия программиста с точки зрения эмоционального выгорания опаснее других профессий 66 60% Профессия полицейского, хирурга и т.д. гораздо опаснее, чем профессия программиста» с точки зрения эмоционального выгорания 99 Проголосовали 165 пользователей.

59 пользователей воздержались.

Теги: #выгорание #выгорание #здоровый образ жизни #программирование #управление персоналом

Вместе с данным постом часто просматривают: