Десять главных причин, которые делают программиста несчастным


    Счастье разработчиков (сбалансированный индекс по шкале положительного и отрицательного опыта)

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

    В соответствии с результатами опроса, опубликованными в марте 2017 года, разработчики программного обеспечения, в среднем, «слегка счастливы». Положительный индекс — хорошая новость для работодателей. Значит, усилия компаний не пропали зря. Но им ещё есть куда стремиться. Исследователи составили список основных причин недовольства программистов — эти факторы желательно свести к минимуму.

    Общие категории внешних причин недовольства
    Основная категория Подкатегории
    Люди (416) коллеги (206)
    менеджер (122)
    пользователь (49)
    Артефакты и работа с артефактами код и программирование (217)
    баги и исправление багов (194)
    техническая инфраструктура (151)
    требования (99)
    Факторы, связанные с процессом (544) без подкатегорий
    Другие причины (95) без подкатегорий

    Для проведения опроса исследователи выбрали наиболее релевантную шкалу положительного и отрицательного опыта (Scale of Positive and Negative Experience, SPANE), которая предполагает количественную оценку положительных и отрицательных случаев за последние четыре недели. Как показали предыдущие исследования, шкала SPANE способна объективно отразить положительное и отрицательное влияние факторов (то есть счастье) независимо от источника, уровня ментальной активации и культурного контекста. Шкала обеспечивает хорошие психометрические характеристики (валидность и надёжность), что было эмпирически показано как минимум в семи предыдущих экспериментах.

    Фактически, шкала SPANE состоит из 12 элементов, которые делятся на подкатегории положительного (SPANE-P) и отрицательного (SPANE-N) опыта. В каждом из них можно выбрать ответ от 1 (очень редко или никогда) до 5 (очень часто или всегда). Соответственно, SPANE-P и SPANE-N как сумма ответов принимают значение от 6 до 30. Затем эти рейтинги комбинируются, чтобы вычислить сбалансированный индекс по шкале положительного и отрицательного опыта (SPANE-B). Индекс SPANE-B может принимать значение от −24 по +24. Распределение результатов по итогу опроса 1318 разработчиков показано на диаграмме вверху. Среднее значение индекса счастья для программистов составляет +9,05. Минимальный показатель у одного разработчика −16, максимальный — +24.

    В опросе приняли участие специалисты из 88 стран. Чаще всего отвечали работники из США (24%), Индии (6%), Бразилии (6%) и России (5%). Среди опрошенных 993 человека именно профессионально работают программистами, ещё 15% являются студентами, остальные 10% имеют другие профессии — менеджер, исполнительный директор, технический директор, учёный и т.д. Но в целом опрос можно считать вполне репрезентативным: средний опыт разработки программного обеспечения у опрошенных составляет 8,29 лет, по медиане — 5 лет.

    Вдобавок к вычислению «индекса счастья» учёные провели дополнительный опрос с открытыми вопросами, чтобы выяснить конкретные причины недовольства программистов. Общие категории внешних причин недовольства приведены в таблице вверху. Внешние причины недовольства (1843 случая) встречаются в четыре раза чаще, чем внутренние причины (437), связанные с ментальным состоянием или собственным поведением программистов. Внутренние причины делятся на 22 внутренних фактора, которые не демонстрируют чёткой структуры. С другой стороны, внешние причины довольно чётко делятся на категории, приведённые в верхней таблице.

    А вот самое интересное — десять самых частых конкретных причин, которые делают программистов несчастными.

    Причина Категория Частота
    Застрять в решении проблемы собственное состояние 186
    Нехватка времени внешние причины → процесс 152
    Плохое качество кода и практики программирования внешние причины → артефакты и работа с артефактами → код и программирование 107
    Недорабатывающий коллега внешние причины → люди → коллеги 71
    Чувство несоответствия работе собственное состояние 63
    Обыденная или повторяющаяся задача внешние причины → процесс 60
    Необъяснимая ошибка в коде внешние причины → артефакты и работа с артефактами → код и программирование 57
    Плохой процесс принятия решений внешние причины → процесс 42
    Введённые ограничения на разработку внешние причины → артефакты и работа с артефактами → техническая инфраструктура 40
    Личные проблемы, не связанные с работой собственное состояние 39

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

    С точки зрения компании вряд ли можно помочь сотрудникам в решении внутренних проблем, связанных с собственным состоянием, разве что с помощью психолога. Но некоторые внешние причины стресса вполне можно устранить. Самые главные причины — застрять в решении проблемы и нехватка времени — вероятно, решаются. «В этом исследовании мы показали, что недовольство присутствует, оно вызвано разными факторами, некоторые из которых легко можно предотвратить», — сказал Дэниель Гразиотин (Daniel Graziotin) из Института программных технологий при Штутгартском университете, ведущий автор научной работы.

    Научная статья опубликована 15 марта 2017 года на сайте arXiv.org (arXiv:1703.04993v1).
    Поделиться публикацией

    Комментарии 48

      +14
      Любите ж вы графики…
      image

      А по делу, программист заведомо счастлив, если он выбрал тот язык, который ему подходит:
      image
        0
        Разве в языке счастье?
          +4
          Если писать на php, то этого счастья можно не почувствовать, а так — оно есть :)
            +3
            Зависит от того, кто на нем, или им работает.
              +2
              Иногда бывает как завернёшь в одно выражение всякие map, filter, генераторы туда же — прям заглядение. Только правильно отформатировать надо, а то совсем ничего понятно не будет.
                +1
                А потом придет новый программист, посмотрит на код состоящий из таких круто завернутых выражениях с генераторами, которое для нетренированного глаза выглядит как Вавилонская клинопись и застрелится.
                А через полгода застрелится и автор кода, который не сможет понять код и вспомнить что и зачем он так круто заворачивал.
                +3
                Есть языки которыми пользоваться комфортнее, чем другими. У каждого свои, конечно.
                +1
                А почему сентенцию про «выбор подходящего языка» иллюстрирует Пик Балмера?
                  0

                  Ну там по оси Z языки, хотя лично мне непонятна корреляция Пика Балмера с конкретным языком программирования.

                    0
                    Видимо это намёк на то, что люди пишущие на Malbolge устойчивее к алкоголю, чем пишущие на Java.
                    Вот тут я в корне не согласен.
                      0
                      Cудя по тому, что в 0 по алкоголю график также стремится к нулю в сторону Malbolge, то это намек на то, что его никто не знает. Даже те, кто на нем пишет. (возможно это график зависимости программистских навыков от языка и алкоголя автора графика, а не средний по больнице)
                0
                А про пирамиду маслоу спрашивающие не вспомнили? Деньги там и всё такое? Или все получают уже столько, что о деньгах не думают?
                  0
                  Если мы вспоминаем про пирамиду Маслоу, то деньги нужны только на самых нижних — первом и втором уровнях пирамиды — для удовлетворении физиологических потребностей и потребностей в безопасности. А с учётом того, в каких компаниях проводился опрос, вряд ли у их программистов проблема с деньгами.
                    +1
                    Не только на самых нижних. Деньги еще и в какой-то степени показатель уважения. Если разработчик будет считать, что ему платят не в соответствие с его способностями и вкладом в проект (не ценят), вероятно его это не обрадует, даже если базовые потребности удовлетворены.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0

                        Пугать может совсем не из-за сомнений в квалификации, смена работы — это всегд риски и далеко не только материального плана.

                        • НЛО прилетело и опубликовало эту надпись здесь
                            0

                            Ну, переплачивание подразумевает переоценку квалификации, разве нет?

                            • НЛО прилетело и опубликовало эту надпись здесь
                                0

                                Завышенную по сравнению с чем? Вот был у меня случай: договорились о чуть ниже рыночной зарплате для моей квалификации (по моей субъективной оценке и того, и другого), поднял с нуля проект за два года почти в одиночку программированием занимаясь, через год даже подняли зарплату процентов на 30 по своей инициативе, но потом проект стабилизировался, активная разработка закончилась и решили, что теперь мне переплачивают, потому что нагрузка снизилась, решили уменьшить зарплату до 70% от начального уровня. Хотя мне там очень нравилось, не смотря на то, что мог уйти в другие места на +10-20%, сам факт понижения зарплаты моментально стал причиной активного поиска нового места. Потом узнал, что на мое место смогли найти только в итоге за +10% к моей, немного поигравшись с фрилансом и "на полставки". Переплачивали ли мне реально?

                          +2
                          Напомнило
                          • НЛО прилетело и опубликовало эту надпись здесь
                              0
                              мидлокодер приносит пользы меньше, чем дворник?
                              А сеньйорокодер как с дворником соотносится?
                              • НЛО прилетело и опубликовало эту надпись здесь
                                  0
                                  Дворнику не надо несколько лет напряженно учиться и потом всю жизнь заниматься греблей против течения.
                                    0
                                    Зайдите в профиль человека.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                  0

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

                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0

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


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


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

                                      0
                                      Не кормите тролля )
                                      • НЛО прилетело и опубликовало эту надпись здесь
                          +3
                          Сидишь работаешь, пишешь какую-нибудь весьма сложную вещь. Тут с пинка открывается дверь: «ты ж программист, иди мне Эксель почини, он что-то не считает». Прибавляем 20-30 минут на решение чужой проблемы и 2 часа на прокрастинацию, чтобы вернуться обратно в рабочее состояние.
                            0
                            Очень знакомо! Или починить принтер/компьютер/чайник/, а то он что-то глючит и там наверное вирус. «Тыж программист».
                              +1
                              Ужасно, уходите оттуда туда где для таких вещей есть эникейщик.
                                +1
                                У нас уже есть эникейщики. Только они сидят в другом здании, им нужно писать заявки и приходят они, обычно, часа через 2… а то и 4, после того им как позвонили или написали заявку. Если бы я сидел где-нибудь в другом месте, а не в управе, меня бы тоже никто не трогал. Как никто не трогает нашего удаленщика-программиста с такими вопросами, потому что у неё время реакции до 12 часов)
                                Однако согласен — это ужасно.
                                  +1
                                  А, ну если у вас госконтора, то да. Сам работал в центре занятости населения когда-то. Ныне работая у коммерсантов я могу просто спросить «в какой тикет мне отчитаться о этом времени?» и вопрос отпадёт сам собой. Но у нас даже ситуаций таких не возникает.
                              +2
                              Если бы люди так легко осознавали причины своего состояния… У меня много лет ушло на осознание того, что я несчастен в роли менеджера — только инженерная работа меня радует.

                              В общем, ЭОС — как и все остальные. Глубже надо копать.
                                +1
                                Например, «я-менеджер» на подобный опрос бы поотвечал всякими вот этими «Нехватка времени», «Обыденная или повторяющаяся задача» и т.д. — но пытаться исправить это было бы бессмысленно, изменился бы список «проблем», а общая оценка осталась бы плохой. Просто это была «не моя» работа.
                                +1

                                Как по мне, то застрять в решении проблемы не проблема, если не давит нехватка времени (дедлайны, да и просто "ну что ты там возишься?"). То же и с плохим качеством кода — если время есть, то это не проблема рефакторить плохой код на хороший, а удовольствие.

                                  0
                                  Бывает столько плохого кода, что руки опускаются.
                                  +3

                                  Интересно, застрять в решении проблемы и непонятный баг — это причина несчастья? Но у любого бага есть логичное объяснение, любая нерешаемая проблема так или иначе всё же решается. Это ведь интересная задача и вызов, разве нет?

                                    0

                                    Именно. Главное, чтобы не давила нехватка времени :)


                                    Хотя встречал людей, которые не несчастливы только если (необходимое, но не достаточное условие для счастья) каждый день реализуют новые фичи, исправление багов для них пытка (своих и чужих — разные пытки), а отсутствие видимого продвижения за день хотя бы в виде одного нового зеленого юнит-теста на новую функциональность — трагедия. Работать с ними сложно, руководить ещё сложнее.

                                      0
                                      Ну это уже инфантильность в чистом виде… Я тоже люблю писать новые фичи, но не ради самой фичи, а потому, что она решит какую-то проблему пользователя. А поиграться с технологиями, если уж хочется, можно и в качестве хобби.
                                    +2
                                    Странно что нет пункта «задержка зарплаты» ) Из моего опыта это самый главный пункт .)
                                      0
                                      Просто опрашивали тех, кого, видимо, устраивает зарплата и сроки её выплаты, а потому эти пункты просто не включили в опросник.
                                        +1

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

                                      0
                                      Обе основные проблемы имеют одну и ту же причину.

                                      «Застрять в решении проблемы» очень обтекаемая, хоть и популярная (навязанная) формулировка. Она в среднем означает, что человек не видит ощутимого прогресса в решении задачи, или прогресс ниже каких-то пороговых значений, определяемых средней производительностью. А по факту, либо задача решается в этот момент, либо человек сидит и фрустрирует (последнее, конечно тоже происходит).

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

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

                                      Хотелось бы пожелать, чтобы бизнес перестал «загонять» программистов.

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

                                      Самое читаемое