Большинство из нас продает жопочасы. Работа ли это в найме фулл-тайм или парт-тайм активности — практически всегда вопрос денег сводится к месячной (или годовой) ставке или часовому рейту.

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

Оставим в стороне вопрос контроля отработанного времени и примем что разрабы репортят часы честно. Что хорошо и что плохо в этой схеме?

Хорошо для разработчика:

  • предсказуемость. Ты точно знаешь, что если отсидел Х часов, то получишь за них свои деньги и неважно, сделана задача или нет. Я не видел ни разу, чтобы не платили деньги, даже если выхлопа нет, черт, да я и сам был тем самым человеком который платил за тупинг, ноль прогресса, и ненужные задачи, но считаю это своей проблемой.
  • ненапряжность. Отсидел часы и ушел. Менеджер тебя может пожурить за не вовремя сделанную задачу, но больше средств влияния на тебя он не имеет. Максимум что может случиться — это увольнение, вот только на вакантное место придет работать такой же лентяй. Часто ли вы видели чтобы увольняли разработчиков? Я увольнял по причине низкой продуктивности всего два раза — один раз из-за многократных жалоб от проектов и второй раз когда не угадали с наймом джуна.
  • полное отсутствие ответственности за результат. Ну не сделал и не сделал, а что? Часы-то отработаны, извольте заплатить.

Хорошо для работодателя:

  • предсказуемость по деньгам. Ты точно знаешь какую максимальную сумму заплатишь людям в этом или следующем месяце и можешь планировать затраты
  • отсутствие необходимости оценивать и согласовывать каждую задачу в деньгах отдельно (снижаются операционные издержки на РМов и коммуникацию). Time & material и поехали — бей посуду, я плачу. Тут конечно еще можно поспорить хорошо это или плохо, но в основном я вижу что работодателю проще и понятнее платить по часам.

Вроде норм, да? И да и нет, и дальше рассмотрим, почему.

Плохо для разработчика:

  • очевидная невозможность прыгнуть выше рейта. Если зарабатываешь 25$ в час — все, твой максимум в месяц это 4000$, как бы ты не старался (часов больше взять неоткуда будет если не овертаймить). Автоматически устанавливается стеклянный потолок пробить который будет нереально, потому что бизнес не будет нанимать простого консультанта за 300$ в час (будет нанимать топового, но у них отдельное ценообразование).
  • невозможность продавать результат своего труда. Ты продаешь свою жопу на стуле а не то, что ты сделал. Норм тип может сделать проект, который два джуна будут колбасить полгода, за две недели. Вот только продавать он будет его не за 12 000$ (сумма полугода работы двух джунов) а за 2000$ при рейте в 25$. Типичная дилемма продажи сырья vs готового продукта.
  • контроль над временем делегируется работодателю. Ты уже не можешь просто так делать то, что тебе нужно или интересно, работодатель будет считать, что он купил тебя с потрохами, твоё время принадлежит ему и будет указывать тебе, что делать, попутно занимаясь микроменеджментом и требуя отчетов. Это самый большой минус. Вот ты был свободным человеком, который делал что хотел, а спустя секунду уже стал наймитом, время и свобода которого подчистую выкуплены.

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

  • отсутствие мотивации развиваться. Зачем работать лучше других если и так заплатят? Я неоднократно такое наблюдал и такие люди приходили ко мне на собесы. Требуют космических денег, а сами ничего не знают. Нет, со своей стороны они конечно правы, потому что хотят ничего не делать а чтобы все было, но все равно я запишу это в минус. Нет никакого смысла работать быстрее и лучше, потому что заплатят так же как и раньше, а сверху еще и задач нагрузят. Известный сюжет в фильмах и книгах — это новичок, который резко выделяется на фоне остальных. Новичок думает что он все делает правильно, хотя коллектив его дружно ненавидит, за то что тот подымает стандарты качества и скорости работы.

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

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

