Помилка чи функція: у чому різниця та чому віддати перевагу?

помилка проти функції

Яка різниця між помилкою та функцією?

Основна відмінність між функцією та помилкою полягає в тому, що функція є навмисною, а помилка – випадковою.

Баги - це помилки програмування

У програмному забезпеченні помилка — це збій, який заважає продукту працювати належним чином. Помилки зазвичай виникають через людську помилку: недолік конструкції або програмну помилку.

Помилки можуть призвести до збою програмного забезпечення. Вони можуть призвести до порушень безпеки. Вони можуть перешкодити клієнтам завершити потік користувача.

Не всі помилки важливі. Помилка, через яку кнопка розбивається на два рядки тексту на менших екранах, неприємна. Але це не впливає на функціональність продукту.

приклад помилки: "помилка автентифікації, зв'яжіться з адміністратором"
Приклад помилки (фото Markus Spiskearrow-up-right )

Функції – це те, що програмне забезпечення може зробити

Функції визначають, як працює продукт.

Чи можуть користувачі коментувати публікації один одного? Чи можуть вони використовувати Apple Pay? Чи можуть вони використовувати продукт офлайн?

Це все приклади функцій.

Функції навмисні. Помилки випадкові. (натисніть, щоб твітнути)arrow-up-right

Ідеї ​​щодо функцій можуть надходити як у компанії, так і від самих кінцевих користувачів. Вони збираються, керуються та розставляються за пріоритетністю в програмному забезпеченні для запитів функційarrow-up-right або електронних таблицях.

Забагато функцій може ускладнити продукт і погіршити роботу користувача. Ось чому хороші менеджери з продуктів думають про бажані результати, перш ніж планувати нові функції.

Приклад функції в Feature Upvote
Наше програмне забезпечення Feature Upvote дозволяє користувачам голосувати за запити щодо функцій. Це особливість.

Чи можуть помилки бути функціями?

Іноді помилки можуть виглядати як функції і навпаки. Це може призвести до того, що помилки стануть частиною продукту.

Сара та її команда відправляють останню версію продукту XYZ. Вони очікують, що це працюватиме певним чином. Але коли він починає працювати, щось працює не так, як має бути.

Але клієнти не знають, що це помилка. Насправді вони думають, що так і повинно було бути. І вони люблять це. Тож Сара залишає це й називає це функцією.

Якщо користувачам це не подобається, то помилка — це просто помилка. І Сара має з цим щось зробити.

"це не помилка, це функція" потік Reddit
Тема Reddit про функції, які почалися як помилки ( повна темаarrow-up-right )

Помилка чи функція: чому віддати перевагу?

У 2000 році Джоель Спольскі створив тест Джоелаarrow-up-right , список із 12 кроків для кращого програмування. Крок 5 у списку — « виправити помилки перед написанням нового коду ».

Джоел стверджує, що успішна розробка програмного забезпечення залежить від усунення помилок. Він ілюструє з Microsoft.

Коли корпорація Майкрософт віддала перевагу функціям продукту над виправленнями помилок, їхні команди зазнали катастрофічних результатів. Тому вони змінили свій підхід і прийняли «методологію нульових дефектів».

Багато програмістів у компанії захихотіли, оскільки це звучало так, ніби керівництво думало, що вони можуть зменшити кількість помилок за допомогою розпорядження керівника. Насправді «нуль дефектів» означало, що в будь-який момент часу найвищим пріоритетом є усунення помилок перед написанням будь-якого нового коду.

Джоел Спольскі у фільмі «Тест Джоела».

Пріоритетність виправлень помилок також означає, що ваш продукт завжди готовий до доставки. Ваші терміни виконання робіт коротші, а ваша команда більш спритна.

Скажімо, вам потрібно створити функцію в крайньому випадку. Оскільки у вашому продукті немає помилок, ви зможете надіслати нову версію відразу після завершення роботи з новою функцією.

Виправлення помилок було вашим першочерговим завданням у 2000 році, і це має сенс і сьогодні.

Тест Джоела каже, що перед написанням нового коду потрібно виправити помилки

Чи варто виправляти ВСІ помилки?

Що робити, якщо помилку, про яку йдеться, важко виправити й вона не стосується багатьох людей? Ви можете заперечити, що краще створити функцію, яка допоможе сотням користувачів, ніж виправляти помилку, яка турбує десяток.

Якщо ви застосовуєте цю логіку знову і знову, ви отримаєте продукт, пронизаний дефектами. Ваші користувачі матимуть жахливий досвід, і вони відмовляться.

Ваш продукт набагато кращий з декількома куленепробивними функціями, ніж безлад хитких. Вони будуть добре спроектовані, добре перевірені та загартовані завдяки ретельному виправленню помилок.

Функції залучають нових користувачів. Помилки відштовхують існуючих користувачів. (натисніть, щоб твітнути)arrow-up-right

Що робити, якщо ваші розробники хочуть працювати над новими функціями?

Виправлення помилок, коли запити на функції заповнюють вашу дошку відгуківarrow-up-right , розчаровують. Це жорстока реальність розробки програмного забезпечення.

Менеджери-початківці продукту часто припускають, що створення функції відбувається швидко. Вони недооцінюють, скільки часу займе пошук і виправлення помилок у функції.

Ваші розробники, швидше за все, сперечатимуться на користь нових функцій, а не на виправлення помилок. Це тому, що запуск нової функції для розробників приємніший, ніж полювання на помилки.

Ви часто почуєте, як розробники жартують: «Це не помилка, це функція!»

Але менеджер із продуктів має бути твердим у тому, щоб помилки щоразу мали пріоритет.

Висновок

Ви хочете створити програмне забезпечення, яке обожнюють ваші користувачі? Потім віддайте перевагу виправленню помилок над новими функціями.

Ви виправили всі свої помилки та хочете знати, які нові функції додати? Тоді спробуйте Feature Upvote.

Ви отримаєте дошку, де ваші клієнти та члени команди зможуть додавати та голосувати за ідеї продуктів. Найкращі пропозиції піднімаються вгору, даючи зрозуміти вашій команді, що будувати далі.

Last updated