Перейти к содержанию

Исследование · Типовые проблемы команд и способы их решения#

  • Статус: исследование закончено 2026-09-17 · выводы — 30-findings.md · метод правился пять раз по ходу, и все правки пришли из исполнения, а не из замысла
  • Предшествует: прогон E-01, прогон E-02, решение Б5 в плане ревизии E-02
  • Решает: каким должен быть набор документов решений — а не «как правильно проектировать»

1. Зачем#

Набор документов решений вырос реактивно. D-01…D-05 пришли из шагов рабочего процесса, D-06 и D-07 — из двух прогонов, где дисквалификатор потребовал документа, которого нет. Так набор и дальше будет расти по одному документу на кейс, и каждый кейс будет давать MAJOR всем остальным.

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

Оно же отвечает на вопрос, оставшийся открытым после E-02. В плане ревизии записано: если третий кейс снова даст MAJOR всем документам, форма не сходится. Но у несходимости есть и вторая причина, которую кейсами не отличить: набор может не покрывать поле. Тогда каждый новый кейс будет натыкаться на дыру, и форма тут ни при чём. Реестр проблем различает эти два объяснения.

Что решает исследование напрямую

Вопрос Откуда он
Каких документов не хватает и в каком порядке их писать Очередь D-06, D-07 собрана по двум случаям, а не по полю
Есть ли документы, не отвечающие ни одной названной проблеме Никто не проверяет набор в эту сторону
Где живёт массовая раздача — отдельное решение или уникальный случай кейса Развилка Б1, оставлена открытой до исследования
Нужна ли форма мастер-решения и как часто встречаются связанные решения Развилки Б1 и Б3
Поднимать ли третий режим («применим и бесполезен») в мастер-шаблон Развилка Б4, придержана

2. Что в scope и что нет#

В scope: проблемы, общие для команд, строящих и развивающих системы, — и известные способы их решения.

Не в scope:

Что Почему
Проблемы, уникальные для предметной области Решение зависит от домена; документ решения сюда не дотянется
Сравнение конкретных продуктов Это рыночный слой D-01, он устаревает и живёт в снимках
Организационные проблемы вне архитектуры — найм, мотивация, оценка Другая дисциплина; граница проходит там, где проблема перестаёт менять устройство системы
«Как правильно проектировать» Это памятка, она уже написана

Признак общей проблемы. Первая редакция требовала трёх разных типов источников. Пилот И0 показал, что это слишком строго: из восьми записей строго проходили две, и не потому, что остальные слабы, а потому, что их никто не измерял. Действующая редакция:

Проблема считается общей, если названа в каноне и имеет хотя бы одно независимое подтверждение — данные, публичный разбор инцидента или наш собственный прогон.

Записи без подтверждения вовсе не выбрасываются, а остаются с явной пометкой: пусть видно, где критерий не сработал. Одного упоминания без формулировки последствия по-прежнему недостаточно.

3. Единица результата — запись о проблеме#

Главное проектное решение самого исследования. Реферат «что пишут про микросервисы» бесполезен; нужны сопоставимые записи.

Поле Что в нём Зачем
Формулировка Проблема одним предложением, в терминах последствия, а не технологии «Каждая задача трогает три сервиса» — проблема. «Микросервисы» — нет
Как проявляется Наблюдаемый симптом Чтобы узнать её у себя, а не по названию
Признак Что измерить, чтобы отличить её от похожей Без этого реестр — список ярлыков
Требует решения? Да / нет / это следствие другой проблемы Половина «проблем» в литературе — симптомы одной
Цена изменения × влияние Клетка матрицы мастер-шаблона для решения, которое проблема требует Определяет форму: полная, короткая или «не документируем»
Частота Насколько часто встречается, с указанием, откуда это известно Определяет очередь, а не форму
Известные решения Способы и их условия применимости Заготовка раздела «из чего выбирают»
Зрелость Устоявшаяся практика · спорная · мода Отделяет то, что можно класть в умолчание
Жанр Карточка · документ решения · и то и другое Реестр проблем сам по себе не говорит, что писать. Без этого поля исследование ответит на «какие бывают проблемы», но не на вопрос, ради которого затевалось
Чем закрыто у нас Документ решения, карточка, ничего Заполняется последним, см. порядок этапов

Реестр — список блоков, а не таблица. Девять полей в строку нечитаемы уже на третьей записи; проверено на пилоте И0. Форма от этого не меняется, меняется вёрстка.