Плохо для работодателя:

  • невозможность заплатить конкретные деньги за конкретный продукт. Команды и люди имеют тенденцию растягивать проекты, продалбывать дедлайны, переделывать одно и то же по десять раз и так далее, вы понели. Заказчик платит и платит и платит и платит, а его продолжают кормить завтраками и ничего не выдают. Анекдотичные истории про закопанные миллиарды можно почитать вот тут Просто жесть—сколько бабок могут закопать на разработке не рокет саенс проектов.
  • отсутствие контроля за мотивацией работников. Совершенно невозможно определить награду за достижение определенных целей. Ты же не будешь платить 100$ за фикс срочного бага, разработчик и так получает свои 100$ в день, вот пусть на них как-то и работает. Когда нужно делать что-то срочное и критичное то в ход идут всякие манипуляции и запугивания (“давайте поднажмем” или “ты же обещал сделать, где?”), которые не всегда работают. Гораздо честнее и лучше было бы сказать “вот есть функциональность надо сделать её через две недели, сделаешь — вот тебе деньги, не сделаешь — ничего не получишь”.
  • непрозрачность потраченного времени. Делай скриншоты или не делай, сади разработчиков мониторами к себе или не сади, блокируй ютуб или не блокируй — все это слабо помогает и мало коррелирует с реальной продуктивностью. Человек существо хитрое, и не мне вам рассказывать как легко можно обмануть все эти системы слежения и контроля за проведенным временем. А если я работодатель то никак и не прикопаюсь — вот на скриншоте IDE, какие проблемы? Гони бабло за отработанные часы!

Плохо для обеих:

  • невозможность построить честную и прозрачную схему финансовой мотивации. Мы все так или иначе работаем за деньги и ради денег (а кто нет — тот просто не знает об этом. Попробуйте поработать на “интересных проектах” за зп ниже рыночной). Бабло — наша главная мотивация (по крайней мере, большинства, которое застряло на нижнем уровне пирамиды потребностей). И вот, вместо того, чтобы мотивировать нас деньгами, нам просто предлагают их за то, что мы сидим за клавиатурой и нажимаем на кнопочки с частотой не меньше 10 ударов в минуту. Бизнес не может грамотно оплатить качественную работу, а сотрудники вынуждены играть по правилам уравниловки и не могут прыгнуть выше других, даже если хотят. Как известно, лучше всех в колхозе работала лошадь, но председателем так и не стала.

Нормального решения этой проблемы, я, увы не вижу. Да, Егор Бугаенко делает Zerocracy которая предлагает свои методы, но весь мир думает в парадигме почасовой оплаты, которая является меньшим злом для обеих сторон и пока что подвижек в сторону изменения этого статус-кво нет.

С одним из заказчиков я уже довольно долго (около трёх лет) работаю по fixed-price схеме. Никаких вопросов с репортингом времени или еще чем-то. Вот скоуп — вот деньги. Понятное дело что тут много своих минусов, вроде ситуаций, когда плохо оценил проект, недописал требования, много правок, но мне как-то удается разруливать. Иногда мы оцениваем проект предварительно, иногда, если задач много, то постфактум. Вообще такая схема мне очень нравится но работает она хорошо только для изолированных или целостных проектов которые делаешь от начала до конца сам или со своими людьми. Как только начинается взаимодействие с другими командами, ситуация может усложниться.

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

Вариацией посредине (которую использует Zerocracy и другие компании, например wemake.services) является оценка задачи во времени (например 1 час) и последующая оплата по рейту, независимо от того, сколько времени на самом деле было потрачено на работу. Отличием от фиксед прайса здесь является зависимость от рейта (то есть разные разработчики за одну и ту же задачу получат разные суммы, впрочем и время они тоже потратят разное) и то, что оценку времени задачи определяет заказчик.

Почитать о подходах более подробно: https://wemake.services/meta/rsdp http://www.zerocracy.com/policy.html