Просматривала старые презентации с митапов и нашла забавный слайд:
“Написание тестов – эффективная сублимация фрустрации от деградации”.
Когда в проекте что-то ломается, мы частенько испытываем негативные эмоции. (Ок, может быть, не у всех так. Но у тех, кто ничего не чувствует, и проблем нет.)
Например:
Что здесь думается?
Во-первых, это нормально – испытывать эмоции по поводу работы.
Во-вторых, важно обходиться с этими эмоциями разумно: так, чтобы не делать хуже ни себе, ни коллегам.
В-третьих, мой ответ на “что делать”: писать тесты. (Или скрипты, или другие инструменты и автоматизации.)
Почему?
Сильные эмоции, особенно гнев, дают прилив энергии.
На этой волне драйва легче чем в другие моменты сделать что-то новое.
Пар эмоций так или иначе надо выпускать; написать новые тесты – это безопасный и полезный способ.
В общем, со всех сторон хорошо.
Началось все много лет назад, я была разработчиком в классическом LAMP-проекте, и только-только занялась релизами.
И каждый релиз я сталкивалась с проблемами: или не собирались пакеты, или кронтабы переставали подгружаться, или шаблонизация ломалась из-за незакоммиченных новых файлов, которые использовались в include, или, или, или.
Я огорчалась, злилась, гневалась, а потом начала писать тесты на все то, что ломалось: на консистентность include-ов, на формат и консистентность кронтабов, на использование i18n, на синтаксис DDL.
Тесты у нас в проекте гонялись автоматически на каждый коммит, и при желании их можно было запустить и до коммита.
И жить стало веселее. Релизы перестали неожиданно разламываться из-за нелепых причин, а я почувствовала себя спокойнее: я могу повлиять на ситуацию, я контролирую происходящее.
Пиши тесты! Это эффективная сублимация фрустрации от деградации. И проекту от этого хорошо.