Код записи — область плюс номер внутри неё: P-DEG-04, P-API-01, P-CHG-02. Сквозной нумерации нет по той же причине, по которой её нет у карточек: реестр пополняется по областям, и новая запись не должна сдвигать соседние. Код выдаётся при создании и не меняется. Первая редакция нумеровала записи сквозняком в каждом файле — и три файла немедленно завели по своему P-01.

Поле «чем закрыто у нас» заполняется по списку карточек блока, а не поиском по терминам. Поиск находит то, что уже названо словами реестра, и молчит о том, что названо чужими: на пилоте И0′ так была объявлена дырой тема, покрытая карточкой полнее, чем её описал реестр. Список показывает, что есть; поиск — что уже знали.

Два уточнения, без которых поле «цена × влияние» превратится в кашу. Цены изменения у проблемы нет — она есть у решения, которое проблема требует; записывать надо именно его. И матрица определяет только форму: частота в неё не входит и живёт отдельной колонкой, иначе частое и дешёвое вытеснит редкое и необратимое.

4. Источники и их иерархия#

Пять типов. Тип важен: признак общности требует совпадения в разных типах, потому что совпадение внутри одного типа — чаще всего пересказ.

Тип Что это Чем ценен Чем опасен
1. Канон Ford & Richards, Newman, Kleppmann, Evans, Nygard, Fowler, Skelton & Pais Проблемы названы и разобраны Книга описывает проблемы, которые ей удобно решать
2. Данные отрасли Отчёты с числами и методикой: DORA, State of DevOps, опросы разработчиков Частота, а не мнение Меряют, что умеют мерить
3. Публичные разборы Постмортемы, инженерные блоги с деталями Проблемы, которых нет в книгах Выжившие: пишут те, кто справился
4. Каталоги практик microservices.io, архитектурные центры облаков, радары технологий Готовый словарь решений Каталог решений подсказывает проблему под себя
5. Наш корпус 151 карточка, 2 прогона, 38 находок Единственный источник, где проблема прошла до записанного решения Мы его написали

Правило допуска источника: у утверждения есть либо данные (выборка и методика), либо имя, отвечающее за него. Пост «10 best practices» без того и другого не источник — он ничего не добавляет к тому, что уже есть в типах 1 и 4.

Канон — не свидетельство, а формулировка#

Тип 1 опаснее остальных именно потому, что выглядит надёжнее. Четыре поправки, обязательные при работе с ним.

Поправка Почему
Канон даёт формулировку проблемы, а не доказательство её распространённости «Ford & Richards пишут, что так бывает» — не частота. Частоту берут из типов 2 и 3 или не берут вовсе, и тогда колонка остаётся пустой
Проверять независимость: цитирование — это один голос, а не два Newman ссылается на Эванса, Ford & Richards — на Newman. Три книги, один источник. Признак общности требует разных типов ровно поэтому, но внутри типа 1 совпадение надо проверять отдельно
У каждой книги есть тезис, и проблемы подобраны под него Книга про декомпозицию находит проблемы, которые решаются декомпозицией. Обратные случаи — когда разделять не надо — в ней представлены хуже, и это не злой умысел, а жанр
Утверждение имеет возраст Практика 2015 года могла устареть вместе с инфраструктурой, под которую писалась. Год утверждения записывается рядом с ним, а не подразумевается

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

Шестая поправка — о соседней популяции. Найдена уже после закрытия исследования, в мини-исследовании М1. Данные, измеренные не на той популяции, о которой идёт речь, допускаются как подтверждение — при условии, что названо, чем популяции различаются и в какую сторону каждое различие смещает вывод. Разбор различий стоит дороже самой цифры и полезнее её: в М1 он показал, что перенос с библиотек на сервисы занижает остроту проблемы в двух отношениях и завышает в одном, а главный вывод от подстановки не зависит вовсе. Оговорка «измерено не на нас» без разбора направления — не оговорка, а отговорка.

Седьмая поправка — каталог одной организации есть один голос, сколько бы изданий он ни имел. Найдена в М2 и распространяет вторую поправку с типа 1 на тип 4. OWASP Top 10 2021 построен на данных свыше полумиллиона приложений; OWASP API Security Top 10 2023 — на согласии участников проекта, потому что открытый сбор данных не дал материала для статистики, о чём авторы пишут прямо. Складывать их как два подтверждения нельзя. Практическое требование: у каталога проверяется раздел о методике, а не только содержание списка — и, если методика говорит «согласие участников», запись идёт в тип 4 и частоту не даёт.

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

