Одним весенним утром мы с коллегой задумались, как бы улучшить качество работы наших команд в компании. Создать такие условия, чтобы ребятам хотелось выполнять свою работу еще более качественно, чтобы творец стремился изобрести продукт или часть его как можно изящнее. Где бы было ясно какие навыки нужно улучшить, а какие являются высшим пилотажем. Где не возникало бы вопросов о качестве работы, а премирование было максимально прозрачным. Где руководитель мог бы видеть продуктивность своей команды и какие скиллы ее участников нуждаются в улучшении.
Именно так зародилась идея нового продукта, минимальные функции которого мы тотчас же постарались описать.
MVP-версия продукта стартовала как Open Source решение и его развитие должно было происходить в свободное от основных задач время
Минимальный жизнедеятельный продукт мы решили подогнать под отдел разработки, но в последующих релизах планировали доработать функционал под другие подразделения, например такие как служба поддержки, отдел маркетинга и другие.
Первое, что мы зафиксировали, это субъекты. Для начала в системе должно существовать четыре ключевые роли
Отдел качества мы решили в минимальный жизнеспособный продукт не включать, оставив этот функционал на более поздний срок.
Нам хотелось, чтобы система представляла из себя подобие конструктора, чтобы роли в системе не были чем-то статичным, а могли конфигурироваться администратором. Так и появилась админ-панель по управлению ролями
При помощи админ панели и настроенной роли, пользователь может активировать или блокировать зарегистрированных участников, формировать роли из системных разрешений и назначать их любым юзерам
В идеале нам хотелось, чтобы каждый участник команды мог видеть показатели своего роста. Свои слабые и сильные стороны. На развитие каких навыков ему следует сделать наибольшие акцент, чтобы продвигаться вверх по карьерной лестнице. Нам хотелось создать для резидента комфортные и прозрачные условия мониторинга своих фактических способностей. Для реализации такой возможности нам требовались данные которые следовало бы постоянно пополнять и актуализировать. Так появилась идея новой функции “Оценка”.
Оценка - количественное выражение достижения команды, участника или отдела в целом. Мы решили, что два типа оценок для начала будет вполне достаточно:
Качественная (soft skill) - оценивает качества разработчика или проект менеджера, например: умение найти общий язык, ответственность, пунктуальность и т.д.
Техническая (hard skill) - оценивает работу с точки зрения технических знаний участника, например чистота кода, знание архитектуры и т.д.
Оценка подразумевает под собой список вопросов на которые участник должен ответить словом “Да” или “Нет”, где первое является положительным результатом, а второе - негативным. Так в панели администратора появилась функция управления навыками
Если есть оценка, то должен быть предмет оценивания. Таким образом мы дали старт новой сущности “Задача”. Лидер команды или проект менеджер, а возможно и руководитель разработки, в зависимости от того, как настроены роли, создает задачу и ставит ответственного.
Здесь прослеживается элемент таск-менеджера, но в будущих релизах мы хотим сделать интеграцию с популярными системами по управлению задачами, например с YouTrack.
Чтобы иметь возможность наблюдать продуктивность всей команды или собрать статистику по какому-либо проекту, были реализованы еще две сущности “Команда” и “Проект”. Пользователь с настроенной ролью может создавать проекты и формировать команды.
Процесс оценивания начинается в тот момент, когда задача была исполнена. Оценивающий участник команды видит список вопросов и должен ответить на них “Да” или “Нет”. При всем этом инициатор оценки не имеет ни малейшего понятия кого он оценивает, он видит лишь список вопросов. Присуждение оценок распределяется по участникам команды автоматически и под капотом, в зависимости от того, за какой ролью был закреплен созданный вопрос.
Пользователь обязательно должен видеть полученные оценки. По этой причине мы добавили историю отметок, в которую участник команды может перейти кликнув на показатели баллов в дашборде
Здесь он может увидеть список задач, по которым были поставлены оценки. Для дальнейшего анализа качества выполненной работы можно провалиться в конкретный таск и посмотреть результаты
Также у нас был замысел отображать итоговые результаты участнику команды за период времени в дашборде. Результаты должны были быть реализованы в графическом виде по двум причинам. Всё ради пользователя. Во-первых, данные об оценках должны быть комфортны для восприятия, а во-вторых, у человека должна быть возможность наблюдать свой рост или спад в рамках заданного периода.
Задумано - сделано. На главную страницу системы мы поместили линейный график с отображением положительных и отрицательных отметок, а также количества выполненных задач
Часть задуманного была запущена. Каждый участник команды мог наблюдать свои проблемные места, над которыми следовало бы поработать, а также сравнивать свои способности относительно заданного периода времени.
MVP-версия продукта была завершена. Продемонстрировав продукт своему руководству, я предложил его как коммерческое решение. Руководству идея понравилась и я получил одобрение на бета-тестирование в рамках одной команды. В процессе пробной эксплуатации системы я решил не привлекать роли руководителей разработки и проект-менеджеров, а обойтись разработчиками и лидером команды.
В момент пробной эксплуатации мы с небольшим community продукта продолжали работать над проектом. В момент использования системы, идей для новых недостающих функций было так много, что бэклог только и успевал пополняться.
Мне в голову пришла мысль, что было бы неплохо выводить из системы данные о проделанной работе в рамках выбранного члена команды. Эти отчеты можно было бы ежеквартально отдавать руководству для решения о премировании сотрудника.
Данные отчеты являлись бы приложением к ежеквартальным рекомендациям лидера команды с целью ввести более прозрачную процедуру начисления денежного вознаграждения. Сверстав и согласовав формат отчета мы принялись к разработке задуманного. Спустя некоторое время появилась новая функция “Отчеты”.
В отчете фигурирует краткая информация о личности и детализация оценок за выбранный период.
Идей было невероятно много, но мы, к сожалению, не всегда поспевали за ними. У меня в мыслях уже давно крутилась задумка привнести больше активности в проект. Мне хотелось быть в курсе всех новостей своей команды. Например, когда кто-либо меняет должность, присоединяется в команду, получает ту или иную оценку и другую активность.
Почему бы не создать ленту, подумал я и предложил эту идею нашему небольшому сообществу. После обсуждений и отрисовки макета идея была зафиксирована и помечена бэклогом. Пролежала в архиве она не так долго и была реализована некоторое время спустя.
В настоящий момент в ленте можно наблюдать активность касаемую только себя самого, но в будущих релизах планируется внести много больше гибкости, где можно было бы настроить ленту под мониторинг команды, проекта или всей компании целиком.
Как и с лентой активности, я давно вынашивал идею фиксирования профессиональных или личных целей, и мониторинг процесса их выполнения. Ребята из community подхватили эту идею и реализовали функцию OKR.
OKR - метод, используемый в современном менеджменте для управления проектами. Позволяет синхронизировать командные и индивидуальные цели, а также обеспечить эффективный контроль над реализацией поставленных задач.
В настоящий момент функция OKR позволяет лишь зафиксировать цели, но в будущем появится возможность контролировать дедлайн, архивировать цели, а также делиться успехами в ленте активности.
За весь период разработки наше сообщество пополнилось. Проект стал интересен многим коллегам и они подключались в community. Кто-то уходил, а кто-то присоединялся.
Прошло более чем два месяца бета тестирования и уже сейчас, когда год подошел к концу и наступил новый, настала пора подвести итог.
Благодаря системе работа действительно стала намного прозрачнее.
Возможность выводить отчеты с результатами работы для начисления ежеквартальных премий
Отслеживать цели сотрудников
Понимать какие навыки у того или иного разработчика хромают и нуждаются в прокачке, а какие находятся на должном уровне.
Опираясь на оценки поставленные мне, пересматривать подход к работе или к отдельно взятому участнику команды
Конечно же нельзя сказать, что система максимально эффективно сказалась на команде где проводилась бета, но первые, хоть и небольшие, результаты мне понравились и плюсы я однозначно наблюдал
Бэклог в настоящий момент довольно огромный. Планируется запустить:
Функцию “Спасибо”, когда участник команды может вне задач благодарить коллег
Система достижений как элемент геймификации
Карма
Внутренняя валюта, за которую можно приобрести мерч или другие плюшки
Реализовать систему рекомендаций на основе данных, чтобы повышать определенные навыки
Градация роста по карьерной лестнице
Благодарности
От себя хотелось бы поблагодарить всех ребят из WRS Community, которые внесли и продолжают вносить вклад в развитие системы, а также компанию WOOPPAY, в которой я в настоящий момент работаю, за то, что положительно отнеслась к идее проекта и предоставила возможность провести бета-тестирование на одной из команд.
Также большая благодарность Habr-площадке за возможность рассказать о своем опыте.
Большое всем спасибо!
Дополнительные материалы
Ссылка на проект:
https://github.com/wooppay/wrs/
Изображения персонажей ролей для статьи были созданы при помощи “The Character Creator”
https://github.com/ubik23/charactercreator
Рамки для изображений в статье были использованы из freepik.com
Andrew-BUSINESS
Интересно почитать отзывы участников команды, насколько лучше стало работать после внедрения такой системы.
Лично я помню, что встречал только одну максимально удобную модель работы — когда руководство не пытается помогать формальной оценкой или навязчивым контролем работникам (в любой форме: выставлением баллов, системой грейдов, выставлением взаимных комментариев, психологическими собраниями, ежедневными стендапами и пр. и пр.). Эту модель я помню практически во всех компаниях, в которых текучесть персонала была сведена к минимуму. Остальные системы по странному совпадению её увеличивают.