Даже самый аккуратный разработчик однажды оставляет после себя баг. Иногда это мелочь, иногда — баги становятся фичами или мемами, иногда — поводом для бессонных ночей. Как баг появляется, кто и как его находит, почему некоторые баги живут дольше некоторых стартапов и что с ними делать — разберём по шагам.
🔍 Стадия 1. Зародыш: баг появляется (или нет)
Баги рождаются по-разному. Иногда это банальная опечатка. Иногда — кривой if, который сломал логику. Иногда баги — это побочка спешки или компромиссов. Разработчик мог что-то не предусмотреть или тестировщик проглядел редкий кейс.
Важно понимать: баг существует не тогда, когда он появился, а когда его заметили. Ты можешь годами катать релизы с багом, который никто не видит, и он будет спать мёртвым грузом.
📣 Стадия 2. Кто-то сообщил
Дальше багу везёт или не везёт: кто-то пишет багрепорт. Это может быть юзер, коллега, QA или даже ты сам. Часто первый сигнал — это что-то вроде:
«У меня всё сломалось».
Половина таких «багов» — это баги пользователя (он что-то не так сделал) или недоработанный UX. Если человеку непонятно, как что-то работает, он решает, что баг.
✅ Стадия 3. Подтверждение или отклонение
Если багрепорт вменяемый — его проверяют. Тут баг может умереть сразу:
- «Не воспроизводится».
- «Работает, как задумано».
- «Это фича, а не баг».
Если бага нет — тикет закрывается. Если баг есть — он становится открытым багом и попадает в очередь. С этого момента он — живое существо в системе багтрекера.
⚙️ Стадия 4. Приоритизация и план
Открытых багов может быть сотни. Сразу чинить все — невозможно. Поэтому багам ставят приоритет:
- 🔥 Блокер — всё горит, сайт лежит, пользователи страдают. Чинить немедленно.
- ⚡ Критический — мешает работать ключевому функционалу.
- 🐛 Майнор — некритично, но неприятно.
- 🧹 Тривиал — ну, кто-то заметил опечатку.
Приоритет решает, когда баг дойдёт до рук разработчика. Горячие баги попадают в хотфиксы, остальное уходит в бэклог и ждёт часа.
🔧 Стадия 5. Исправление
Когда баг доходит до разработчика — начинается охота. Иногда это пять минут. Иногда — дни дебага. Плохой баг — тот, который воспроизводится «только на проде раз в месяц».
Исправил — делаешь коммит, пушишь, добавляешь ссылку на баг. Всё. Баг переходит в статус «Исправлен».
✅ Стадия 6. Проверка и закрытие
Исправленный баг идёт на тест. QA или автор багрепорта проверяет:
- баг больше не воспроизводится?
- ничего не сломалось по цепочке?
Если всё ок — баг закрывается. Он мёртв. Если нет — он переоткрывается и весь цикл повторяется.
🔄 А что потом?
Иногда баги «воскресают» через месяцы. Чаще всего — если фиксят симптом, а не причину. Или если баг был в одной ветке, а кто-то закатил старый код обратно.
У некоторых багов есть прям легенды. В больших системах живут баги, которые известны всем, но трогать их боятся — потому что фиксация может снести полпродукта.
👀 Почему баги живут долго?
- Менеджеры забили или не приоритизировали.
- Баг сложно воспроизвести.
- Баг не критичный — бизнесу норм.
- Исправить баг дороже, чем жить с ним.
🔑 Как сделать баги управляемыми
1️⃣ Вводи нормальную баг-трекинг систему (Jira, GitLab Issues — что угодно).
2️⃣ Требуй адекватные багрепорты: скрины, логи, шаги воспроизведения.
3️⃣ Не закрывай баги «на глаз». Проверяй фиксы и смежные места.
4️⃣ Делай ревью кода — баги легче ловить на стадии пулл-реквеста.
Итог
Жизненный цикл бага — это не теория из книжки. Это рутина любого проекта: от маленького стартапа до энтерпрайза. Если у тебя багов нет — значит, у тебя никто ничего не трогает. Так что баги — это норма. Главное — чтобы они не жили дольше тебя.
0 комментариев