Как решать, сколько времени тратить на техническое решение?
- Что такое обратимые и необратимые решения?
Решения делятся на обратимые («двери в обе стороны»: библиотека внутри сервиса, формат логов, внутренний API) и трудно обратимые («дверь в одну сторону»: публичный API, схема данных у клиентов, выбор основной базы, договор с провайдером). Обратимые принимают быстро, небольшой группой, и пересматривают по фактам; на необратимые тратят время: варианты, прототипы, design doc, широкое обсуждение. Ошибка — обсуждать неделями обратимое и решать за минуту необратимое.
- Делать решения обратимыми: абстракции, флаги, постепенные миграции
- Цена ошибки × вероятность — ориентир, сколько времени тратить
- Скорость принятия решений — тоже ценность команды
А ещё Вопрос для проверки: «во что обойдётся передумать через полгода?»
Подробно
Примеры:
- обратимые: выбор HTTP-клиента, структура пакетов, внутренний формат события с версией, параметры кэша;
- необратимые: идентификаторы в публичном API, формат хранения данных клиентов, разбиение на сервисы с отдельными базами, выбор облака с глубокой интеграцией.
Как сделать обратимым: feature flag, тонкая обёртка над провайдером, двойная запись при миграции схемы, версии API.
Что хотят услышать
- Обратимые и необратимые решения.
- Разное время и процесс для них.
- Приёмы повышения обратимости.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Обратимые — принимать быстро, на трудно обратимые тратить время и прототипы
- ✗Все решения требуют одинаково долгого обсуждения
- ✗Необратимые решения лучше принимать быстро, чтобы не терять время на долгие обсуждения
- ✗Решения не стоит пересматривать после принятия
Разбор темы
- Технические решения — варианты, проверка и цена ошибки
Как предлагать решение команде, разрешать спор проверкой, решать, сколько времени тратить на выбор, когда писать своё, а когда брать готовое, и как рассказать о решении на собеседовании.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.