Заметки

Проектная память

Код хранит то, что команда сделала. Почти нигде не хранится то, почему она это сделала — и именно это теряется первым.

Что именно теряется

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

Дальше происходит предсказуемое. Новый человек видит странный код, считает его ошибкой и «чинит». Через неделю возвращается баг, ради которого эта странность и была написана.

Самая дорогая документация — та, которую пишут заново каждые полгода, потому что предыдущую никто не нашёл.

Что стоит записывать

Решения

Выбор и отвергнутые альтернативы. Без причины отказа запись почти бесполезна.

Ограничения

Внешние условия, которые не выводятся из кода: сроки, чужие API, договорённости.

Тупики

Подходы, которые пробовали и которые не сработали. Экономят чужие недели.

Договорённости

Как в этой команде принято работать и почему именно так.

Три правила