Просмотров: 21571

Программирование - работа на износ?


Я уже ранее касался этой острой проблемы на своём блоге в злободневном посте «35 лет: есть ли жизнь в программировании после?» На самом деле, эта проблема ОЧЕНЬ острая, поэтому я хочу возвратиться и посмотреть на неё чуть с другой стороны. Для этого предлагаю перевод статьи известного разработчика Алана Скоркина, который, кстати, ведет собственный популярный блог, полностью посвященный психологии программирования, а также секретам и парадоксам успеха в этой профессии.

Итак, под катом перевод его очень любопытной статьи «Did Your Boss Thank You For Coding Yourself to Death?», которую я рекомендую обязательно прочитать и задуматься, каждому профессиональному (и особенно любому амбициозному) программисту.

Программирование работа на износ карьера трудоголик переработка гореть на работе сгореть синдром

Постановка задачи

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

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

Алан Скоркин skorkin Программирование работа на износ карьера трудоголик переработка гореть на работе сгореть синдром
Алан Скоркин,
профессиональный программист и популярный блогер

Я уже слышу оправдания: «Нет, это не так, мы просто любим работать с классной техникой и не любим оставлять задачу нерешённой. На самом деле это хорошо, именно это делает нас такими крутыми!»

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

А вот ещё одно наблюдение: как часто вам на самом деле удаётся повозиться с интересными задачами и классной техникой — и как часто вы вместо этого строчите код, отчаянно пытаясь успеть сделать что-то вовремя, вписаться в какой-то срок, установленный вам по чьей-то прихоти?

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

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

Джон был кодером-суперзвездой, каких один на миллион. Он обладал сверхъестественной способностью понимать и писать код, делая это в 20 раз продуктивнее любого другого. Однажды компания заполучила большой контракт, который потребовал переделок «с нуля» в кратчайшие сроки. Клиент прислал огромный документ со спецификациями, который привёл всех в ужас.

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

Программирование работа на износ карьера трудоголик переработка гореть на работе сгореть синдром

Меня очень впечатлила эта история, и первый мой вопрос был: «Ну и где же этот парень сейчас?». На что мой друг ответил: «Он умер. Слишком напряжённую жизнь вёл». Слишком напряжённо кодировал, так было бы точнее.

Ну и впечатление от этой истории про супер-кодера сразу как-то смазывается — ведь Джону тогда было едва за тридцать.

Программисты получают извращённое удовольствие, хвастаясь друг перед другом своими «боевыми крещениями» на тяжелых проектах. Даже когда мы рассказываем это с отвращением, все равно звучит с примесью гордости, что подстрекает коллег «догонять». Однако мы при этом очень смахиваем на тех чудиков, которые носят штаны так низко, что видно все их исподнее, или на людей, которые начинают курить, потому что это «модно». Сами они и их друзья считают, что это круто — а все прочие считают, что это глупо.

Что делает плохую ситуацию еще хуже

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

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

Программирование работа на износ карьера трудоголик переработка гореть на работе сгореть синдром

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

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

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

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

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

Поддержка устойчивых темпов

Большинство процессов «гибкого» программирования нацелены на устойчивые темпы разработки. Однако даже среди тех, кто считает себя приверженцем гибкой методологии разработки, я встречал команды, которые уступали уговорам и впрягались в сверхурочную работу — для высшего блага и всё такое. Но они при этом оставались «гибкими», и не дай вам бог заявить обратное.

Программирование работа на износ карьера трудоголик переработка гореть на работе сгореть синдром

Когда я обо всём этом думаю, я всегда вспоминаю об адвокатах. Адвокат-новичок прикладывает огромные усилия и тратит массу времени — таков общепринятый способ «пробиться» в этой области.

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

Итак, адвокат против программиста: кто из них тупее?

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

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

FAIL эпик фейл Программирование работа на износ карьера трудоголик переработка гореть на работе сгореть синдром

Вы конечно уже поняли, что лично я против переработок. Может, когда-нибудь потом я расскажу, как я к этому пришел — это отдельная интересная история.

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

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

В дополнение к теме: Овертаймим? А как насчет результатов?

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , ,
Эта запись опубликована: Понедельник, 5 ноября 2012 в рубрике Мнения.

6 комментариев

Следите за комментариями по RSS
  1. Истинно так, в мире очень много всего интересного, яркого и красивого

  2. Да, во многом конечно узнал себя, увы.

    Интересно было вас читать)

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

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

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

  4. Да, Константин. Но зачастую бизнесмены в России считают программирование не творческой работой, а ремеслом без сложностей. И пока мы не убедим бизнесменов в том, что надо быть лояльными хотя бы к срокам выполнения работ, условия работы программистов в нашей стране будут способствовать халтуре, наскоро сделанным и плохо работающим решениям, социальному дарвинизму. Распространённым способом работы программиста у нас стало создание продуктов, мучительная переделка которых никогда не закончится, а всё потому, что бизнесмену важнее сроки, а не качество. Если программиста можно пригласить нового, то сорванный срок ничем не компенсировать, это, как ни странно, удар по репутации компании больший, чем продукт, ошибки в работе которого выявляются со временем, уже после подписания акта о приёмке работы. Так пилят бюджет в России конторы, работающие на государственные монополии, например.

    Вот ещё некоторые мысли тут: http://help-in.ru/node/86

  5. Николай (sky_man)

    Ну вообще это относится не только к программистам, а к людям-трудоголикам вообще. Работа для них всё, - это их выбор. Хорошо это или плохо? Для здоровья конечно плохо. Но неизвестно насколько было бы хуже для них, если бы они не жили на работе. Это бы приводило их к постоянному внутреннему неудовлетворению, переживаниям. И было бы только намного хуже.

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

    Истинно счастливый человек, это который добивается успеха и на работе, и живет полноценной личной жизнью

  6. Николай, таких не существует - это фантастика. Правило одного дара.

Оставьте комментарий!

Не регистрировать/аноним

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

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз