Инженерные принципы
Для чего модуль
Сформировать инженерное мышление, где решение объясняется через ограничения, риски, стоимость изменений и проверяемый результат.
Результат после прохождения
- Вы формулируете решения как гипотезы с критериями проверки.
- Вы принимаете архитектурные решения через trade-offs, а не через «вкус».
- Вы закладываете reliability и операционку в дизайн заранее.
- Вы управляете техническим долгом как системой приоритетов, а не как списком жалоб.
Термины и аббревиатуры
| Термин | Коротко |
|---|---|
ADR | Запись архитектурного решения |
SLI | Измеримый индикатор качества |
SLO | Целевой уровень качества |
Error budget | Допустимая деградация |
Runbook | Пошаговые действия |
Фокус по грейдам
Junior: понимать базовые механики и объяснять их простыми примерами.Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.
Как работать с модулем
- Для каждого урока берите один реальный кейс из проекта.
- Оформляйте решение письменно: контекст -> альтернативы -> выбор -> риски -> метрики.
- После урока обновляйте один инженерный артефакт: ADR, checklist, runbook.
Программа модуля
Урок 1. Решение как система компромиссов
Цель: выбирать решения по продуктовым ограничениям, а не по личным предпочтениям.
Decision context
Перед выбором фиксируем:
- Цель (какой бизнес-эффект должен быть достигнут).
- Ограничения (срок, команда, инфраструктура, бюджет).
- Нефункциональные требования (надежность, latency, безопасность, масштаб).
Decision matrix
- Выбираем критерии и веса.
- Сравниваем 2-4 альтернативы.
- Фиксируем, какую цену платим за выбранный путь.
Где ломается в проде
- Решение принято, но не описано, почему отвергнуты альтернативы.
- Команда оптимизировала локальную метрику и ухудшила общий результат.
- Нет ownership за долгосрочные последствия решения.