TL;DR: рассказываю о задаче оценки вклада сотрудника в общий результат и новой open source системе проведения круговой оценки сотрудников, разработанной в нашей компании, на базе метода оценки 360 градусов. Здравствуйте, меня зовут Иван Кудрявцев — я технический директор и совладелец компании, которая занимается контрактной разработкой. В 2016 году мы начали разрабатывать систему поощрения достижений для инженеров.  Первая идея "пусть менеджеры проектов сами решают..." была встречена скепсисом со стороны тех самых менеджеров, в результате чего началась непродолжительная фаза "подумать о качественном решении". В итоге мы решили взять за основу подход, используемый в методе оценки 360 градусов, когда происходит оценка "вкруг" — то есть, каждый оценивает каждого, плюс могут формироваться дополнительные направления оценки, такие как: В статье я расскажу об истоках проблемы, нашем видении правильного подхода к ее решению, разработанной нами информационной системе, которая выполняет задачи сбора и управления информацией оценки деятельности сотрудников.  В конце статьи будет обзор опубликованной на GitHub системы, которая может использоваться и вашей компанией, если вы планируете использовать похожие решения. Disclaimer: Описываемая в рамках этой статьи система — инструмент, которым можно достичь разные цели, поэтому результаты могут отличаться от организации к организации. В нашей компании все построено на дружественной атмосфере — мы никогда не используем полученные нами сведения для поиска виновного, крайнего, чтобы кого-то покарать. В нашей организации на момент начала работы над этой системой было около 60 разработчиков, зарплата которым начислялась согласно сетке базовых компенсаций, в зависимости от квалификации и направления деятельности. Нам хотелось начать дополнительно поощрять сотрудников за их вклад в общее дело.  Мы — проектная организация, часто работаем на условиях Time & Materials, команды периодически собираются и разбираются, люди переходят из проекта в проект, поэтому премирование, основанное на успешной сдаче проекта не представляется возможным. Понять, за что премировать сотрудников в таких условиях — сложный вопрос.  Мы приняли решение, что премировать необходимо за то, что находится выше чем базовая линия, соответствующая обычным ожиданиям выполнения сотрудником рабочих обязанностей. Если сотрудник работает "нормально", то получает заработную плату, премировать его особо не за что, а если есть за что, об этом должны сказать его коллеги.  В нашей компании мы называем это сверхусилиями, а еще бывают подвиги, альтруизм, лояльность и иные проявления того, что не входит в базовые договоренности о работе в организации. Основная цель, которую мы преследовали — получить понимание того, как сотрудники воспринимают вклад коллег, с которыми работают, поскольку на основании этих сведений можно принять решение о выделении премии, исходя из ценности вклада сотрудника, осознаваемого его коллегами.  Дополнительно, нам хотелось получать данные о том, как человеку в компании вообще живется, безотносительно коллег — устраивает ли рабочее место, нравится ли текущий проект, происходит ли профессиональное развитие и подобные вопросы. На первый взгляд кажется, что это довольно банальные вопросы, которые могут решаться прецедентно, однако, мы не раз сталкивались с ситуацией, что человек не записывается в список на апгрейд, когда мы запускаем соответствующий опрос через Google Forms, или согласно рецепту, описанному в корпоративном хэндбуке сотрудника, однако в ходе события оценки (мы называем оценкой событие запуска опроса) пишет о том, что сильно недоволен своим оборудованием и, вообще, у него SATA HDD 250 GB 2012 года выпуска. Еще бывают сотрудники, у которых уже “кипит”, но ни на встречах формата один на один, ни в режиме "поговорить с руководителем" они никак себя не проявляют — а в ходе оценки начинают выливать накипевшее. Нам кажется, что причин подобного поведения несколько: Почему в ходе оценки люди все же высказывают свои комментарии по этим вопросам? Вероятно, это связано с организацией оценки — это выделенное событие, которое в определенный момент поднимается в рабочем приоритете выше, чем проектные задачи и позволяет человеку выключиться с проектных вопросов и подумать в рамках тех направлений, которые есть в оценке. В общем, это работает. Мой соучредитель живет в другой стране, результаты работы системы позволяют ей понимать что происходит в компании, наблюдать среднюю температуру по больнице, общий настрой людей, их ожидания и мысли. В конечном итоге, эти наблюдения находят отражение во внутренней HR-стратегии компании. Как уже упоминалось ранее, за основу мы приняли метод, названный “оценка 360 градусов”. Вот что пишет Wikipedia об этом: “На последнем этапе…”, а именно предоставления результатов оценки сотруднику у нас пока нет. Поскольку мы не понимаем насколько адекватно будет воспринята "сырая" обратная связь нашими людьми — а среди IT-специалистов много людей с тонкой душевной организацией, то этот пункт мы решили опустить. Хотя, желающим получить сводку по оценке, мы предоставляем ее с помощью электронной почты или очно, если есть что обсудить. Мы проводим оценку один раз в квартал и считаем такую периодичность оптимальной по следующим параметрам: трудозатраты на анализ результатов, актуальность воспоминаний в памяти сотрудника, периодичность премирования, периода накопления изменений. Рассмотрим подробнее каждый из пунктов. Трудозатраты на анализ результатов. В настоящее время система позволяет собирать информацию, но не интегрирует ее в численные показатели.  Мы сознательно решили не ограничивать функциональность системы закрытыми и предопределенными ответами (да/нет, 1-4, хорошо/плохо), поэтому в наших опросах много открытых, хотя и закрытые система тоже позволяет делать (собственно, как и предполагается в рамках классического подхода оценки 360 градусов). После того как оценка завершилась, доверенное лицо начинает анализ ответов, производит дополнительные консультации с сотрудниками для прояснения различных нюансов ответов и составляет интегральную картину по каждому сотруднику. На текущий момент у нас в компании около 60 сотрудников, разбитых на несколько проектов, и анализ занимает приличное время.  Если проводить оценку чаще, то соотношение изменений к трудозатратам на анализ кажется нам неразумным. Однако, it's up to you. Актуальность воспоминаний. У нас была попытка проведения оценки 1 раз в 6 месяцев — изменений слишком много, да и люди переходят между проектами, в итоге остаются фрагментарные и стершиеся воспоминания о "прошлой жизни", по оценке нашего ответственного человека — качество оценки значительно ниже, чем при квартальной оценке. Периодичность премирования. Поскольку мы используем результаты оценки для формирования премирования, то полугодовой цикл не является достаточно удобным как для сотрудников, так и для компании, что, опять же, накладываясь на потерю актуальности воспоминаний, не дает уверенности в правильности принимаемых решений. Период накопления изменений. Если проводить оценку часто, то у сотрудников накапливается довольно мало изменений, которые можно существенно оценить. Кроме того, трудозатраты на анализ результатов, остаются прежними. Как итог, мы остановились на ежеквартальной оценке — в рамках нашей организации она обеспечивает баланс трудозатрат и достаточный объем информации от сотрудников для проработки. Критически важным фактором работы системы в нашей организации является доверие и уверенность сотрудников в гарантии того, что что происходит в Лас-Вегасе, остается в Лас-Вегасе. Практически, это приводит к нескольким последствиям: Это довольно сильно ограничивает управленческие возможности непосредственного воздействия, однако все же позволяет увидеть точки, на которые стоит обратить повышенное внимание, чтобы подтвердить или опровергнуть наблюдения других сотрудников. На текущий момент мы провели 8 событий оценки — в 2017-2019 годах. Из этих событий большая часть была персонифицированной, меньшая анонимизированной. В нашей организации система показала себя наилучшим образом, регулярно позволяя определять как сотрудников для премирования, так и потенциальные проблемы командного и индивидуального характера. По мнению моего соучредителя, которая занимается обработкой этих данных и всеми внутренними HR-процессами в компании — это самая полезная система из тех, которые мы применяем (возможно, за исключением системы управления меню заказа обедов — война войной, а обед по расписанию). За период использования мы ни разу не столкнулись с негативными последствиями применения, что на мой взгляд обеспечено как “гарантом” системы, в лице моего соучредителя, так и изначальными соглашениями о способах использования информации, полученной при использовании системы. Мы имеем довольно объемный список предложений от наших пользователей, большая часть из которых нацелена на повышение удобства работы с системой как для людей, которые участвуют в оценке, так и для человека, который выполняет анализ. У нас есть часть бизнеса, построенная на аутстаффинге — в этих проектах люди мало взаимодействуют с коллегами, для таких сотрудников часто недостаточно фидбэка от коллег и это проблема. В этом случае, есть теоретическая возможность расширить систему до так называемой оценки по методу 540 градусов, когда сотрудника оценивают его клиенты, однако пока что мы это не применяем. Если у вас краткосрочные проекты — например, ваша компания специализируется на разработке малых сайтов, то у вас сотрудники будут часто ротироваться между командами. В этом случае вы можете использовать плоскую структуру с более частыми оценками, например, 1 раз в месяц. Чтобы лучше понять какие типы вопросов мы задаем нашим сотрудникам, я приведу скриншот из реальной опросной формы. Эти вопросы могут позволить вам составить представление о том, как бы вы могли применять систему в вашей организации (к сожалению, информации на картинке много — надо кликнуть на скриншот, чтобы увидеть в полном размере):  А вот некоторые персональные вопросы:  Часть вопросов подразумевает возможность ответить по-своему или дополнить ответ уточняющим комментарием. Последствия применения системы тоже имеются. В команде выросла открытость, люди стали больше делиться своими проблемами, чувствовать возможность на что-то повлиять и просить что-то для себя.  Это довольно стрессовый процесс для руководства — начать получать много обратной связи, которую необходимо обрабатывать. Меняется сам подход к работе с проблемами и потребностями коллектива — можно сказать, возникает переход от централизованного авторитарного управления к модели, где каждый может внести свой вклад в решения и действия организации. Кратко перечислю основные сущности, используемые в системе, а завершу обзор инфографикой, показывающей основной процесс работы с системой специалистом, который администрирует систему в организации (HR). . Субъект, который выполняет ту или иную роль в системе в зависимости от роли группы, в которой он состоит. Группа. Логическая сущность, которая объединяет пользователей, для которых будут применены одни и те же способы оценки, например, группа “Разработчики команды X” или "Продукт-менеджеры команды X". Группы могут организовываться иерархически, что позволяет задать организационную топологию в форме дерева. На уровне групп задаются отношения оценивания. Форма. Список вопросов, который будет применяться в рамках определенного аспекта оценки, это примерно то же самое, что и Google Form в случае организации опросов. Шаблон письма. Шаблон сообщения, отправляемого тем или иным пользователям системы при наступлении определенных событий, например, уведомление о скором начале оценки. Проект. Сущность, которая объединяет набор триплетов { оценивающая группа, оцениваемая группа, форма оценки }. Именно на уровне данных триплетов осуществляется процесс оценки — для каждого участника оценивающей группы задаются вопросы из формы оценки о каждом участники оцениваемой группы. Событие оценки. Множество проектов, объединенное календарным планом проведения оценки.  Пример того, как выглядит проект, приведен ниже. Вы можете видеть три отношения оценивания. Группа-аудитор для этого проекта CFO, в случае нашей организации в этой группе находится единственный пользователь, который упоминается в тексте ранее:  А вот как выглядит одно из завершенных событий оценки. Вы можете видеть проекты, которые в нем участвовали:  Мы в Битворкс активно используем сервисы Google для бизнеса, поэтому наиболее просто будет начать пользоваться системой тем компаниям, которые тоже используют данный сервис. Однако, перед публикацией в Open Source мы реализовали несколько дополнительных социальных аутентификаторов и универсальный аутентификатор по внешнему HTTP-запросу, что позволит организациям легко интегрировать Open360 в свою инфраструктуру, не отказываясь от ведения базы абонентов в привычной системе. В настоящее время результаты оценки выгружаются в форме электронных таблиц на Google Drive. В том случае, если вы не планируете создавать свой инструмент анализа данных, для работы системы вам понадобится аккаунт в Google с корректными разрешениями. В настоящее время система не позволяет осуществлять выгрузку и анализ результатов иным способом. Бэкенд системы разработан с помощью Scala и фреймворка Play. На момент публикации мы выполнили миграцию кода бэкенда на последний релиз Scala в ветке 2 — 2.13. В качестве СУБД система использует PostgreSQL, миграции сделаны с помощью Flyway. API системы оформлено с помощью Swagger. Фронтенд системы разработан на Angular, язык, соответственно, TypeScript. Перед выходом в open source мы выполнили обновление Angular до версии 9.0.2.  Для развертывания мы используем контейнеры Docker — для бэкенда и фронтенда. Мы предоставили предварительно подготовленные рабочие формы, группы пользователей и проект, что позволит вам быстро начать использовать систему в вашей организации. Мы уже давно хотели выложить систему в открытый доступ, однако, в последние месяцы не было возможности реализовать функции аутентификации, которые позволили бы компаниям, не использующим сервисы Google использовать систему. В феврале 2020 мы наконец-то смогли поработать над новыми фичами наших внутренних пользователей и включили в бэклог несколько социальных аутентификаторов и универсальный аутентификатор, который работает по протоколу HTTP. Кроме того, мы перенесли систему из нашего GitLab в инфраструктуру GitHub и реализовали тестирование на базе Travis, Coverall, публикацию образов в Docker Hub. Исходный код системы выложен под свободной лицензией Apache 2 на GitHub — качайте, устанавливайте, ставьте звезды, если проект этого заслуживает: https://github.com/o360. Для того, чтобы было проще начать пользоваться системой есть документация для пользователей: https://github.com/o360/user-documentation. Руководство по развертыванию системы описано в инструкции. Видео в Youtube, которые демонстрируют работу администратора и пользователя в системе:  В ближайших планах у нас реализовать набор улучшений, запрошенных нашими сотрудниками. Большая часть этих улучшений направлена на удобство и продуктивность процесса оценки.  Мы размышляем о целесообразности реализации средств повышения продуктивности сотрудников, анализирующих результаты, но не пришли к окончательному мнению о необходимости внедрения конкретных инструментов в разрезе нашей организации. Мы будем рады вашему вниманию к проекту, PR-ам, готовы помочь внедрить систему и адаптировать для нужд вашей организации. Мы открыты для совместных идей, ищем возможности и дальше работать над этим продуктом. Техдиректор в дикой природе