На цю тему я прочитала чудову книгу під назвою Why Programs Fail , в якій викладені різні стратегії пошуку помилок, починаючи від застосування наукового методу для виділення та усунення помилки, до дельтового налагодження. Іншою цікавою частиною цієї книги є те, що вона усуває термін "помилка". Підхід Зеллера такий:
(1) Програміст створює дефект у коді. (2) Дефект викликає інфекцію (3) Інфекція поширюється (4) Інфекція викликає збій.
Якщо ви хочете вдосконалити свої навички налагодження, я дуже рекомендую цю книгу.
В своєму особистому досвіді я знайшов багато помилок у нашому додатку, але менеджмент просто натискає нас далі, щоб отримати нові функції. Я часто чув "Ми самі знайшли цю помилку, і клієнт її ще не помітив, тому просто залишайте її, поки вони не зроблять її". Я думаю, що реагувати проти активного виправлення помилок - це дуже погана ідея, оскільки коли настає час фактично виправити помилку, у вас з’являються інші проблеми, які потребують вирішення, і більше функцій управління хоче вийти з дверей якнайшвидше, тож вас попадуть у порочному циклі, який може призвести до великого стресу і вигорання, і, в кінцевому рахунку, до системи, що позбавляється дефектів.
Спілкування також є ще одним фактором, коли виявляються помилки. Надсилати електронну пошту чи документувати її в трекер помилок - це все добре і добре, але, на мій власний досвід, інші розробники знаходять подібну помилку і замість того, щоб повторно використовувати рішення, яке ви поклали, щоб виправити код (оскільки вони забули про нього) ), вони додають власні версії, тож у вашому коді є 5 різних рішень, і в результаті він виглядає більш роздутим і заплутаним. Тож, коли ви виправляєте помилку, переконайтесь, що кілька людей переглядають виправлення та дають вам відгуки, якщо вони виправили щось подібне та знайшли хорошу стратегію боротьби з ним.
Ліміст згадав книгу "Прагматичний програміст", в якій є цікавий матеріал про виправлення помилок. Використовуючи приклад, який я наводив у попередньому пункті, я би роздивився наступне : Ентрофія програмного забезпечення , де використовується аналогія зламаної вдови. Якщо з'явиться два багато зламаних вікон, ваша команда може стати прихильною до того, щоб її колись виправити, якщо ви не приймете активну позицію.