← Все заметки Дмитрий Борисенко

Почему первая версия всегда самая страшная

Заметки о том, как начинать плохо — намеренно: в коде, в беге и в тех частях жизни, где никто не выдаёт техзадание.

Когда мне впервые пришлось проектировать сервис, который повезёт настоящий продовый трафик, я два дня его не писал. Не был заблокирован, не исследовал — просто избегал момента, когда файл существует и он неправильный.

Техзадания, которого нет

У инженерии есть удобная привычка: тебе дают требования, а требования подсказывают форму. Вне инженерии требований нет, и форма появляется только после того, как ты сделал что-то достаточно уродливое, чтобы на это отреагировать.

Первая версия — не заявление о твоих способностях. Это вопрос, который ты задаёшь задаче.

Три вещи, которые надёжно вытаскивают меня из первого часа:

  • Написать интерфейс раньше реализации — даже если оба неверны.
  • Поставить таймбокс, который стыдно превысить.
  • Рассказать одному человеку, что ты делаешь, до того как это заработает.
// честный первый черновик
func Process(ctx context.Context, img Image) error {
    return errors.New("not yet, but soon")
}

Бег научил меня тому же быстрее, чем работа. Первый километр — всегда спор; остальное — просто расстояние.