Как оценивать работу программистов: примеры системы грейдов в компаниях

Как выстраивать грейдирование разработчиков внутри компании? Что зашивать в мотивацию? Голый оклад, оклад + премия, почасовка? Каким образом оценивать работу программиста? Нужны ли бонусы и премии? Опытом поделились «Нетология», Finch, DD Planet, MediaSoft, Oneway и Digital Wand.

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

Кто-то формирует свою систему грейдов, кто-то не считает это необходимым. А что рассказали опытные команды представителям Pena Production?

Ключевые показатели при формировании грейдов веб-разработчиков

В Oneway учитывается общий объём закрытых задач в часах, пройденные курсы и сданные экзамены («Битрикс24»), определённый набор скиллов и опыт в определённых задачах (матрица компетенций).

В компании MediaSoft не используется система грейдов в привычном понимании и в целом отсутствует традиционное деление разработчиков на классы junior, middle и senior.

Эта классификация достаточно условна: как показывает практика, senior часто называют самого крутого специалиста в компании, и это не отражает ровным счётом ничего, кроме уровня самой компании. При попытке устроиться в большую и серьёзную организацию вроде «Яндекса» такой senior может не пройти даже на позицию junior.

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

В Finch список показателей достаточно большой: качество кода, самостоятельность, проектное разнообразие, профессиональный рост, количество проработанного в компании времени и инициативность.

Если кратко, то оцениваются как технические, так и околотехнические компетенции человека. На каждом грейде есть определённый набор этих самых компетенций.

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

Для DD Planet критически важно, чтобы программист умел самостоятельно принимать правильные решения. Это и есть тот ключевой критерий, по которому в компании оценивают уровень специалиста, ведь для принятия самостоятельных правильных решений необходим высокий уровень знаний и достаточный опыт работы в профессии.

Не менее важны показатели вроде адекватности оценки сроков исполнителем, своевременное и чёткое выполнение задач.

Сколько уровней у разработчиков в команде

В команде Finch решили остановиться на четырёх уровнях: junior, middle, middle+ и senior. В компании достаточно много разработчиков, которые находятся на стыке двух уровней — middle и senior. Поэтому и приняли решение ввести дополнительный грейд. Делать больше грейдов при штате 55 человек ребята считают лишним. Возможно, со временем лестница будет больше.

В DD Planet, как и в большинстве ИТ-компаний, всех разработчиков подразделяют на четыре уровня:junior, middle, senior, team leader (тимлид).

К уровню junior формально можно отнести выпускников вузов, которые только начинают карьеру. Предпочтение отдаётся серьёзным техническим вузам, например МГУ (факультеты ВМК, мехмат), МГТУ, МИЭМ, НИУ ВШЭ.

Более продвинутый уровень развития специалиста — middle. Сотрудник ещё не принимает самостоятельных решений, но за ним не надо перепроверять правильность реализованных задач. Руководитель говорит, как и что надо сделать, программист выполняет всё в срок и качественно.

Следующий грейд — senior, или ведущий программист. Специалист может самостоятельно принимать решения и несёт ответственность за их реализацию. Также он способен курировать одного или нескольких программистов уровня junior или middle.

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

У DigitalWand — шесть уровней разработчиков: junior, junior+, middle, middle+, middle++, senior.

  1. Juniorзнает основы своей технологии, может выполнять простые задачи, но пока не готов работать самостоятельно.
  2. Junior+ на простых задачах работает самостоятельно. Умеет применять типовые операции с Git.
  3. Middleполностью самостоятельно решает типовые задачи, однако ему может потребоваться помощь в проектировании, ревью кода.
  4. Middle+ отлично знает фреймворк, на котором работает, начинает осваивать другие фреймворки, уже может помогать junior-программистам.
  5. Middle++ можно доверить работу на production, проведение релизов. Готов заниматься проектированием не слишком сложных систем. Может при необходимости общаться с заказчиком.
  6. Senior имеет в своём арсенале несколько фреймворков, у него есть опыт проектирования и разработки сложных систем.

В «Нетологии» сейчас есть разделение на три стандартных уровня: junior, middle и senior. Каждый уровень предполагает новую ступень профессионального роста. Грубо говоря, чем выше позиция, тем больше разработчик берёт на себя ответственности, разбирается в разных продуктах и может помочь коллегам.

Специалисты уровня senior, например, в компании не только занимаются непосредственно разработкой, их задача — быть ещё и наставниками для новых членов команды.

В студии Oneway рекордное количество уровней — одиннадцать.

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

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

Как определить, что человеку пора на новый уровень

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

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

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

В Finch линейные руководители раз в месяц ставят оценки сотрудникам. Критерии оценки формируются из ключевых показателей грейдирования.

Оценки варьируются от 1 (не соответствует грейду вообще) до 5 (полностью соответствует следующему грейду). Исходя из оценок и динамики показателей, принимается решение о повышении человека. Помимо этого, раз в полгода проходит обязательное ревью, чтобы увидеть, насколько человек вырос за это время. Если ничего не происходит, это тоже сигнал к действию.

В DD Planet о переводе программиста на новый уровень задумываются, как только он начинает предлагать решения тех или иных технических вопросов.

Junior ещё в принципе не способен принимать самостоятельные решения. Middle, как правило, решений не принимает, но может правильно выполнять поставленные задачи. Senior способен принимать самостоятельные решения в рамках своей работы. Тимлид же отвечает за архитектуру и глобальные решения на уровне группы разработчиков.

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

