Архитектурная диагностика системы
Карта системы и список мест, которые дорого трогать, с ценой каждого.
Ситуация
Система работает — или уже не работает, — а почему, никто давно не знает.
Люди, которые её собирали, ушли или заняты другим. Оставшиеся знают свои углы и не знают целого. Каждая оценка сроков превращается в спор, потому что спорят не о работе, а о том, что там вообще внутри.
Что происходит
Читается то, что построено, а не то, что задумано. Документация описывает намерение, код описывает факт. Расходятся они всегда, и вопрос только в том, где именно.
Ищутся места, которые дорого трогать. Не «плохой код» — плохого кода много и он часто безобиден. Дорогое место — то, где одно изменение тянет за собой десять, и цена каждого такого места считается отдельно.
Восстанавливается критический путь. Какая часть системы действительно несёт бизнес, а какая построена про запас и с тех пор просто существует.
Разделяется срочное и дорогое. Это разные списки, и путать их дороже всего: срочное горит сегодня, дорогое будет стоить весь следующий год.
Что вы получаете
Карту системы, по которой можно разговаривать с любым подрядчиком, — она ваша и остаётся у вас. Список мест, которые дорого трогать, с ценой каждого. И понимание, какая работа обязательна, а какая может подождать год.
Как это было
Восемь человек строили систему восемь месяцев, релиз срывался неделями. Первые два дня я не написал ни строки — читал построенное. Разрыв между тем, что задумывали, и тем, что стояло в коде, и оказался местом, где всё встало.
В другом масштабе то же самое: полсотни приложений, которые с 2005 года собирали разные руки и разные традиции. Читать пришлось не приложения, а переходы между ними — там и лежала настоящая цена.
Чего здесь нет
Оценки людей. Диагностика читает систему, а не команду, и отчёт не содержит имён.
И это не аудит по чек-листу. Чек-лист даёт список несоответствий стандарту; здесь нужен список мест, где ваши деньги, а это разные списки.
С чего начать
Назовите одно место, которое дороже всего трогать, и одну цифру, которую можно измерить. Если такого места назвать не получается — это и есть первый результат диагностики, и начнём с него.