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

推荐订阅源

G
GRAHAM CLULEY
T
Tenable Blog
Know Your Adversary
Know Your Adversary
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
S
Security Affairs
NISL@THU
NISL@THU
O
OpenAI News
Attack and Defense Labs
Attack and Defense Labs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
S
SegmentFault 最新的问题
S
Schneier on Security
G
Google Developers Blog
V
V2EX
C
Check Point Blog
U
Unit 42
Google DeepMind News
Google DeepMind News
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
Recent Announcements
Recent Announcements
M
MIT News - Artificial intelligence
S
Secure Thoughts
博客园 - 司徒正美
Recorded Future
Recorded Future
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
K
Kaspersky official blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
AI
AI
博客园 - 聂微东
N
News and Events Feed by Topic
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
The Hacker News
The Hacker News
The Last Watchdog
The Last Watchdog
Project Zero
Project Zero
W
WeLiveSecurity
博客园 - Franky

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Subject Matter Expert. Чёрная Метка Для Разработчика
mipo256 (Spr · 2026-05-09 · via Все публикации подряд на Хабре

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

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

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

Мнение

Это не совсем привычная для меня статья, но я давно хотел поделиться одним своим наблюдением. В ней не будет никаких вещей, связанных непосредственно с разработкой на Java или Kotlin, не будет кода. Я просто решил поделиться опытом. Я надеюсь, читать эту статью Вы будете вечером, в спокойный, выходной день.

Ну что же, поехали.

Меня зовут Михаил Поливаха, и я предполагаю, что Spring АйО читают в основном Java или Kotlin разработчики. В том или ином виде, Java / Kotlin разработчики часто пишут какие-то Enterprise решения. Одной из отличительных особенностей Enterprise является сложная доменная область. Если Вы хотя бы какое-то время писали Enterprise бекенд, то я думаю, для Вас это не новость.

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

  • Структуру торгов на бирже

  • Типы рынков и их взаимодействие

  • Как происходит взаимодействие брокера с биржей

И так далее. Ещё раз, это абсолютно естественно. В той или иной степени это знание приобретается. И это, казалось бы, хорошо и помогает решать проблемы. Но не совсем. У этого есть крайне тёмная сторона. Даже больше - это знание может оказаться фатальным как для программиста, так и для проекта.

Разработка, или Туда и Обратно. Начало

Представим себе воображаемую команду, которая пишет как раз этот самый бекенд для биржевого брокера. В ней есть Иван, программист средней руки. Вместе с Иваном бекенд разрабатывает ещё 2 человека, все они как-то между собой делят ответственность.

Вроде бы всё нормально. Релизы есть. Да не без багов, но всё же. Фичи как-то плюс-минус делаются. Да, пускай сроки иногда срываются, но тем не менее. Прогресс идёт. Самый типичный проект.

И наш Ваня самый обычный программист. В том плане, что он воспринимает работу как некий производственный процесс, как ремесло. Он не сильно интересуется новинками в мире Spring Framework, ему не сильно интересно, как там работает Postgres или JVM. За рамки Java он обычно не выходит. Его компетенций хватает, чтобы писать софт, который ± работает и может удовлетворить требования бизнеса (как им кажется).

Я хочу заранее подчеркнуть - это не плохо. Ничего в корне плохого в таком отношении к работе нет. Всегда будут энтузиасты, всегда будут и те, кто будет предпочитать тратить своё время на другое. Это нормально. Далеко не все будут с огромным трепетом относиться к своей работе, это просто данность.

Наблюдение Первое

Первое, очень важное наблюдение, которое мы можем сделать: Ваня с подобным обыденным отношением к работе (ещё раз, вполне типичным и часто встречаемым) будет принимать решения далеко не самые эффективные. На то есть 2 причины:

  1. У него не хватает знаний. Он не знает альтернатив. Он не знает, что Spring Framework уже давно так умеет. Или что вызывать сторонний сервис под открытой транзакцией к БД — это плохо. Он не знает, что его система в проде теряет сообщения и т.д.

  2. И у него скорее всего даже нет особой мотивации получать эти знания. Ещё раз, Ваня простой труженик в банке.

Это важное наблюдение. Оно нам потом понадобится.

Нежданные Гости. Время Перемен

Проходит время. И с течением времени неизбежно происходит некая текучка кадров. Кто-то уходит, кто-то приходит. И за пару лет из 3 разработчиков (2 + Ваня) бекенда, кто изначально писал проект, остался лишь Ваня. Остальные либо ушли на другие проекты, либо вовсе покинули компанию.

Менеджер проекта, Антон, конечно понимает, что раньше было 3 программиста, сейчас 1. Работа будет выполняться медленнее. Нужда в программистах осталась, поэтому на проект идёт найм двух разработчиков на бекенд. Их находят и нанимают.

Но найм - процесс не быстрый. Пока всё это происходит, Ваня отдувается за всех. Он пишет все части бекенда самостоятельно. Он и так-то не привык уделять работе чрезмерно много внимания. Тем не менее, слава богу, 2 новых человека приходят в команду. Вроде как, должно стать попроще, в перспективе по крайней мере.

Наблюдение Второе

Ещё одно наблюдение, которое мы можем сделать: в текущей конфигурации компетенции распределены крайне неравномерно. Получается так, что Ваня, будучи одним из “старожил” проекта, знает доменную область от и до. Он знает все костыли, так как часть пилил лично он, а часть - его бывшие коллеги, которые уже вне зоны досягаемости.

И теперь начинается самое интересное.

Баранье Жаркое. Раскручиваем Маховик.

Наш менеджер, Антон, конечно всё понимает. Он понимает, что новым разработчикам нужно время, чтобы “въехать” в проект. Ну, очевидно же. Более того, мы даже знаем золотое правило из The Mythical Man Month:

Adding manpower to a late software project makes it later

Пока программисты “въезжают”, толку от них не так много. Но задачи-то надо делать. Сверху же уже топчат ногами - сроки можем сорвать! Антон понимает, что единственный шанс успеть в сроки - это давать срочные задачи Ване.

Но мы-то с Вами понимаем, что срочные задачи есть всегда, и их много. Всегда что-то ломается на продакшене, какие-то срочные изменения запрашивает Информационная Безопасность и т.д. Отдавать какие-то срочные баги новопришедшим программистам - это же самоубийство! Пока они разберутся в том, что происходит, пока поймут контекст проблемы, пока…

И Ваня, будучи по сути единственным человеком, который знает, как работает система, становится самым настоящим “заложником” ситуации. Происходит примерно следующее:

  • Любая срочная задача: Ваня!

  • Любой вопрос по функционалу: Ваня!

  • Как реализовывать эту фичу так, чтобы ничего не сломать? Ваня!

Результат: Наш герой постоянно занят. Его отвлекать сильно нельзя, ведь только он может решить проблему, и решить её в срок. Ваня становится довольно сильно перегружен - он нужен буквально везде.

Наблюдение Третье

Ситуация выше очень быстро превращается в порочный круг, так как:

  1. У Вани мало времени на то, чтобы писать стабильные и расширяемые и производительные решения (кроме того, добавьте к этому тот факт, что Ваня ещё и не сильно хотел бы этим заниматься - он обычный ремесленник).

  2. Как следствие, в коде повышается количество костылей, каких-то решений, которые понятны только Ване. Почему? Да потому, что времени у него нет, а проблемы надо решать быстро. Иногда бывает даже так, что никаких тестов, даже формальных, на эти “костыли” нет.

  3. Как несложно заметить, наличие этих костылей делает код ещё более непрозрачным для других двух новых программистов. Они и раньше не очень понимали, как система работает, а теперь всё ещё хуже.

  4. И тем самым, спектр задач, которые может решить только Ваня, становится не меньше, а больше! Другие 2 программиста в душе не чаят, как это всё работает. У Вани, из-за повышения спектра задач, которые он может решить, времени на документацию и какие-либо пояснения становится ещё меньше.

Я думаю, что на данном этапе всем уже очевидно, что дело пахнет керосином и пахнет довольно отчётливо. Это как снежный ком: катится, катится - и, понятное дело, ничем хорошим не закончится.

Из Огня Да в Полымя. Каков Конец Истории?

Я думаю, что кто-то распознал свой проект. Если так - напишите об этом, пожалуйста, в комментарии. Будет интересно почитать.

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

Концовка №1. Ваня Уходит.

По тем или иным причинам, Ваня принимает решение уйти с проекта. Это может быть любая причина:

  • Проект его в край задолбал (что несложно представить).

  • Ему предложили оффер получше.

  • По каким-либо личным обстоятельствам и т.д.

Причина для ухода особо не важна. Важно то, что наш менеджер, Антон, в этот момент, как правило, осознает масштаб катастрофы. Антон в срочнейшем порядке организует процедуру под названием “Передача Знаний” другим разработчикам.

И тут возникает проблема.

Ваня, уходя из проекта, как правило, уходит с большим облегчением. Он и так-то не сильно бы хотел перерабатывать и тратить огромное время на разработку продукта, а тут его вынужденно суют как в каждой бочке затычку. И Ваня уже в гробу бы видал этот проект. У него нет энтузиазма рассказывать все ins-and-outs системы. Максимум, что он делает - отвечает на вопросы коллег программистов на встрече.

Но вот беда - наши 2 новоиспечённых программиста на встрече даже не знают, какие вопросы надо задавать. Большая часть проблем, 90% из них, вскроется уже после, уже в бою. После ухода Вани. И подобная “Передача Знаний” на деле почти без исключений обречена на провал. Эта процедура фиктивная, чтобы потом Антон, после ухода Вани, как только начнут срываться сроки и т.д., мог прийти и сказать:

Вам же Ваня всё пояснил! Вы что, не слушали его на встрече?!

И дальше всё зависит от прочности “системы”. Если система прочная, то она переживет уход Вани. Да, команда будет разгребать авгиевы конюшни полгода, а то и год, но проект будет жить. Если же система не такая прочная, или степень зависимости от Вани была близка к 100%, то поддерживать её, конечно, становится почти нереально без него. И менеджмент выше принимает решение:

Переходим на “Целевую Систему”

Переходили когда-нибудь с одной системы на другую, “Целевую”? Если да, то знайте, что, конечно, не всегда, но одна из причин такого перехода - где-то просто внезапно ушёл Ваня. Я думаю, что статью можно было прямо так и назвать - посвящается всем командам, откуда однажды, случайно, совершенно внезапно, ушёл Ваня.

Концовка №2. Весь проект находится “в заложниках”. У Ивана.

Эта концовка возможна тогда, когда менеджмент хоть и крайне поздно, но понимает масштаб проблемы. Это бывает нечасто, потому что ЭГО, но тем не менее бывает.

Каждый раз, когда Ваня уходит в отпуск недельки так на 2, Антон заказывает валидол и бронирует приёмы у психотерапевта, ведь он понимает, что его ждёт. Ситуация страшная: без Вани все боятся принимать какие-либо сложные решения - а вдруг сломаем? Вдруг мы чего-то не знаем? Проект по сути находится в таком “maintenance mode”.

Осознавая степень зависимости, к Ване начинает меняться отношение. Со стороны это выглядит так:

  1. Ивану разрешают работать почти откуда угодно.

  2. Со временем какой-то ярко выраженный график работы у Вани начинает отсутствовать - это не Ваня работает на проекте, а весь проект подстраивается под Ваню.

  3. Любые намеки на то, что Ваня может уйти - менеджмент делает всё, чтобы повысить оклад, премию - что угодно, т.к. удержание Вани - вопрос жизни и смерти.

И далее уже то, насколько далеко будет гнуться эта линия, зависит от ряда обстоятельств, но вектор понятен. Весь проект будет находиться в заложниках либо до ухода Вани (см. Концовка №1), либо до тех пор, пока не придёт “Герой” или команда, которая сможет, со временем, сместить “диктатуру” Ивана.

Post Mortem. Как Этого Можно Было Избежать?

Проблема, описанная в истории, это Subject Matter Expert. Это ситуация, когда человек, возможно, сам, а довольно часто просто волей обстоятельств приобретает такие знания в работе проекта/доменной области, что становится самым настоящим “дамокловым мечом”, нависающим над всей системой.

Кто же виноват в этом всём?

Я почти со 100%-ной уверенностью могу сказать, что непосредственно Ваня часто оказывается не виноват. Ваня - это просто продукт системы. Проблема, как это очень часто бывает, в менеджменте.

Проблема в том, что условный Антон позволил Ване не как программисту, а “Ване” как феномену случиться. Менеджмент вовремя не распознал, что у них образуется Subject Matter Expert.

В Бочках - на Волю. Как Решать Эту Проблему

Проблему эту должен решать менеджмент и только он. Хотя “менеджмент” - это крайне ответственные позиции, к огромному сожалению, по моим наблюдениям, в современном IT менеджеры проектов - это часто те, кому просто хотелось в IT (деньги, в первую очередь), а технических навыков для написания кода особо не было. Вот они и пошли в управление.

Это безумно, но я думаю, многие со мной согласятся.

Так вот именно менеджменту важно, помимо прочего:

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

  2. Для этого важно всегда активно думать над тем, как распределить задачи таким образом, чтобы компетенция активно шарилась между людьми.

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

Здесь, конечно, есть вопрос: Так почему же люди этого не делают? Ответов тут много, они тянут уже на другую статью. Я же поступлю, как сделал в своё время Пьер Ферма - оставлю этот вопрос “на полях” статьи, и ответ на него останется Вашим небольшим факультативом.

Всем Удачи!