В MediaSoft обращают внимание на то, насколько программисту интересно работать. Часто, когда человек «перерастает» свои задачи, он перестаёт предлагать идеи, не выступает с инициативами, не выкладывается, не рассказывает всем и каждому о своём проекте с горящими глазами.

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

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

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

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

Заработная плата программистов MediaSoft формируется динамически: к фиксированному окладу также добавляется переменная часть, которая считается по затраченным часам и зависит от того, сколько платит за эту работу клиент.

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

В DigitalWand маржинальность пока не учитывается. Однако разработана новая система расчёта зарплат, которая находится на стадии тестирования и через некоторое время будет введена в эксплуатацию.

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

В Oneway сегодня маржинальность проектов не учитывается.

В команде Finch маржинальную прибыль также не учитывают, но считают такую практику весьма интересной.

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

В DD Planet показатели маржинальности проектов не используются. Безусловно, правильность оценки сроков и своевременное выполнение задач влияет на маржинальность. Однако при принятии решения о повышении грейдов этот фактор не учитывается. В DD Planet уровни зарплат программистов соответствуют грейдам. Напрямую от маржинальности проекта заработная плата разработчика не зависит.

Типовые ли в компании технологии разработки и создаются ли грейды под каждую технологию

У каждого разработчика может быть свой стек технологий, а кто-то владеет сразу несколькими. Как же это учитывать?

DD Planet специализируется на разработке сложных проектов, на 60% типовых решений и технологий приходится 40% нестандартных. В связи с разработкой высоконагруженных проектов, нетиповых задач встречается очень много.

Ни одна современная библиотека или продукт не закрывает все потребности по реализации задач, связанных с нагрузками. Всегда приходится разрабатывать надстройки, модули, плагины, придумывать неординарные архитектурные решения.

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

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

У ребят из Finch единый стек под все проекты. Поэтому проблемы с несколькими стеками нет.

В MediaSoft придерживаются мнения, что отталкиваться нужно от уровня сложности задач. В компании не «затачивают» специалистов под конкретные технологии, оставляя им свободу менять направление развития при желании.

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

В DigitalWand есть различные технологии для разработки. Грейды разделены на backend и frontend, вёрстку и JS-разработку. В рамках каждого из направлений также есть деление по технологиям.

В Oneway 90% проектов разрабатываются на «Битрикс24», поэтому все грейды для backend-разработки единые. Отличаются только backend и frontend

Как выстроена система финансовой мотивации в команде, какую модель выбрали и почему

Компания Oneway использует фактическую оплату по часам. Финально каждую задачу оценивает тимлид. Если человек не выписывается в сроки оценки, то получит меньше, если выполняет задачу быстрее, то сможет получить больше.

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

У Finch нет системы премий, штрафов, выплат за мотивированность и всего такого. Есть чёткий фикс на руки, который обговаривается на собеседовании. Бывали случаи, когда ребятам платили премии. Как правило, это были какие-то особые случаи, в которых просто хотелось сделать приятно человеку. Сейчас от этой практики отказались.

Finch — сторонники нематериальных вознаграждений. Любой человек в компании может съездить на конференцию, сходить на курсы, отдохнуть за счёт компании, если он делает свою работу хорошо. Один из ярких примеров – отправка ребят на Бали. В Finch убеждены, что в таких активностях больше толку, чем в ежемесячной премии.

В DD Planet свой подход. Если задача потребовала дополнительного времени и усилий, сотруднику засчитывается овертайм. Оплата переработки производится по двойной ставке. Также предусмотрены премии за проекты, которые сданы вовремя и реализованы качественно. По каждому проекту закладывается премиальный фонд. Эта сумма распределяется между специалистами в зависимости от вклада каждого в этот проект.

В DigitalWand сейчас фиксированный оклад, но ведётся подготовка к новой системе финансовой мотивации — динамический оклад на основании эффективности, в которой зарплата будет состоять из двух частей:

  1. Оклада.
  2. Премии.

От чего зависит оклад:

  1. Грейд сотрудника.
  2. Эффективность работы группы и команды в целом.

Эффективность работы сотрудника, группы и команды зависит от фактической оплаты клиентами по отношению к оплате 100% часов по текущей внешней ставке.

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

Премия зависит от оценок работы сотрудника его группой. Чем выше оценки, тем выше премия. Обязательное условие получения зарплаты — учёт рабочего времени в Redmine.

Сверхурочная работа оплачивается хорошо. Сверхурочные бывают двух видов:

  1. Добровольные, оплачиваются по ставке х1,5.
  2. По просьбе клиента, оплачиваются по ставке х2.

В MediaSoft действует динамическая система финансовой мотивации. Она включает зарплату с фиксированной и переменной частью, а также квартальную премию.

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

Такая модель сложилась эволюционно: сначала появилась переменная часть, к ней добавилась постоянная, а затем стали выплачивать премию.

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

Выводы

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

Нет системы грейдирования, которая могла бы быть справедливой для всех. Работайте над своими процессами, над качеством продукта, не забывайте о важности стимулирования команды.

1313
17 комментариев

Ну, по большей части, все компании смотрят +- в одну сторону. На рынке вообще кто-то экспериментирует с нестандартными подходами?

2
Ответить

А это идея для следующей публикации. Думаю, что такие найдутся.

1
Ответить

плюсую, хочется послушать про нестандартный опыт, например

- зарплатная формула
- компенсация по результатам работы команды
- сотрудники сами назначают себе компенсацию

Ответить

Спасибо, интересно почитать мнение разных игроков рынка.

1
Ответить

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

1
Ответить

Конечно. Нет единых процессов, которые справедливы для всех.

Ответить

Комментарий недоступен

Ответить