Почему в Confluence?
Когда я пришел в команду разработки платформ бизнес-сервисов, мне было сложно разобраться, кто чем занимается, какие продукты разрабатываются и поддерживаются, какие навыки для этого нужны команде, кого и чему нужно научить.
В этой статье я расскажу, как мы строили матрицу навыков (компетенций) команды, как она эволюционировала, и какие вопросы мы теперь с её помощью решаем.
Статья будет полезна руководителям групп, тимлидам, которые хотят быстро внедрить процесс наполнения и актуализации матрицы компетенций.
![](https://habrastorage.org/webt/0q/js/jq/0qjsjqmx1g7bd4lk-ons5l8xixq.png)
Первое, что пришло на ум, — это сделать таблицу, где в строчках сотрудники, а в колонках навыки/продукты. Встал вопрос, где вести такую таблицу?
- Excel — сложно организовать совместное редактирование
- Google Docs — не рекомендован к использованию в компании.
Подсказку «сделать в Confluence» я нашел в докладе Алексея Трошина (ФИНАМ) «Знания и компетенции в команде: найти, увидеть, прокачать». Кому больше нравится читать — держите конспект доклада от Светланы Новиковой.
Шаг 1. Обычная таблица
В начале я сделал обычную таблицу, где в строчках — навыки, в колонках —сотрудники. На тот момент в команде было 10 человек и с полсотни навыков, сгруппированных по тринадцати темам.
Начальный список навыков мы c командой придумали во время ретро. Таблица выглядела относительно компактно. И все с удовольствием пошли заполнять. Заполнять необходимо было количеством звездочек. Тут же возник вопрос? А сколько звездочек ставить? Нужны критерии.
- Давно изучал и давно не применял на практике
- Прослушал курс/изучал самостоятельно, практики было мало
- Практик, регулярно применяю на практике
- Эксперт, знаю тонкости, готов делится лайфхаками с коллегами
- Гуру, готов выступать на внешних конференциях
![](https://habrastorage.org/webt/ua/u9/oe/uau9oeh-acsey6dxh8wskgvxttu.png)
После этого все довольно оперативно смогли заполнить информацию по себе.
![](https://habrastorage.org/webt/f9/us/js/f9usjs-dza2tevugkcew502oo5e.png)
Итоги после первого шага
Время: От идеи до первичного заполнения прошел один спринт (две недели).
Выхлоп: Стало понятно, где у нас пробелы в знаниях, кого чему нужно учить. Составили график обучения (заказали курсы в нужном объеме).
Шаг 2. Сводная таблица
Шло время, команда росла, добавление новой колонки с новым сотрудником становилось все труднее. Кто работал в Confluence, знает капризы работы с таблицами. К тому же появились новые навыки, захотелось их по-другому сгруппировать. Плюс оказалось, что анализировать 15 человек не так удобно, как десять. Поэтому я решил воспользоваться функционалом свойств страниц.
Для начала создал страницу «Шаблон профиля специалиста».
![](https://habrastorage.org/webt/og/no/5d/ogno5dcofusollc_ah7syki106i.png)
Все навыки разделены по группам. Для каждой группы навыков добавил по отдельному свойству страницы.
![](https://habrastorage.org/webt/uz/ox/en/uzoxendkv_cddku6mefhdv3oylc.png)
Для примера на картинке выше две группы навыков: Computer languages и Management.
![](https://habrastorage.org/webt/dj/of/l6/djofl6tmrfrnl1aydr-vsitxuwy.png)
Далее добавил метку (Label) на страницу «Шаблон профиля специалиста». Например, skills.
![](https://habrastorage.org/webt/iv/1h/en/iv1henbis3etc9kqtnhtat0v-ta.png)
Отлично — у меня появился шаблон. Я попросил каждого участника команды скопировать страницу и назвать своим именем, заполнить свой уровень по каждому из навыков.
Теперь магия — сводная таблица по свойствам страниц.
![](https://habrastorage.org/webt/06/xq/az/06xqazekihuaohkyqbo3tjv2-5u.png)
Добавил макрос «Вертикальное меню», внутри него макрос «Элемент вертикального меню», внутри него макрос «Отчет по свойствам страницы».
![](https://habrastorage.org/webt/os/rm/nf/osrmnfxzf1er09uofk3tw_j1l74.png)
У элемента вертикального списка задал название. Оно может быть любым и может не совпадать с названием свойства страницы.
А вот с макросом «Отчет по свойствам страницы» немного сложнее.
Во-первых, надо указать метку — ту, что навесили на «Шаблон профиля специалиста». Например, skills. Это позволило мне отобрать только нужные страницы.
Во-вторых, стоит ограничить список пространств, в которых будут искаться страницы. Например, текущим.
В-третьих, важно указать «Свойство страницы», ведь, как мы помним [из предыдущего], в шаблоне сотрудника у нас много свойств, каждое из которых соответствует одной группе навыков. В данном случае — «computer language».
Наконец, лучше задать название первой колонке в сводной таблице. Я назвал её «Сотрудник»
![](https://habrastorage.org/webt/jz/-f/dy/jz-fdylbsrebtqftihf-t_b-kbi.png)
Повторил для следующей группы навыков. Добавил «Элемент вертикального меню» и внутри него «Отчет по свойствам страницы».
Теперь давайте посмотрим, что у меня получилось?
![](https://habrastorage.org/webt/zk/nk/3z/zknk3zthimayb0yj4pluzpwhsqq.png)
Итоги после второго шага
Время: На разработку шаблона и сводной таблицы ушло около недели.
Выхлоп: Стало удобнее анализировать полученные данные.
Шаг 3. Продвинутый шаблон
Предупреждение: Для этого улучшения потребуются права администратора пространства.
Некоторое время мы жили с такой таблицей, было удобно смотреть и добавлять новых сотрудников. В то же время в соседнем подразделении реализовали инициативу по сбору информации о доступных учебных курсах, и на какой уровень этот курс помогает перейти. Навыки соседей частично пересекались с нашими, но вот градации были разными. То есть для каждого навыка было детально определено, что нужно знать и уметь делать.
![](https://habrastorage.org/webt/rp/gz/x1/rpgzx1emb3zaeoj28cgyqnd-6o0.png)
Мне показалось полезным перенять этот опыт, и мы с командой решили перейти от универсальных звездочек к цифрам. И в этот момент возникает сложность: так как для каждого навыка свои критерии оценки, то при переносе критериев в шаблон он становится очень большим, а при его заполнении нужно много чего удалять.
Для решения этой проблемы я решил использовать «Пользовательский шаблон».
![](https://habrastorage.org/webt/qv/ge/oy/qvgeoyeo0gykpkpx0azur_26dl4.png)
Первое, что мне помогло, — «Подсказка» с расшифровкой, что нужно знать и уметь, чтобы проставить соответствующий уровень навыка.
![](https://habrastorage.org/webt/ez/mx/4n/ezmx4nhgh7fiudctxef3fgebknm.png)
Второе — tooltip. Этот макрос позволил мне сделать всплывающее описание к навыку и будет полезен для просмотра информации на сводной таблице.
![](https://habrastorage.org/webt/pq/mx/wd/pqmxwdlep58rblmbfda1b0v2i78.png)
В итоге мой шаблон выглядит вот так:
![](https://habrastorage.org/webt/hu/rz/ym/hurzymisxwuqwzceu_r7sn8o7ig.png)
Теперь таблица с навыками сотрудников смотрится более компактно, есть подсказки, какой уровень что означает.
Ой, я чуть не забыл рассказать про то, как воспользоваться нашим пользовательским шаблоном. Все просто. Добавляем макрос «Создать из шаблона»
![](https://habrastorage.org/webt/ec/oo/by/ecoobygw6nfeb9bb-b1qlxzxwf8.png)
В результате появляется кнопка
![](https://habrastorage.org/webt/xd/rl/ha/xdrlhalr2xe-stlvf80y5bdbzdu.png)
Возможно, у внимательного читателя возникнет вопрос: зачем нужна еще метка? Все просто. При подготовке сводной таблицы можно еще больше ограничить список отбираемых страниц.
![](https://habrastorage.org/webt/kx/_j/f7/kx_jf7yjb5f-cnorxxwhmil_wm8.png)
Я использую эту возможность для формирования отдельных сводных отчетов по мини-командам. Как вы помните, когда я пришел, нас было десять, на первой итерации изменений — уже 15, сейчас нас более двадцати, и мы приняли решение делиться на четыре мини-команды.
В нашем случае это команды:
- DEV – внутренняя автоматизация
- CI/CD – развитие и эксплуатация таких продуктов как Artifactory, Gitlab, Jenkins и т.д.
- k8s – развитие kubernetes
- TESTZONE – автоматизация пересоздания тестовых зон
Кроме того, мы решили добавить в каждую команду по профилю целевого сотрудника. То есть что должны уметь делать все сотрудники внутри мини-команды для выполнения задач. Теперь каждый может легко сравнить себя с целевым и понять, что нужно прокачать. А дальше сотрудник идет на сборник ресурсов для саморазвития и выбирает нужные курсы / материалы.
Итоги после третьего шага
Время: На разработку и тестирование нового шаблона у меня ушло две недели. Основное время на уточнение формулировок критериев для каждого навыка.
Выхлоп: Оценка уровня навыка стала более точной. Есть возможность сравнивать с целевым специалистом и планировать обучение.
Заключение
Вот какие задачи решает матрица компетенций у нас:
- Во-первых, bus factor. Очень не хочется оказаться в ситуации, когда о том, как работает продукт, знает только один человек, и он уходит. Это полезно и для планирования, и для согласования отпусков.
- Во-вторых, нужно планировать платное обучение. Заранее принять и согласовать решение о том, кого, когда и на какие курсы отправить.
- В-третьих, самообучение. Есть как внутренние курсы, так и множество открытых ресурсов. Главное — определить, какой навык нужно прокачивать и создать на это задачу.
- И, наконец, мы нашли еще одно применение профиля целевого сотрудника: с его помощью мы решаем вопрос подбора персонала. Можем четко объяснить HR, кого мы ищем.
Рад буду услышать, предложения, замечания и комментарий как можно развить и использовать матрицу.
rkalashnikov
Часто так складывается, что люди обманывают сами себя в уровне своих знаний и желаниях.
Отсюда два вопроса:
1) Как вы валидируете оценку с реальность?
2) Как часто вы синхронизируете эти данные? (кто то перехотел учить или наоборот раньше не хотел в PHP, а теперь хочет)
AlexeySafin Автор
Спасибо за вопрос.
"
Для решения первой проблемы мы ввели конкретные критерии попадания в уровень: Что нужно уметь делать. Об этом написано на третьем шаге. Пример критериев.
На счет синхронизации, примерно раз в полгода — когда поднимается вопрос планирования платного обучения. При этом есть ожидание что сотрудник сам заинтересован в актуализации информации о себе.
ivanokunev
Когда смотришь на Ваш раздел Git — становится грустно, ведь всегда ожидал, что знания гуру — это не пониманием флоу (они просто пониже уровнем), а dump/smart протоколы, git-object'ы, на худой конец рефспеки.
AlexeySafin Автор
Иван, спасибо. Я предложу команде поменять критерий по данному навыку.