Мой RFC отклонили: в чем причина и как изменить ситуацию, переписав первую страницу
Случается, что сходные по технике RFC получают разные решения: один принимают, а другой откладывают, потому что различаются цена ожидания, риск, срок или владелец выбора. Рассказываем, почему важно сразу сравнить эти условия, а только затем обсуждать качество архитектуры или технологии. Дисклеймер: в статье лишь один из вариантов решения.
Случается, что сходные по технике RFC получают разные решения: один принимают, а другой откладывают, потому что различаются цена ожидания, риск, срок или владелец выбора. Рассказываем, почему важно сразу сравнить эти условия, а только затем обсуждать качество архитектуры или технологии. Дисклеймер: в статье лишь один из вариантов решения.
Примечание Adviser
В этой статье ссылки партнеров. Это значит, что если вы что-то покупаете с нашей помощью — вы также поддерживаете dev.by. (Вот другой способ).
При этом редакция и авторы независимы в выборе темы, концепции материала, фокуса описания, подхода к услугам или товарам. Прежде чем что-то советовать, мы много читаем и смотрим по теме, говорим с экспертами.
Редакция может выражать свое мнение и пробовать всё на себе.
Если рекомендательный материал обновляется, мы указываем, что и когда поменялось, в самом начале.
Ben Cartwright-Cox, системный инженер и Лондона, в своем блоге Benjojo рассказал, как путь RFC 9687 занял около трех с половиной лет. Он и два соавтора работали над документом после того, как выявили недостаток BGP4, наносящий вред маршрутизации в интернете. Автор заранее ожидал долгого пути, и его ожидание подтвердилось. И хотя он пишет про открытый стандарт IETF, а не корпоративный RFC, вся эта история поднимает вопрос о цене ожидания.
Содержание
Как подготовить первую страницу RFC
Техническая часть RFC позволяет вашим коллегам проверить реализацию и компромиссы. Первая страница должна также назвать цену бездействия, затронутых людей или системы, риск, срок и владельца решения.
Malte Ubl, разбирая Design Docs Google, описывает структуру с контекстом, «целями и не целями», с альтернативами и компромиссами. Важно, что это не официальная политика Google и не шаблон, который нужно слепо копировать. Но для любого RFC полезен ограниченный вывод: читатель должен видеть, почему выбран этот конкретный вариант.
Что вам понадобится
Последняя отклонённая версия RFC.
Метрика, инцидент, срок или конкретный пример проблемы. Если данных нет, зафиксируйте это: придуманная цифра не заменит данных.
Имя человека или группы, которые вправе принять решение.
45 минут: 15 на диагностику, 20 на первую страницу, 10 на предварительный разбор.
1. Зафиксируйте решение и условия на тот момент
Запишите дословно, какое решение приняли: отклонить, вернуться после релиза, сначала проверить гипотезу, нет владельца или «приоритет сейчас другой». Затем выпишите возражения без интерпретации.
Например, фраза «у нас нет команды на миграцию в этом квартале» говорит об ограничении по сроку и ресурсу. Причину отказа нужно выяснить отдельно. Два похожих RFC нельзя честно сравнить без контекста: могли измениться приоритеты, бюджет, доступность команды, накопленный риск или состав решающих людей.
В итоге у вас останется список проверяемых условий решения вместо одного объяснения.
2. Найдите владельца решения и его риск
Назовите адресата решения: engineering manager, product lead, архитектурная группа или несколько владельцев с разными зонами ответственности. Спросите: «Кто принимает решение и какой риск нужно закрыть, чтобы выбрать вариант?»
Попросите затронутых коллег назвать ограничение, которое RFC не учитывает, вместо сбора личных обещаний поддержки. К примеру, в GitLab роли assignee (обычно автора) и reviewer разделены, а раннее открытие merge request даёт команде время заметить ошибки и проблемы качества. Этот принцип можно применить к RFC, хотя документация GitLab описывает именно merge request, а не универсальный стандарт.
После этого шага должны быть зафиксированы адресат решения и ограничения, которые предстоит подтвердить: срок, люди, бюджет, безопасность, продуктовый риск или зависимость от другой команды. Готовый ответ может не появиться сразу, особенно если владельцев несколько.
Если хотите разобрать коммуникацию и текст RFC глубже
Leadership Development for Engineers Specialization от Rice University — серия из трёх курсов о самоосознании, управлении отношениями и конфликтами, а также плане развития. Она может пригодиться, если разговор о RFC упирается в отношения и конфликт; программа не обещает одобрения RFC и не исправит процесс без владельца решения.
«The Staff Engineer’s Path» — Tanya Reilly. Книга объясняет, почему по мере роста всё большую роль играет не код, а умение влиять на решения без формальной власти. Это не сборник готовых приемов, а книга про изменение роли инженера. И про то, почему одни технические идеи получают поддержку, а другие нет.
Бесплатная альтернатива курсам тоже есть в этом гайде — перед следующим RFC ответьте в первом абзаце на три вопроса.
3. Перепишите первую страницу тремя вопросами
В первом экране назовите:
Что случится при бездействии?
Для кого и чем это обернётся?
Какое решение, срок и критерий результата предлагаются?
Было: «Платёжный модуль имеет высокую связанность. Предлагается выделить сервис расчёта комиссий».
Стало: «Изменение правил комиссий требует правок в трёх сервисах и ручной сверки. В следующем квартале продукт планирует два таких изменения. Предлагаем до 30 сентября вынести расчёт в отдельный сервис; успехом считаем изменение правила без правок в остальных сервисах и без расхождения в сверке».
Это лишь иллюстрация и не факт, что подобный RFC будет принят. Но такой первый экран позволяет обсудить срок, объём, критерий и способ снизить риск. Проверьте, сможет ли человек вне репозитория понять проблему, ставку и следующий выбор, не открывая технические приложения.
4. Покажите команде альтернативы и цену выбора
Сравните выбранный вариант, разумную альтернативу и последствия отказа от изменений сейчас.
Для каждой строки назовите срок, стоимость команды, риск и то, что останется нерешённым. Если нет точной оценки, дайте диапазон или отметьте, что нужно исследование.
Вариант
Срок
Стоимость команды
Риск
Нерешённое
Выбранный вариант
Альтернатива
Отказ от изменений сейчас
В IETF консенсус не сводят к подсчёту голосов: RFC 7282 предлагает разбирать, остаётся ли у возражения существенная техническая причина. Безусловно, компания не обязана повторять процессы IETF, но сам по себе вопрос полезен: «Что делает этот вариант неприемлемым, а не просто менее приятным?»
5. Проведите короткий предварительный разбор
До общей встречи покажите первую страницу двум-трём затронутым людям: представителю команды-потребителя, владельцу продукта, специалисту по безопасности или эксплуатации. Выбирайте людей, способных назвать ограничение.
Задайте им один вопрос: «Какое условие помешает вам принять это решение?» Зафиксируйте ответ в RFC и укажите, что изменили. Нерешённое возражение не прячьте в личной переписке. На встрече обсудите уже известные разногласия.
Проверка перед отправкой
Понятно ли, что произойдёт при бездействии?
Названы ли конкретные затронутые люди или система?
Есть ли владелец решения и срок, в который нужен выбор?
Можно ли проверить результат после реализации?
Видны ли альтернатива и цена отказа?
Зафиксированы ли возражения и ответ на них?
Если хотя бы на один вопрос нет ответа, ваш документ ещё рано защищать. Вернитесь к данным или к разговору с владельцем решения.
Частые проблемы и пути решения
1. Нет метрик, но есть «инженерное чувство»
Вероятная причина: наблюдения ещё не собраны в проверяемое описание проблемы.
Действие: опишите число ручных шагов, время восстановления, количество затронутых сервисов или конкретный инцидент. Не приписывайте проблеме влияние на выручку. Если наблюдений недостаточно, предложите короткое исследование с датой, после которого появится решение.
2. Идея хорошая, но не сейчас
Вероятная причина: пока не названы условие возврата или ограничение, которое должно измениться.
Действие: уточните, что должно измениться: закончиться релиз, появиться команда, накопиться определённый риск или освободиться бюджет. Зафиксируйте условие и дату возврата. Если их не удаётся назвать, проверьте с владельцем решения критерий и срок следующего выбора.
3. Сначала надо договориться со всеми
Вероятная причина: существенные возражения ещё не отделены от предпочтений и неясно, кто примет выбор.
Действие: выясните, какое возражение делает вариант неприемлемым, зафиксируйте его и назовите владельца решения. Не заменяйте анализ рисков сбором подписей.
4. Решения по вашему RFC системно не принимаются
Вероятная причина: приоритеты меняются без владельца, ответственность размыта, а инициативы исчезают в согласованиях.
Действие: соберите два-три конкретных примера: предложение, предполагаемого решающего, фактический ход событий и сорванный срок. Затем поднимите вопрос о процессе на ретроспективе или с руководителем. Ещё одна версия RFC и курс по коммуникации этот процесс не исправят.
Что дальше
Перед следующим RFC перепишите первый экран по трём вопросам, заранее узнайте существенные ограничения и покажите альтернативы. Если не удаётся назвать владельца, срок и критерий выбора, сначала нужно диагностировать процесс принятия решения.
Территория первых: пока все говорят об AI, еще можно успеть войти в квантовые вычисления
Вы тоже считаете, что квантовые компьютеры — просто дорогие игрушки, которые заработают (в лучшем случае) через тридцать лет? Если так, давайте разбираться. Спойлер: если нет — пора изучать.
Объяснение на страницу: почему не читают документацию и что исправить в первую очередь
Вы только что обновили README, добавили схемы в Confluence и закрыли самые частые вопросы. Но через пару дней кто-то из коллег всё равно пишет: «А как правильно?» Обычно после такого предлагают лучше документировать — и начинают добавлять страницы. Есть другое решение.
Что делать, когда ваш любимый стек умирает: держаться за нишу или быстро перенести навыки
Зарплаты не растут, проекты выбирают новые технологии, а вместо разговора об опыте на собеседовании спрашивают: «Почему вы до сих пор не перешли на что-то современное?» Самая плохая реакция здесь — убедить себя, что рынок скоро передумает.
Как стать «своим» среди беларусов? История разработчика из Африки в Польше
Обычно консультанты по межкультурным коммуникациям учат беларуских айтишников правилам игры в международном IT — объясняют, как общаться с американскими заказчиками, не пугаться индийского английского и правильно отвечать на бесконечные «How are you?» Но что происходит, когда роли меняются?
Хотите сообщить важную новость? Пишите в Telegram-бот
Главные события и полезные ссылки в нашем Telegram-канале
Обсуждение
Комментируйте без ограничений
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.