Когда я вошёл на вечеринку, речь уже началась. Майкл Аррингтон долго говорил о трудностях создания компании: много раз можно лишь вздремнуть за своим рабочим столом. Но я хотел бы добавить несколько слов. Я видел много обсуждений, в которых говорится, что такой способ работы контрпродуктивен, не позволяет добиться успеха и может даже быть чрезвычайно вредным для здоровья программистов. Однако мало кто проводит количественный анализ этого. Я не талантлив, поэтому позвольте мне начать с нескольких скромных замечаний, чтобы пригласить других поделиться своими ценными мнениями.

程序员一周花多少时间编程?

Обычно мы работаем 8 часов в день, то есть 40 часов в неделю. В экстремальных условиях (конечно, нереалистичных), если программист проводит целую неделю без еды, питья или сна и использует всё время для написания кода, то получается 24×7 часов, то есть 168 часов, в 4 раза больше обычного.

Конечно, люди не машины; невозможно работать 24 часа в сутки. Программисты тоже люди и имеют обычные физиологические потребности, например сон. Лучшее время для сна для человека — от 7 до 8 часов. Возможно, если не спать один или два дня и спать меньше, это ещё можно выдержать, но после этого часто нужно компенсировать недосып и спать больше. Кроме того, в тот период эффективность работы часто очень низкая. Чтобы работать лучше, предположим 7,5 часов сна в день. За 7 дней это 52,5 часа. Итак, 168 часов минус 52,5 часа сна остаётся 115,5 часов!

Дальше — еда. Еда тоже необходима. Сначала нужно иметь еду (заказать её или приготовить самому), а потом можно её есть. Три приёма пищи в день. Предположим, на один приём пищи нужно 30 минут, это 90 минут в день. Если это фастфуд вроде пиццы, каждый приём можно сократить до 15 минут, а день — до 45 минут. Даже если нам нужно 60 минут, то есть 1 час на еду в день. Тогда 115.5 - 1*7 = 108.5 часов. Кроме того, чистка зубов, умывание, бритьё, а иногда и душ, минимум 30 минут => 108.5 - 0.5*7 = 105 часов. Ещё время, потраченное на дорогу на работу и обратно. В 2007 году среднее по стране время поездки на работу и обратно составляло 45 минут, то есть 5.25 часа в неделю => 105 - 5.25 = 99.75 часа, скажем, 100 часов. Конечно, если хотите сэкономить это время, можно просто спать на рабочем столе!

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

И вот вопрос: если мы тратим в 2.5 раза больше времени, может ли это принести стартапу астрономическую ожидаемую доходность (то есть 10x или 100x)? Где ценность дополнительных 150%? Неужели работа 40 часов в неделю делает доходность компании обычной, а 100 часов позволяет ей стать широко известной, как Facebook? Если увеличение временных вложений сотрудников может повысить ценность компании, почему бы не нанять ещё несколько программистов? Откровенно говоря, если вложение большего времени означает огромную отдачу, то нанимать дополнительных сотрудников определённо выгоднее. Любой может сделать эти расчёты, верно?

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

Дело в том, что какими бы сложными ни были метрики, которые мы используем для оценки работы, они не могут по-настоящему измерить производительность программиста. Кроме того, в большинстве компаний действуют механизмы конкуренции. Даже если некоторые люди не хотят «бороться за власть», им всё равно приходится тратить много времени на тщательный просмотр кода и проверку ошибок. Такие люди, как Аррингтон, не станут тратить на это время и не обладают профессиональными способностями для выполнения утомительных задач вроде оценки эффективности сотрудников. Поэтому они используют рабочее время для измерения производительности человека. Таким образом, сразу становится ясно, кто из программистов сколько часов проработал (и они непременно всё время пишут код!) или кто из программистов часто «не сидит за компьютером и не пишет код». Например, если вы можете без жалоб ответить на звонок Аррингтона в час ночи и сразу приступить к работе, то по сути вы посвящаете работе своё время. Конечно, глупые и высокомерные люди не поймут, что ответить на звонок и исправить проблему можно всего за 10 минут.

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

Ссылка на перевод: http://www.codeceo.com/article/how-many-hours-programming.html

Оригинал на английском: http://java.dzone.com/articles/how-many-hours-can-programmer

Переводчик: Codeceo – Xiao Feng