5. Порядок этапов#

Остановка и отчёт после каждого.

Сначала два пилота на узких темах#

Метод исследования обкатывается на двух конкретных документах, а не на трёх абстрактных примерах. Пилот — полный цикл в миниатюре: сбор по узкой теме → форма записи → маленький реестр → документ решения из него. На выходе каждый раз два результата: нужный документ и проверенный (или переписанный) метод.

Пилот Тема Ожидаемый объём реестра Что даёт
И0 Деградация и поведение при отказе → D-06 5–8 проблем ✅ пройден: 8 проблем, документ написан, метод поправлен в трёх местах — отчёт
И0′ Декомпозиция данных → D-07 6–10 проблем ✅ пройден: 7 проблем, документ написан, отчёт. Правило о критическом отношении к канону решило исход: глава 6 подтвердила шесть записей и добавила одну, а трёх записей в ней нет вовсе

Профили источников у пилотов противоположны — и это выбрано намеренно, по той же логике, по которой E-02 брался противоположным E-01.

И0 · Деградация И0′ · Декомпозиция данных
Канон Есть, но рассыпан по многим авторам Готовый костяк — Ford, Richards, гл. 6: шесть сил разделения, две интеграции
Публичные разборы Много: отказы разбираются публично и подробно Мало: развал данных идёт годами и не выглядит инцидентом
Данные отрасли Частично: показатели восстановления и доли неудачных изменений Почти нет
Главный риск Утонуть в каталоге паттернов устойчивости Пересказать одну главу одной книги

И0′ поэтому не просто второй пилот, а стресс-тест правила о критическом отношении к канону: тема, где готовый костяк уже лежит на столе, — худший случай для этого правила и лучшая его проверка.

Затем полный опрос поля#

Этап Что делаем Результат
И1 Канон и каталоги практик (типы 1 и 4), по методу, проверенному пилотами Черновой реестр
И2 Данные отрасли и публичные разборы (типы 2 и 3) — отдельным этапом, потому что проверяемость здесь другая ✅ пройден: частота заполнена в двух кандидатах из семи; очередь перестроена; добавлена пятая поправка к правилу допуска — про опрос от поставщика
И3 Наш корпус (тип 5) — последним ✅ пройден: поле «чем закрыто» заполнено по спискам карточек; правило нашло вторую ошибку того же рода; подтверждено в третий раз, что механика покрыта, а решений нет
И4 Сведение. Дедупликация, отделение симптомов от проблем, критерий общности, матрица и частота ✅ пройден: 30 записей дали 4 документа к написанию, 3 отложены до подтверждения, 1 не порождает документа. Сокращение вдвое сделал критерий общности
И5 Карта покрытия и выводы ✅ пройден: карта с обратной сверкой и выводы. Два вопроса из пяти остались без ответа — сбор «по дыркам» сломал проверку, и это записано

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

Почему наш корпус — последним. У нас уже 38 находок и пять документов; исследование, начатое с них, найдёт ровно их. Собирать надо на чистом листе, а совмещать — в конце, и в обе стороны: не только «какой проблемы у нас нет», но и «какому документу не нашлось проблемы». Вторую сторону обычно не проверяют, и именно она способна сказать неприятное — например, что D-04 отвечает на проблему книги, а не команды.

6. Чем это кончается#

Артефакт Что в нём Когда
research/01-pilot-degradation.md Реестр по деградации и отчёт о том, что метод выдержал, а что пришлось переписать И0
decisions/D-06-… Документ решения, собранный из этого реестра И0
research/02-pilot-data-decomposition.md То же по декомпозиции данных И0′
decisions/D-07-… Документ решения, собранный из этого реестра И0′
research/10-problems.md Реестр общих проблем по форме раздела 3, 20–30 позиций И4
research/20-coverage.md Карта: проблема → чем закрыта у нас → что с этим делать И5
research/30-findings.md Выводы, включая ответы на Б1, Б3, Б4 и на вопрос о сходимости И5
Правки в 96-backlog.md Очередь документов решений, пересобранная по полю, а не по случаям И5

Реестр не обязан быть полным — он обязан быть пополняемым. Если на очередном прогоне обнаружится проблема, которой в реестре нет, это не провал исследования: заводится мини-исследование по узкой теме — тот же цикл, что у пилотов, но на одну-две проблемы, — и его результат дописывается в 10-problems.md со ссылкой на прогон, который его потребовал. Двадцать-тридцать позиций выбраны как рабочий объём, а не как оценка размера поля.

