Нам нужен процесс для вдумчивых и спокойных обсуждений изменений, без тредов в слаке на 400 сообщений. Всё уже придумано до нас в виде RFC(Request for Comments).
Процесс RFC
- Пользуясь темплейтом RFC-Template, описываем предложение, обязательно сверху указываем авторство и дедлайн
- Публикуем в канал #architecture
- Собираем возражения в RFC(пункт Комментарии)
- Если есть несогласные, устраиваем встречи.
- Встречи ограничены 7 участниками, длятся не больше часа.
- Количество слушателей не ограничено. Встречи записываются в Meet.
- После каждой встречи записываем резюме в конец, можно приложить ссылку на запись.
- Методику проведения встреч опишем позже.
- У нас нет мудаков и иногда придется воспользоваться принципом disagree & commit, чтобы неделями не мусолить решения.
- В случае совсем активной дискуссии, можно сделать канал в слаке.
- После обсуждения и принятия RFC, считаем комментарии законченными и переносим его в History. Затем из RFC делаем ADR (architecture decision record) — краткую выжимку договоренностей. Если RFC написан кратко и ёмко, менять ничего не нужно.
- После переноса в History, публикуем сообщение в #architecture об этом.
Когда нужно написать RFC/ADR
- делаем что-то новое: сервис, библиотеку, нагруженный эндпоинт, компонент
- нужно что-то переписать с нуля (rewrite)
- изменения затронут 2+ команд или 1+ систему
- изменения невозможно или очень дорого откатить
- делаем контракт между системами
- добавляем или убираем что-то из стека
- есть сомнения, что нужно написать RFC