Рейтинг разработчиков или Серебряная пуля профессора Эло
Рейтинг и грейд почти синонимы, точно также и эта статья очень близка к циклу предыдущих, в ней точно также затрагивается вопрос «какой разработчик должен получать больше?». И в то же время она стоит особо и люба мне особенно, так как в ней, помимо краткой характеристики родовых недостатков существующих систем грейдинга, есть много позитива:
- приводится принципиально иной подход, по аналогии, а также с точек зрения объективности, минимальности затрат и скорости получения результатов;
- представлено практическое применение подхода на базе анализа до 10 тысяч профилей украинских фрилансеров на oDesk и Elance (насколько мне известно, впервые) и их выполненных проектов более чем на 100 млн. грн. за текущий и прошлые годы;
- дан пример, как быстро и малозатратно (7 дней и 4 доллара) создать крайне нетребовательный к ресурсам альфа-прототип, годный для старта любого стартапа, и приведен перечень годных для этого инструментов;
- показан ряд графиков, характеризующих состояние и динамику украинской фриланс-разработки.
Горы, породившие мышей
Ряд существующих систем грейдов, рассмотренных в цикле статей, а также европейская e-CF 2.0 (ничем принципиально, кроме большей сложности, не отличающаяся, по сути, от той же российской) справедливо критикуются за нечеткость критериев (несколько особняком стоит O*NET, использующая статистический подход, но стоимость ее поддержки превышает доход всего украинского фриланса).
Почти все перечисленные системы, без привлечения консультантов и проведения дополнительных тестов сотрудников, дают лишь то (причем с несоизмеримыми от абсолютно негарантированного эффекта затратами), что и так очевидно мало-мальски опытному менеджеру. Единственный числовой критерий, причем довольно сомнительный, который могут рекомендовать эти системы — это опыт работы в годах. Все остальное — в стиле «улучшить, ускорить, углыбить».
Все это оставляет лазейку для использования данных систем в целях придания налета объективности прокрустову ложу махрового субъективизма в стиле сказки «принеси то, не знаю что». «Зачетно» закрученная фраза, верно?
Такую оценку также можно было бы считать субъективным мнением с легким налетом самоиронии, если бы она не была, к сожалению, очевидной.
Так неужели же нет простых и достаточно объективных методик? Ведь еще древний грек Зенон логически безупречно доказал, что Ахиллес никогда не догонит черепаху, а ведь догонял и обгонял.
Хелло, Эло!
От проблем, связанных с «прокрустовым ложем махрового субъективизма», немало страдали и шахматные гроссмейстеры в XIX и XX веках. Например, на лучшие турниры гроссмейстеров отбирали исключительно по симпатиям и субъективному мнению о силе шахматистов организаторов. Даже в матчах за звание чемпиона мира творилось полное безобразие. Тот же гениальный Капабланка, будучи в ранге чемпиона мира, долго избегал матча с Алехиным, предпочтя обломать старые зубы Ласкеру. Алехин впоследствии отплатил Капе той же монетой и даже вдвойне, навсегда лишив мир зрелища «битвы титанов».
В
Эта система стала основой для отбора игроков на крупнейшие и престижные шахматные турниры и практически устранила проблемы, связанные с субъективным отбором игроков на турниры (читай, проекты), т.е. оказалась действительно «серебряной пулей». К примеру, Карпов и Каспаров не смогли повторить трюки Капабланки и Алехина и были вынуждены биться за звание чемпиона на протяжении 7 лет в
Ссылки на то, что данные рейтинги составлены для игр, в которых принимают участие двое, сути аналогии не меняют (и кроме того, второго соперника всегда можно выдумать, т.е. рассчитать как «виртуального среднего» и т.д., а под результатом партии понимать сумму за период и т.п.).
Чуть позже был внедрен и рейтинг АТР для теннисистов по несколько иной методике, также решивший аналогичные проблемы.
Данные аналогии подтверждают, что составить достаточно объективный рейтинг, годный для практических задач, вполне возможно. И связан он будет, скорей всего, с характеристиками статистического распределения всей совокупности участников рейтинга.
Рейтинг или сеанс магии с последующим разоблачением
Если шахматисты соревнуются в количестве набранных очков, а в командных видах спортсмены сражаются за гол+пас или подборы, броски и т.д., то за что конкурируют разработчики?
Как бы не было это пошло и очевидно, за объем полученных с выполненных работ денег. А уж этот показатель интегрирует и подразумевает в себе все остальное. Т.е. достаточно ли профессионален разработчик, каковы его личные качества и прочая, прочая. Казалось бы, «покажи мне свои деньги» — и дело в шляпе, рейтинг готов.
Однако поставим себя на место заказчика, подыскивающего для своего, к примеру, веб-проекта исполнителя хорошего среднего уровня. Разве ему нужно знать, сколько заработал исполнитель, ведь ему требуется «лишь» выбрать на фоне остальных? Скажет ли ему что-то сумма в качестве рейтинга? Вряд ли, так как ему придется изучить списки тех, кто заработал больше и меньше. Скажет ли ему что-либо указание " 101 место из 1000«? Также вряд ли, так как возможно, что 900 вообще выполняли ранее эпизодические, копеечные заказы.
Просматривается та же логика и в случае, если сам разработчик захочет понять — насколько высок его рейтинг.
Для попытки решения можно было бы выводить долю суммы заказов разработчика в общем объеме, но при большом числе участников не слишком то удобно иметь рейтинг типа 0,00001%. Как вариант, ввести масштабирование от порядка числа участников рейтинга, т.е. если тысячи, то умножать процент доли на тысячу, если сотни — на сотню. Но это все равно не решает задачи соотнесения значения рейтинга участника с остальными без изучения всего списка рейтинга.
Здесь в качестве простейшего решения логично указывать процентиль от всего распределения сумм заказов исполнителей, в который попадает сумма, полученная разработчиком за выбранный период. А чтоб никто не догадался, процентиль умножаем на 100. На пример, рейтинг со значением в 7610 означал бы, что разработчик выполнил заказов больше, чем 76% остальных участников.
При выполнении проекта в большинстве случаев разработчику (как и заказчику проекта — от разработчика) требуется несколько технических навыков. К примеру, PHP, MySQL, jQuery, HTML, CSS. Как определить вес каждого навыка? Для этого есть эмпирические правила Парето, его производной ABC, гугловского правила топ-5 и т.д.
Наиболее простым методом приближения будет назначение навыкам весов в порядке, обратном порядку указания. Т.е. в приведенном примере PHP получит 5 баллов, CSS — 1 балл и, соответственно, при расчете рейтинга навык PHP «получает из бюджета» 33,3% (5 из 15), а jQuery — 20%. Таким образом можно получить рейтинг и по навыкам.
Для учета динамики изменений рейтинга достаточно применить метод двойного скользящего среднего за требуемое число периодов.
Можно заметить, что такая система учета вполне применима внутри отдельной компании.
Далее приведено описание конкретной реализации такого рейтинга в применении к украинским фрилансерам на oDesk и Elance.
7 дней и 4 доллара на прототип для стартапа
При обработке данных фрилансеров получилось столько интересного, по моему мнению, побочного материала, что, перефразируя «Трех мушкетеров», для Атоса (т.е. данной статьи) его слишком много, а для графа де ля Фэр (т.е. отдельного ресурса) — слишком мало.
По счастью, меня интересовала проверка годичного бесплатного эккаунта на AWS, а также твиттеровский
В итоге за 7 дней (если быть точным, то и части ночей) и 4 доллара (потраченных на домен, который можно было попробовать получить и бесплатно в зоне org.ua) вышло «сыроватое», но неплохое, на мой вкус, интерактивное приложение к статье. Которое также может послужить и тестом для определения «мощности» триал-хостинга на базе AWS (предварительные тесты вселяют надежду, что несколько десятков одновременных запросов не создадут серьезных проблем, не смотря на довольно слабые, как для VPS, характеристики).
Стоит добавить, что у такого решения есть существенный резерв оптимизации в виде использования амазоновского CDN для статики и nginx`а перед апачем (по собственному опыту это если и не серебряная пуля, то как минимум бронзовая в виде фронта довольно нагруженных веб-проектов).
Вот лишь малая часть материалов (естественно, подготовленных в другие сроки) из этого «интерактивного» приложения к статье:
Уже конец
Каждому разработчику, наверное, знакома ситуация, когда успешно и без проблем завершенный проект не приносит никаких особых положительных эмоций. В то же время завершение проблемного, изобиловавшего переделками и внеплановыми сложностями , проекта иногда доставляет особое удовлетворение.
Что-то подобное испытал и я после почти двухлетней эпопеи (ставшей чем-то вроде хобби) в поисках наилучшего (с точек зрения объективности, минимума затрат и максимума скорости ) метода определения уровня разработчика. Очевидно, что предлагаемый метод не является абсолютным идеалом, однако:
- при внимательном взгляде очевидно, что пользующиеся заслуженной популярностью зарплатные опросы на ДОУ являются частным, упрощенным случаем метода (с меньшей частотой выборки, меньшим числом параметров и уровнем достоверности). И это не реверанс, а вывод post factum. ДОУ идет верной дорогой и выигрывает 5:0 у любой другой методики определения рыночных зарплат;
- данный метод может быть применен в любой компании для составления динамического внутреннего рейтинга разработчиков;
- его полезная практичность доказана, по мнению автора, составлением рейтинга фрилансеров;
- может быть полезным и пример очень быстрой и малозатратной разработки альфа-прототипа стартапа с перечнем использованных инструментов;
- дополнительная аналитика (побочный продукт) по структуре украинского фриланса также, по моему, интересна. Причем впервые, насколько мне известно, анализируются интегрированные данные по oDesk и Elance.
Таким образом, на мой взгляд, опровергнуты упреки отдельных критиков цикла на академичность и практическую бесполезность темы. Присоединяюсь к словам известного кота о своей корове и количестве ее молока.
И, как водится при завершении такой длительной эпопеи, слова благодарности:
- сообществу ДОУ и, особенно, всем, высказавшим конструктивные критические замечания и поддержавшим своим интересом к теме;
- ДОУ, предоставившему без всякого диктата возможность и поддержку публикации цикла, а также персонально Максу Ищенко, как автору первоначальной постановки вопроса и как основателю ресурса, и Андрею Дегелеру, как внимательному, лояльному к авторам и позитивно настроенному главному редактору.
P.S. Еще не конец
Тема применения методики (назову ее для краткости topsdev) в отдельной компании осталась нераскрытой. В то же время лично мне очевидно, что она может дать пользу при низких затратах даже в компаниях сПри разнесении этих сумм по конкретным участникам проектных команд, конечно, доли каждого будут вычисляться по соотношению ставок и премиальных (за отвагу на пожаре, за пятилетку в три дня и т.д.) и по задействованным на проекте навыкам.
Как расти на следующие ступеньки в таких условиях? Практически автоматически. Быстрее сдал свою часть по проекту, можешь получить следующий или даже параллельно. Освоил новые скиллы — опять же это увеличивает шансы получить больше рейтинга. Заметьте, без всяких полугодовых-годовых аттестаций и достаточно объективно. Больше рейтинга — выше ставки. QA, PM, админы и т.д. абсолютно аналогично получают рейтинг.
Что это дает собственнику? Совершенно прозрачную систему, по которой он четко видит, кто делает больше вклада в результат компании и по каким навыкам. Т.е. делает его компанию «багаче и красивше».
При сравнении по отрасли это вообще принципиально решает проблему в корне (если примерно знать соотношение общих объемов компаний), в отличие от нынешних сравнений зарплат миддлов и сеньоров, когда HR должны гадать на кофейной гуще — сравнивают ли они сравнимое или несравнимое.
Конечно, это лишь общие принципы, практические внедрения не так просты. Однако, на мой взгляд, методика topsdev — это очень живая, объективная, малозатратная и достаточно простая система по сравнению с аттестациями и застывшими системами грейдов, применение которой пошло бы на пользу всем сторонам.
Все про українське ІТ в телеграмі — підписуйтеся на канал редакції DOU
73 коментарі
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.