惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
S
Secure Thoughts
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
W
WeLiveSecurity
O
OpenAI News
SecWiki News
SecWiki News
博客园 - Franky
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
T
Tor Project blog
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
Security Latest
Security Latest
H
Hacker News: Front Page
Google Online Security Blog
Google Online Security Blog
P
Privacy & Cybersecurity Law Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
月光博客
月光博客
李成银的技术随笔
Spread Privacy
Spread Privacy
F
Full Disclosure
F
Fortinet All Blogs
T
The Exploit Database - CXSecurity.com
Vercel News
Vercel News
AWS News Blog
AWS News Blog
WordPress大学
WordPress大学
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
V
Visual Studio Blog
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
P
Palo Alto Networks Blog
宝玉的分享
宝玉的分享
T
True Tiger Recordings
N
News and Events Feed by Topic
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
N
News | PayPal Newsroom
S
SegmentFault 最新的问题
Jina AI
Jina AI

Все публикации подряд на Хабре

Production начинается там, где заканчивается вайбкодинг От фич и каскадов к генеративной модели: как мы переосмыслили рекомендации с помощью ARGUS Отвечай, как топовый специалист: как службе поддержки решать настоящие, а не озвученные проблемы клиентов Новые IT-специалисты эпохи AI: как зарубежные и российские компании относятся к vibe-coders, low-coders и zerocoders Локальная система проверки персонала: как мы автоматизировали скрининг соискателей без передачи ПДн наружу Разрабатывали решение для автоматизации, а получили универсальный продукт «Мультиплексор для Лабораторных измерений» Подготовка и сдача экзамена PMP в мае 2026 года Время закрывать доски. Ваш SaaS таск-трекер — это просто слой лака над базой данных Как мы проектировали multi-agent feedback для обучения рисованию Что такое Gemma 4: обзор новой LLM от Google CyBOK. Глава 3. Законы и регуляторные нормы. Часть 8 LLM-инференс на фотонах? Препарируем передовые технологии, представленные в апреле Агенты выходят на работу (часть 3) Нехватка CUDA-памяти при обучении с GRPO: как перестать гадать и начать считать Окей, Lamoda, что надеть на вечеринку? Как обучить LLM навыкам ИИ-стилиста ArchiMate 4: Отказ от слоёв и унификация метамодели Дальнейшая судьба SFP-Master Игровой ПК или PlayStation 5: что выгоднее в 2026 году Flipper One — нам нужна ваша помощь Как мы построили корпоративную LLM-платформу: архитектура, грабли и выводы Устранить нельзя оставить — разбираем ситуацию с уязвимостями в российской виртуализации Bitrix и Laravel: веб-хуки, ERP и все-все-все (часть 5) Поиск секрета популярности лучших репозиториев GitHub за всё время существования платформы Сэкономили на облаке под 1С: ДО — заложили бюджет на штраф. Разбираем 152-ФЗ при работе с 1С Компьютерное зрение: что получается, когда у вас не идеальная лаборатория, а дождь, снег и подвижный манипулятор Параметризация в JUnit 5 и Allure Report Мне 15, и я собираю AI-стартап для недвижки: как я победил GPU, баги PyTorch и очередь в визовый центр Стратегия «Голубого океана»: как системный аналитик влияет на продукт Проектируем с нуля калькулятор на FPGA. Часть 3: Практические численные методы От видимости сети до кибербезопасности: главный миф о сетевой телеметрии, который мешает раскрыть потенциал NetFlow Как интегрировать ТСД с любой конфигурацией «1С: Предприятия»? Человеческие головы, сандалии и лягушки: стегоконтейнеры за тысячи лет до первого компьютера GigaIDE Pro для разработки на Django Как добиться непостоянного момента? Книга: «Kubernetes. Полное руководство по развертыванию и управлению Kubernetes в облачных и локальных средах. 2-е изд.» Почему IT-специалисты остаются: что работает на удержание в 2026 году Соединение деталей 3D-печатных изделий… Простое ли дело? Yamaha RGX121Z RM — современный суперстрат с японским вайбом второй половины 1980-х Как я написал плагин для WooCommerce под Yandex YCP или как купить в 1 клик из Алисы Креативное программирование: визуализация звука Сложно читать IT литературу на кривом русском? Есть решение — книжный ревью (рефакторинг) История о том, как человечество наняло очень странного сотрудника Как мы в отделе документации создали LLM агента для автоматизированного перевода с английского на другие языки Почему e-ink до сих пор не убил LCD, хотя должен был Как оплачивать нейросети и остальное недоступное в РФ в 2026: 9 способов с ценами и рисками, где можно влететь Решение проблем в управлении: почему мидл-менеджеры справляются с кризисами эффективнее топов Сколько телефонов и планшетов продали партнёры: единое хранилище данных для бренда электроники Google Fellow, студент Нанкина и создатель TikTok: кто сделал Seedream и Seedance. Досье SpeShu.AI В прорывном эксперименте из первых в мире полностью искусственных яиц вылупились птенцы Разворачиваем облачный ТОиР на заводе за две недели Vivaldi 8.0 — Унифицированная свобода выбора Как мы с нуля реализовали двустороннее доверие «лес–лес» с Microsoft Active Directory Хакер спас мир и сел в тюрьму: Невероятная история Маркуса Хатчинса и червя WannaCry Построение корпоративной архитектуры в ИТ-проектах, используя методологию TOGAF Пайплайн не должен хранить секрет: безопасное хранение и доставка секретов для CI/CD с Deckhouse Code и Stronghold ОГЭ информатика. 16 задание на Python Asus, MSI и Gigabyte урезают производство материнских плат. Что происходит на рынке Claudex: как я подружил Claude Code с ChatGPT/Codex OAuth без OpenAI API key Как измерить скорость интернета? Почему выгорают не слабые, а ваши Версионирование таблиц репозитория метаданных Sigla Vision Графическая утилита PostgreSQL mini Profiler (в помощь экспертам по технологическим вопросам 1С и не только им) Шахматные программы IV. Термины и методы Почему Я.Директ не приводит премиальных клиентов и что с этим делать – продали элитных туров на 600 млн Реестр отечественного ПО: как бизнесу выбрать решение среди 30 000 записей и не ошибиться Глаза не видят, а код пишется: как я настраиваю и программирую 100+ модулей в умном доме Архитектура AI-сервисов: почему монолит убивает latency и GPU Процессы: чего до сих пор не хватало обычным BPM (Часть 2) Книжный салон — дополнительные книги от издательства «БХВ». Предзаказ Как продакту довести фичу до прода без PMBOK и PRINCE2 Оргмодель, процессы и агенты (Часть 1) Probe-сеть из 10 регионов: что я не учёл про AS-разнесённость Как автоматизировать повторную обработку сообщений из архива в DATAREON Platform Arguments to Config — простая и мощная библиотека для парсинга аргументов в CLI-приложении на C# Как я обучил GPT с нуля на русском языке — и что из этого получилось Миллион алых нод: о выборе баз данных для хранения больших объёмов Билеты, баги и БДСМ: хроники тревел-стартапа От vSphere к VCD: как мы построили хранилище образов и нативный CSI для Kubernetes Фолдинг белка на ноутбуке. De novo дизайн KRAS G12D (Switch II) ингибитора. Докинг, валидация в AlfaFold Server и PyMOL Тебя уволят, и ничего не сломается. Возможно, станет даже лучше ИИ от Anthropic вскрыл банки G20, Цукерберг уволил 8000 человек за один день, а мы это пропустили Один за всех: как я в одиночку тащу фуллстек-проект, который незаметно разросся до соцсети Реакционная лженаука. Как СССР осудил кибернетику — и чем это аукнулось для ИИ Лёгкий мониторинг Proxmox-кластера: Pulse вместо большого Zabbix-стека RAG для тех, кто разочаровался: почему retrieval ломается и как это починить Три уровня субъективной реальности: почему непонимание в командах заложено биологически Дирижёр вместо конвейера: как AI ломает классический pipeline разработки Dart 3.12 — что нового в Dart? Четыре реакции — четыре тела. Можно ли измерить тип личности по сердцебиению? Flutter 3.44 — Что нового во Flutter? Найм инженеров в 2026: ботлнек — это не рынок, это вы Тонкие контроллеры и модели. Использование паттернов проектирования в Rails-приложении Тезис о расширенном разуме Сумасшедшая история Т9: Стартапы, дельфины и буддизм [Перевод] Открыл ли китайский компьютер «Цзючжан 4.0» эру квантового превосходства? Что такое DWH (КХД) и как работает корпоративное хранилище данных Как я создал сервис по написанию формальных документов Как сервисному бизнесу автоматизировать проверку качества обслуживания клиентов GitHub блокируют, Bun переписали за 9 дней, и частный космодром в России AsmX с движком Raptor: Архитектура абсолютного контроля
Матрица компетенций джедая: как снизить Bus Factor на проекте
Gradiens (Ци · 2026-05-21 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение8 мин

Охват и читатели103

Туториал

Представьте: у вас упал прод, и никто не знает, как поднять. Проблема в коде, который писал один человек. А он – недоступен. Или вообще уволился. И вот за вашим плечом вырастает фигура начальника. Затем – начальника начальника. Вы выдергиваете на созвон всех: разрабов, девопсов, тестеров и устраиваете мозговой штурм . Кто-то смотрит код, кто-то логи. А решения все нет. Брр….

Меня зовут Иван, я тимлид. Мне важно, чтобы на проекте не было таких «факапов». Я работаю над устойчивостью команды к рискам. 

Потеря знаний – серьезный риск. Печально, если никто не знает, как работает фича или как устранить инцидент. Для снижения риска я использую матрицу компетенций конкретного проекта. В матрице нет места сферическим знаниям типа «Асинхронности», «SQL», «Паттернов». Только конкретика: «Делал релиз», «Разработал отчеты».

Меня этот инструмент как-то раз серьезно спас, когда ротировалась половина команды. Bus Factor ≥ 2 позволил не потерять критичные знания на проекте. И хотя мой опыт несёт флёр Капитана Очевидности, я рискну им поделиться. Потому что хочу помочь командам, у которых до сих пор Bus Factor = 1.

Случаи из практики. 

Что бывает, когда матрицы нет.

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

В конце первого дня прогресс был нулевой. В воздухе запахло разрывом единственного контракта, который «кормил» фирму.

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

Пронесло. Не упало. Так я понял, что «автобусный фактор» – это не просто юмористический термин.

И как хорошо, когда она есть.

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

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

И тут… внезапно из команды забрали двух разработчиков из четырёх. Взамен наняли двух новых. Если бы каждый разработчик пилил свою часть в одиночку, мы бы лишились половины компетенций.

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

О чём пойдёт речь

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

Ниже покажу:

  • Как пользоваться матрицей.

  • Как её составить.

  • Как поддерживать.

  • Дополнительные плюшки

Использование матрицы

Начну с примера. 

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

Матрица компетенций

Матрица компетенций

Цель работы с матрицей.

Для каждой компетенции улучшить метрику Bus Factor, то есть число джедаев с оценкой не менее двух. 

Что делать для достижения цели?

Найти строки с критичными компетенциями и маленьким Bus Factor

В примере выше это:

  • CI/CD. Если сломается во время отсутствия Петрова, то не будет релизов. Да, многие умеют релизить, но из-за падения CI/CD все встанет.

  • Обработка заявок. Без Петрова возникнут сложности. 

  • Интеграции. Без Иванова не обойтись.

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

Так они прокачают всего понемногу и выйдут из красной, а затем и из желтой зоны. 

В нашем примере падаванам лучше начать с задач по заявкам и по CI/CD под менторством Петрова. А еще пусть покурят интеграции под присмотром Иванова.

Как долго делать?

Пока Bus Factor не станет равным половине людей в команде, но не менее двух. По критичным компетенциям – не менее трёх.

Меньше нельзя: риски. Больше – неоправданные вложения. 

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

Предупреждение

Когда дадите падаванам незнакомые им задачи – перфоманс деградирует. Но лучше словить просадку в контролируемой среде, чем в момент ухода старших джедаев в отпуск. И хорошо, если просто в отпуск. 

К тому же, падение перфоманса можно сделать прозрачным для бизнеса, введя понятие «Кривая обучения». Скажем, первая задача выполняется со скоростью 50% от идеала, вторая – 75%, третья – 90%. Вначале числа выбираются эмпирически, затем корректируются по мере накопления реальных кейсов обучения.

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

Я не призываю все бросить и учиться ради обучения. Но я предлагаю переложить на бумагу то, что вы и так уже знаете. Сделать прозрачным для команды и для начальства. Управлять рисками, а не игнорировать их.

Окей, что делать с матрицей плюс-минус понятно. Но сначала её придётся составить, а для этого нужен список компетенций.

Как составить матрицу.

Составление списка компетенций

Теория

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

Диапазон 20-40 – эмпирический. Не берите слишком мало, чтобы не упустить что-то критическое. И не берите много, чтобы не словить расфокус. Для вашей команды и вашего проекта оптимум может отличаться. Экспериментируйте.

Хороший пример

Если у вас каждый раз все холодеет от вопроса «А почему это тарифы так странно рассчитываются?», значит, «Расчёт тарифов» – хорошая, годная компетенция. Классифицируем её как критический функционал и заносим в матрицу. 

Если вам нужно то одно, то другое закинуть в интеграционный поток, то «Интеграционный сервис» – подходящая  компетенция. Классифицируем – и в матрицу.

Если у вас в команде постоянно говорят «Ошибка обновления кэша», «Кэш тормозит», «Кэш ест память», «ууу, это надо кэш править», то «Кэш» – отличная компетенция. Берем его  на карандаш. Даже если заказчик не подозревает о его существовании.

Очевидно плохой пример

Нельзя переносить в компетенции навыки и знания.

Предположим, вы делаете приложение для инвесторов. Плохая компетенция: «Знания GRPC». Она слишком абстрактная. Вряд ли на вас упадет инцидент «Вы плохо знаете GRPC». Хорошая компетенция: «Интеграция с Московской биржей». Ведь вполне вероятны инциденты типа «Остановился поток котировок c Московской биржи».

Не очевидно плохой пример

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

Допустим, мы заведем три компетенции на ядро системы (оно ведь такое важное), и одну – на отчеты. Тогда будут «мёртвые» компетенции, по которым задач нет и не предвидится. Как их тогда качать? Полезность компетенции зависит от востребованности доработок. Лучше завести по компетенции на каждый вид постоянно изменяющихся отчетов, и только одну – на стабильное ядро.

Классификация компетенций

Полученный список я распределяю на группы:

  • Функционал: опыт разработки конкретных модулей проекта. 

  • Релизы: все, что обеспечивает непрерывную поставку ценности на продуктив.

  • Поддержка:  знания по решению инцидентов и оказанию консультаций.

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

Каркас матрицы

Итак, вы составили список компетенций: часто меняющихся и фрустрирующих зон проекта. Напишите наверху список людей, а сбоку – компетенций. Всё, каркас матрицы готов. Теперь его надо наполнить оценками.

Как давать оценки.

Я предлагаю оценивать уровни компетенции по шкале от 0 до 3. Шкала нелинейная: каждый следующий уровень значительно сложнее предыдущих. Но так и задумано.

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

Уровни джедаев:

Бот

Бот

Ранг: 0 Бот.

Знания: Отсутствуют, либо они сугубо теоретические. Опыта нет.

Падаван

Падаван

Ранг 1:  Падаван. 

Знания: фрагментарны.

Критерий: Выполнил пару несложных задач под присмотром ментора.

Джедай

Джедай

Ранг 2: Джедай

Знания: покрывают практически все, но не везде они достаточно глубоки. 

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

Магистр

Магистр

Ранг 3: Магистр 

Знания: Что нужно знает всё. Постиг тонкости устройства мироздания компетенции. Знания его освещают путь. 

Критерий: Задач сложных и инцидентов решил десяток

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

Актуализация матрицы.

Дальше – регулярно актуализируйте компетенции. Делайте это упражнение раз в 2-4 недели. Или раз в спринт, если работаете по скраму. В идеале введите новый ритуал незадолго перед планированием. На нем просто вспомните (или спросите), кто и что делал, и накиньте им баллы за эти активности. Каждый балл должен быть подтверждён кейсом. Также (к счастью, редко) приходится срезать баллы. Не трогал что-то полгода – минус балл.

Я актуализирую компетенции на общедоступной странице в Confluence. Рекомендую начать с ручного ведения матрицы, чтобы почувствовать инструмент. Для одной команды ручные трудозатраты оправданы. Если же у вас несколько команд, то отчет можно автоматизировать. Указывайте в каждой задаче компетенции, например, в поле «Компоненты». Далее при помощи магии JQL рассчитайте уровень компетенций и через макрос выведите его в Confluence.

После актуализации вы увидите компетенции с минимальным Bus Factor. Учитывайте это знание, когда возникает вопрос «Кому поручить задание?».

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

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

Мы пробежались по тому «как» и «что» делать. Давайте подробнее вернемся к вопросам «зачем» и «почему».

Почему ещё стоит использовать матрицу.

Про Bus Factor все понятно. Что ещё можно получить от матрицы?

Даёт быстрые результаты

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

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

Легко внедрить.

Если один раз напрячься и составить матрицу, то дальше её очень легко актуализировать. А значит, нет когнитивного сопротивления. Нет искушения «забить».

У меня на составление матрицы 4х28 ушло часа четыре. Потом потратил еще пару часов вместе с командой. Надо же всех познакомить с инструментом и провалидировать оценки. А на актуализацию готовой матрицы я трачу минут пятнадцать.

Обеспечивает измеримость.

Тепловая карта – наглядная штука. По ней легко ставить цели и отслеживать прогресс. Удобно обосновывать инвестиции в обучение.

Фокусирует.

Где красное – там и риски. Сразу видно, чем надо заняться, чтобы их минимизировать.

Систематизирует развитие команды.

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

Балансирует нагрузку.

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

Не используйте матрицу для performance review

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

Хотите оценивать перфоманс – берите отдельный инструмент.

Чек-лист

Вот что надо для внедрения у себя матрицы компетенций:

  • Собрать список «болей» на проекте и свести их в 20-40 компетенций.

  • Классифицировать по двум измерениям:1) Критично или нет. 2) Поддержка, Релиз, Функционал. 

  • Оценить людей по шкале 0-3.

  • Выделить критичные красные зоны.

  • Назначить задачи на развитие и менторство.

  • Обновлять матрицу раз в спринт или раз в 2–4 недели.

Если захотите использовать у себя в команде этот инструмент, помните: «Не пробуй. Делай. Или не делай. Не пробуй»

И да прибудет с вами сила!