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
CleverLibre Social

CleverLibre Social is an inclusive social instance for open discussion, learning, and community.
All cultures welcome.
Hate speech and harassment strictly forbidden.