Зміст
- Що таке фіча простими словами
- Що таке баг простими словами
- Звідки взялося слово «баг»
- Чим фіча відрізняється від бага
- Які бувають баги
- Відомі баги, які коштували дорого
- Як розробники знаходять і виправляють баги
- Висновок
«Це не баг, це фіча» — фраза, яку чув, мабуть, кожен, хто хоч раз спілкувався з програмістами або грав у відеоігри. Обидва слова давно вийшли за межі ІТ і звучать у розмовах про смартфони, застосунки й навіть побутову техніку. Пояснюємо, що вони означають, звідки взялися і чим одне відрізняється від іншого.
Що таке фіча простими словами
Фіча (від англійського feature — особливість, характеристика) — це функція або можливість програми, сайту чи пристрою, яку розробники додали навмисно.
Кілька прикладів:
- темна тема в застосунку;
- можливість редагувати вже надіслане повідомлення в месенджері;
- розблокування смартфона за обличчям;
- кнопка «Купити в один клік» в інтернет-магазині;
- автозбереження документа кожні кілька хвилин.
Головне в понятті фічі — задум. Хтось вирішив, що ця функція потрібна користувачам, описав, як вона має працювати, а програмісти її реалізували.
У розмовній мові слово вживають ширше. «Фішкою» чи «фічею» можуть назвати будь-яку цікаву особливість: «Фіча цього кафе — сніданки цілий день». Але в ІТ-середовищі це саме запланована функціональність продукту.
Що таке баг простими словами
Баг (від англійського bug — жук, комаха) — це помилка в програмі, через яку вона працює не так, як задумано.
Баги бувають дуже різні:
- застосунок закривається, коли ви натискаєте певну кнопку;
- у кошику інтернет-магазину неправильно рахується сума;
- текст на сайті налазить на картинку на екрані телефона;
- персонаж у грі провалюється крізь стіну;
- повідомлення приходить двічі.
Баг виникає не тому, що програма «зламалася» сама по собі. Майже завжди причина — помилка людини: розробник щось не врахував, неправильно написав код, не передбачив незвичну ситуацію або дві частини програми погано взаємодіють між собою.
Звідки взялося слово «баг»
Технічні несправності називали «жуками» ще в XIX столітті. Наприклад, винахідник Томас Едісон у листах 1870-х років так описував дрібні проблеми у своїх пристроях.
Але найвідоміша історія пов’язана з комп’ютером Harvard Mark II. У вересні 1947 року оператори знайшли причину збою в роботі машини — у реле застрягла справжня міль. Комаху вклеїли в робочий журнал із жартівливим підписом про перший реальний випадок, коли знайшли «жука». Цю історію часто пов’язують з ім’ям Ґрейс Гоппер — програмістки, яка працювала з цим комп’ютером і охоче її розповідала. Сторінка журналу з тією самою міллю зберігається в Смітсонівському національному музеї американської історії.
Звідси ж походить і слово «дебагінг» (debugging) — пошук і виправлення помилок у програмі.

Чим фіча відрізняється від бага
Різниця проста: фічу зробили навмисно, баг з’явився випадково.
| Фіча | Баг | |
|---|---|---|
| Походження | Задумана розробниками | Виникла через помилку |
| Мета | Зробити продукт кориснішим | Немає мети, це недолік |
| Що з нею роблять | Розвивають, покращують | Шукають і виправляють |
| Приклад | Темна тема в застосунку | Темна тема вмикається сама посеред дня |
Цікаво, що одна й та сама функція може бути і фічею, і джерелом багів. Скажімо, автозбереження — це фіча. А от якщо воно час від часу затирає останні зміни, то це вже баг усередині фічі.
«Це не баг, це фіча»: звідки жарт
Фраза «It’s not a bug, it’s a feature» — один із найвідоміших айтішних жартів. Так іронічно кажуть, коли помилку видають за задуманий ефект, щоб не виправляти її.
Але іноді в жарті є правда. Буває, що випадкова помилка подобається користувачам і розробники залишають її свідомо. Найчастіше таке трапляється в іграх. У файтингу Street Fighter II, за поширеною розповіддю, комбо-удари з’явилися завдяки недоліку в обробці натискань. Розробники помітили це й зробили комбо повноцінною механікою, яка згодом стала стандартом для всього жанру.
Які бувають баги
Тестувальники зазвичай поділяють помилки за серйозністю:
- Критичні (блокери). Програма не запускається, неможливо оплатити замовлення, втрачаються дані. Такі баги виправляють негайно.
- Серйозні. Важлива функція працює неправильно, але є спосіб її обійти.
- Незначні. Помилка помітна, але майже не заважає: криво стоїть кнопка, в тексті друкарська помилка.
- Косметичні. Дрібниці в дизайні, які бачать хіба що найуважніші користувачі.
Окремо виділяють баги безпеки — вразливості. Через них зловмисники можуть отримати доступ до чужих даних або акаунтів. Великі компанії навіть платять винагороди людям, які знаходять такі помилки й повідомляють про них. Ці програми називають bug bounty.
Відомі баги, які коштували дорого
Іноді одна помилка в коді обходиться в мільйони.
- Ракета Ariane 5 (1996). Через 40 секунд після першого запуску європейська ракета зійшла з курсу й самоліквідувалася. Причиною стала помилка під час перетворення числа з одного формату даних в інший, який не вмістив надто велике значення.
- Зонд Mars Climate Orbiter (1999). NASA втратила марсіанський апарат, бо одна частина програмного забезпечення рахувала у фунтах-силах, а інша очікувала метричні одиниці. Зонд підійшов до Марса на неправильній висоті.
- Проблема 2000 року (Y2K). Багато старих програм зберігали рік двома цифрами, тож 2000 рік міг сприйматися як 1900-й. Світ витратив величезні кошти, щоб заздалегідь виправити код, і серйозних масових збоїв вдалося уникнути.

Як розробники знаходять і виправляють баги
Над якістю програм працює ціла команда, а пошук помилок має кілька етапів:
- Тестування. Тестувальники (QA-інженери) перевіряють програму вручну та за допомогою автоматичних тестів, намагаючись «зламати» її у всіх можливих сценаріях.
- Баг-репорт. Знайдену помилку описують: що саме сталося, як її відтворити, що мало статися натомість, на якому пристрої й версії програми.
- Дебагінг. Розробник шукає в коді причину помилки й виправляє її.
- Повторна перевірка. Тестувальник переконується, що баг зник і виправлення не зламало нічого іншого.
- Оновлення. Виправлення потрапляє до користувачів разом із новою версією програми. Саме тому в описах оновлень так часто пишуть «Bug fixes and performance improvements».
Висновок
Фіча — це те, що розробники зробили навмисно, щоб продукт став зручнішим і кориснішим. Баг — випадкова помилка, через яку щось працює не так, як задумано. Перші розвивають, другі шукають і виправляють. А коли наступного разу почуєте «це не баг, це фіча», знатимете: найчастіше це жарт, але іноді випадкова помилка справді стає улюбленою функцією.
Читати також: Прототип та прототипування – що це? Простими словами