Самые опасные решения архитектора.
Архитектор принимает самые важные технические решения в компании. Для разработки архитектуры системы с нуля обычно бывает 50+ архитектурных решений (decision) и 3-5 из них важнее других. Сегодня поговорим о последних. Назовем их Big Bang Decisions, чтобы у вас от слова "важное" в глазах не заребило, ну и просто название классное 😁
Big Bang Decisions формируют всю архитектуру и ошибки в них 100% угробят всю архитектуру. Другими словами, они очень рискованные.
Как сократить/убрать эти риски? При формировании Big Bang Decision мы выдвигаем гипотезы. Обычно архитекторы называют их assumptions, логируют, делают архитектуру и садятся в джакузи пить мохито 🛁 Через полгода это все накрывается медным тазом, архитектор показывает, что он залогировал что это был не факт а assumption и "вы там сами виноваты а я молодец". Подход популярный, но стремный.
Можем его улучшить? Да запросто. Для каждой гипотезы архитектор делает руками прототип, который проверяет гипотезу. Сами гипотезы и прототипы нужно привести в самом решении. И архитектору будет полезно и разработчики могут использовать прототип как базу настоящего решения.
Неподтвержденная гипотеза – тоже успех. Сэкономили кучу ресурсов компании, ведь не пришлось неверное решение реализовывать. На моей обширной практике неподтвержденными оказываются до 30% гипотез у опытного архитектора и до 80% у неопытного. Оценили какой головняк архитекторы создают компаниям со своими assumptions? 😈
Что такое прототип? Это минимально функциональное нечто. Баш скрипт, CLI инструмент, плагин а может быть и развернутая система.
Делать РУКАМИ архитектору? Ага, а кому еще? 🪂 Отличная возможность вернуться на землю и прочувствовать как архитектура будет работать в реальности.
Но это ведь долго? У нас есть публичные облака, Serverless а теперь еще и AI код пишет. Так что прототип можно сделать за 4-8 часов. Я серьезно и я это делал еще до AI (например ультра сложный кластер Hadoop разворачивал с устаревшими зависимостями или копался в кишочках Chromebook).
Время примеров ✨ Недавно делал архитектуру для НКО. Big Bang Decisions для него – это где работники фонда и волонтеры будут выполнять бизнес процессы. Гипотезы: – AmoCRM подходит как база для актуальных бизнес процессов – AmoCRM позволяет расширять свой функционал под нужды НКО
Прототипы подтвердили гипотезы: – Развернут AmoCRM под нужды НКО и настроены важные процессы – Создан виджет с примером дашборда с аналитикой для владельца НКО В добавок обнаружил, что подход виджетов с лендинг страницы AmoCRM НКО плохо подходит и нужно использовать другие подходы. Без прототипа разработчики бы приуныли.
Оба прототипа сделал за день. +1 день, чтобы сделать виджет красивым для демо владельцу НКО. Ей не верилось как это все будет работать, так что убил двух зайцев.
А теперь настало время признаний. А вы как риски у архитектурных решений снижаете?
В этом посте были ссылки, но мы их удалили по правилам Сетки
· 11.02
Буквально на днях с таким столкнулся: в одном проекте код настолько стал запутанным, что поддержка обходится очень дорого, а радикальные изменения опасно вносить. Пришлось выдвигать несколько гипотез рефакторинга, которые нужно проверить прототипами. И да, к счастью есть AI, которые сумели сделать анализ кодовой базы и выдвинуть те самые гипотезы.
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответить
0
коммент удалён