7. Риски — и что с ними делать#

Риск Чем опасен Мера
Подтверждение вместо проверки 38 находок и соблазн искать им опору Наш корпус — последним этапом; обязательная проверка в обе стороны
Реферат вместо реестра Пересказ книг не решает ни одного вопроса раздела 1 Форма записи фиксируется на И1 и обкатывается до сбора; запись без поля «признак» не принимается
«Best practices» без основания Мода выглядит как практика Правило допуска источника: данные или имя
Каталог решений подсказывает проблему Тип 4 устроен от решений Проблема формулируется в терминах последствия; если сформулировать не удаётся — записи нет
Канон принимается за свидетельство Книга выглядит надёжнее данных, а даёт только формулировку; три книги, цитирующие друг друга, читаются как три подтверждения Четыре поправки в разделе 4; частота при опоре только на канон — «не измерена», а не оценка
Пилот И0′ вырождается в пересказ одной главы Костяк по декомпозиции данных уже готов у Форда и Ричардса Реестр собирается до обращения к этой главе; глава входит последней и отмечается как один голос
Объём Реестр на 80 позиций станет ещё одной памяткой См. развилку И-а
Симптомы вместо проблем «Долгий релиз» — симптом десятка разных причин Поле «требует решения?» со значением «следствие другой проблемы» и ссылкой

Развилки — закрыты 2026-09-17#

И-а — 20–30 основных; недостающее добирается мини-исследованием по требованию прогона (раздел 6). И-б — поиск с правилом допуска принят, и канон подлежит той же критике: добавлены четыре поправки в раздел 4. И-в — не «сначала один, потом другой», а два пилота метода: D-06 обкатывает исследование, D-07 проверяет его на противоположном профиле источников. Порядок этапов перестроен, см. раздел 5.

И-а. Глубина реестра#

Вариант Следствие
20–30 крупных проблем Набор документов решений всё равно измеряется десятком; реестр остаётся инструментом
60–80 с мелкими Полнее, но превращается в ещё одну памятку, и карта покрытия перестаёт читаться

Моя рекомендация: 20–30. Мелкие всегда можно добрать позже под конкретный документ. Принято: 20–30, с мини-исследованием как штатным способом добора.

И-б. Роль веб-поиска и граница проверяемости#

Типы 2 и 3 без поиска не собрать: отчёты с данными и постмортемы живут в сети и обновляются. Типы 1 и 4 — устойчивы и в основном уже есть в 95-sources.md.

Вариант Следствие
Искать, с правилом допуска из раздела 4 Частота проблем становится измеренной, а не оценённой. Медленнее
Только канон и каталоги Быстрее, но колонка частоты останется мнением, а именно она задаёт очередь

Моя рекомендация: искать, но только для типов 2 и 3, и каждое утверждение с числом — со ссылкой на методику. Всё, что не проходит правило допуска, не попадает в реестр даже пометкой. Принято, с поправкой: критическое отношение распространяется и на канон — он даёт формулировку, а не свидетельство. Поправки в разделе 4.

И-в. Что делать с D-06 и D-07 сейчас#

По Б2 решено писать обе, деградацию первой. Исследование это не отменяет, но меняет порядок.

Вариант За Против
D-06 сейчас, D-07 после И6 Деградация потребована дисквалификатором дважды и блокирует уже принятые решения — ждать нечего. Декомпозиция данных — ровно та область, где исследование даст больше всего Набор временно остаётся с известной дырой
Обе после исследования Обе родятся по уточнённому представлению о поле Два ADR в E-02 остаются принятыми вне метода дольше, чем нужно
Обе сейчас Дыры закрыты D-07 придётся переписывать после И6 — ровно та ошибка, которой мы избежали в E-01

Моя рекомендация: первый вариант.

Принято другое, и оно лучше: оба документа становятся пилотами метода, а не задачами в очереди. D-06 обкатывает исследование на узкой теме — это дешевле и честнее, чем проверять метод на трёх абстрактных примерах; D-07 идёт вторым участником опытов, с противоположным профилем источников. Разница с моей рекомендацией в том, что документы перестают быть целью и становятся одновременно результатом и испытательным стендом — ровно то, чем были E-01 и E-02 для документов решений.