Поговорили с нашими программистами на эту тему, и вот к каким мыслям пришли.
В любой разработке ошибки неизбежны. Даже в коде NASA и Роскосмоса, где тестируют всё по сто раз, баги всё равно находятся. Проблема не в их существовании, а в том, как мы с ними работаем.
Баг — это не знак того, что программист криворукий. Это побочный эффект живого процесса, в котором участвуют множество факторов: неполные требования, меняющиеся приоритеты, разные среды, человеческий фактор, спешка, новые интеграции и т.д.
Рассмотрим этот процесс в виде метафоры: представим сложную систему как город. У вас есть дороги (основная логика), дома (модули), коммунальные сети (интеграции). И вот если где-то в подвале прорвало трубу, это не значит, что весь город построен плохо. Это значит, что нужно оперативно найти причину и починить, не парализуя движение.
Опаснее всего — культура «у нас нет багов». Обычно это значит, что: 1. Никто их не ищет. 2. Никто их не фиксирует. 3. Проблемы тихо прячут до критического сбоя, молясь, что его не будет.
Здоровый подход — воспринимать баг как сигнал. Он показывает, где система сложнее, чем мы думали или где наши предположения оказались неверными. Иногда исправление одного бага приводит к пониманию, что модуль требует переработки целиком. И это тоже важно вовремя отследить!
Баги также помогают команде расти. Каждый раз, разбирая ошибку, мы лучше понимаем продукт и его пользователей. Иногда в процессе поиска решения рождаются новые фичи или оптимизации, о которых раньше никто не думал. Поэтому вместо лозунга «багов быть не должно» лучше иметь лозунг «баги быстро находим и чиним». Это честнее, эффективнее и, в конечном счёте, безопаснее для бизнеса.
Так что, если завтра в проекте всплывёт баг, то не будем бить тревогу. Это не конец света, а повод сделать продукт лучше.