Follow

Личная эффективность программиста. 

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

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

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

Т.е. условно ты можешь пытаться заработать 1'000'000 рублей в месяц, но если при этом ты живёшь на работе и спишь 2 часа в сутки, то ни о какой удовлетворённости речи быть не может. Кому нужен этот мульён, если при этом времени и здоровья на то, чтобы его потратить, нет.

Либо другой, полярный, пример. Ты можешь зарабатывать 15'000 рублей в месяц и при этом тратить на это 5 минут в день. Тут у тебя полно времени, только что ты можешь позволить себе на 15'000 в современном мире? Вот на пенсии и узнаем.

Выразим это простой формулой. «Удовлетворенность = Деньги / Время * Усилия». Формула для наёмного труда, поскольку в нём, на мой взгляд, проще раскоррелировать усилия и оплату. «Усилием» я обозначу количество строк кода в единицу времени (как сильно ты напрягаешься, чтобы «выдать» энное количество строк). Не буду добавлять лишние сущности типа времени до работы, карьерного роста и проч. в уравнение. Пока другая задача поставлена, её и буду решать.

Если отталкиваться от рынка зарплат, конечная сумма, которую ты можешь заработать, упирается в некий потолок (для разных регионов и специализаций будет разная сумма), определённый этим рынком. Допустим, что это 70'000, а не 300'000 в секунду, как принято считать. Этих денег хватает на закрытие базовых потребностей и на какие-то удовольствия. У нас есть теперь фиксированная сумма и фиксированное время при сорокачасовой неделе (примерно 170 часов в месяц).

Что это даёт нашей формуле? Увеличится ли удовлетворённость моя, если я буду увеличивать свою эффективность через увеличение строк кода? Глядя на формулу, можно с уверенностью сказать - нет. Это увеличит удовлетворённость владельца бизнеса, т.к. он за те же деньги получит больше исходного кода. Я же получу больше удовлетворения, если буду за те же деньги набирать меньше кода. Думаю, это понятно. Если непонятно, можешь подставить в формулу приведенные значения и поиграться с ними.

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

@inqbrc @rf интересная хуйня, конечно. Отвечу тезисно:

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

@kantor

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

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

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

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

@inqbrc
Это проблема типа сделки. Когда вы договаривались о зарплате, начальник мог оценить твою производительность только примерно, а сумму оплаты вы оговорили конкретно. Поэтому он стимулирует на трудовые подвиги, чтобы уйти в этой сделке в плюс. Работник должен думать о продолжении контракта, когда начальник уже будет точно знать, на что способен этот человек или о портфолио для следующей сделки с другим начальником. Нет тут противоречия, есть несовпадающие интересы.

@kantor"
@nofreeperson

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.