Ответ
Баг (ошибка) — это отклонение фактического поведения программы от ожидаемого, описанного в требованиях, спецификациях или общепринятых стандартах. Он ухудшает качество и требует исправления.
Фича (функциональность) — это новая или улучшенная возможность продукта, которая добавляет ценность для пользователя и была запланирована (явно или неявно) как часть разработки.
Ключевые отличия:
- Источник: Баг возникает из-за ошибки в реализации. Фича — из-за намеренного решения (продуктового или архитектурного).
- Обработка: Баги фиксируются. Фичи — разрабатываются и тестируются.
- Восприятие: Баг — это проблема. Фича — это улучшение.
Пример:
- Баг: Кнопка "Сохранить" в модальном окне не реагирует на клик, хотя по ТЗ должна сохранять данные.
- Фича: В то же модальное окно добавили новую кнопку "Сохранить и выйти", которой не было в изначальных требованиях, но она упрощает workflow пользователя.
Важный нюанс: Иногда одно и то же поведение может трактоваться по-разному в зависимости от контекста и ожиданий ("It's not a bug, it's a feature").