Сначала работает, потом понимаем: как разработчики программируют наоборот

Сначала бабахаем код в прод, а потом разбираемся, почему это вообще работает.
Знакомая ситуация: ты пишешь код, он магическим образом работает, и только потом ты садишься разбираться, что же ты на самом деле сделал. Даниэль Лемир в своей заметке подмечает эту особенность человеческого познания — мы часто видим работающее решение, а уже затем постигаем его суть.
Как сборка IKEA без инструкции: сначала собираешь шкаф, потом находишь лишнюю деталь и понимаешь, что это была не та полка. В IT это работает точно так же — особенно когда деплоишь ночью под пиццу и кофе, а утром смотришь на код и думаешь: "Гениально! Или баг?"
Лемир приводит примеры из научной практики, но мы-то знаем, что каждый разработчик хоть раз коммитил "как-то работает" и только потом писал тесты. Это не лень, это — эвристика: быстрее запустить, чем спроектировать идеально.
Что из этого следует?
- Не бойтесь эксплуатировать рабочие прототипы — понимание придёт.
- Рефакторинг — это не признак плохого кода, а этап осознания.
- Если ваш CI/CD пайплайн ругается на недокументированный код — может, вы просто идёте естественным путём?
Комментарий студии METABYTE: Мы тоже сначала пишем код, а потом понимаем, что клиент хотел зелёную кнопку, а не синюю. Главное — чтобы работало, а осознание нагонит в следующем спринте.