К основному содержимому
#Architecture

TDR — процесс технического дизайн-ревью / Павел Лакосников (Авито) (Рубрика Architecture)

#Architecture #Software #DistributedSystems #SystemDesign #SystemEngineering #API #Governance

Интересный доклад Паши Лакосникова из Авито про принятие качественных технических решений в большой компании. Основные тезисы примерно следующие

  1. Сам Паша давно работает в Авито и сейчас занимается выстраиванием architecture governance
  2. По мере роста компании все сложнее принимать качественные решение из-за роста чимсла команд и усложнения иерархии
  3. Компании часто вводят роли техлидов и архитекторов для решения этих проблем
  4. Это приводит к тому, что инженеров отстраняют от принятия решения и они теряют мотивацию и ответственность за принятые без них решения
  5. Дальше появляется архитектурные комитеты и архревью, где рассматриваются архитектурные артефакты и принимаются решения
  6. Если все решения прогонять через архкомитет, то он становится бутылочным горлышком и замедляет работу, а также стоит много-много денег
  7. Следующий шаг - это дизайн ревью решений в асинхронном формате 😍 Для этого нужны шаблоны документов для описания технических решений + автоматическая валидация их заполнения. В документе должны быть: автор, команда, юнит, дата создания, уровень влияния (низкий, средний, высокий), сроки ревью.
  8. Дальше появляется реестр таких документов и возможность поиска и анализа решений
  9. Инициативы делятся на разные уровни, которые требуют ревью разной строгости и формата
  10. Уровни влияния помогают разным стейкхолдерам отслеживать только нужные им инициативы, например, техдиры могут отслеживать самые крупные изменения
  11. У технических инициатив есть связь с продуктовыми, что позволяет лучше понять для чего мы делаем изменения и насколько они оправданы
  12. У инициатив есть жизненный цикл: прототип, эксперимент, масштабирование. Каждый этап имеет свою детальность проработки. А также можно фиксировать зависимости между командами и компонентами для предотвращения ошибок.
  13. Так как в инициативах указываются затронутые компоненты, то их владельцы получают уведомления и могут прийти поревьювить инициативу, в которой они упоминаются
  14. Наличие реестра обеспечивает историчность принятия решений + позволяет настроить валидацию принятия решений, чем отдельные роли: авторы, контрибьюторы, FIY и owners
  15. Реестр можно связать с техническим радаром, который должен быть входной точкой в жизненный цикл технологий.
  16. Все это обеспечивает прозрачность появления и развития технологий, а также их depracation и миграции с EOL (end of life)
  17. По всей этой машиенрии можно собирать метрики: количество decision records, время их прохожджения, доля успешно доведенных до конца и так далее
  18. Внедренный процесс помогает решить проблему с архитектурными комитетами, а также повысить вовлеченность инженеров

P.S. Про то, как это устроено у нас было в постах

#Architecture #Software #DistributedSystems #SystemDesign #SystemEngineering #API #Governance