На эту тему я прочитал отличную книгу под названием « Почему программы не работают» , в которой изложены различные стратегии поиска ошибок - от применения научного метода для выявления и устранения ошибки до дельта-отладки. Другая интересная часть этой книги заключается в том, что в ней отсутствует термин «ошибка». Подход Зеллера заключается в следующем:
(1) Программист создает дефект в коде. (2) Дефект вызывает инфекцию (3) Инфекция распространяется (4) Инфекция вызывает сбой.
Если вы хотите улучшить свои навыки отладки, я настоятельно рекомендую эту книгу.
Исходя из моего личного опыта, я обнаружил множество ошибок в нашем приложении, но руководство просто подталкивает нас к дальнейшему развитию новых функций. Я часто слышал: «Мы нашли эту ошибку сами, а клиент еще не заметил ее, поэтому просто оставьте ее, пока не обнаружите». Я думаю, что реагировать в противоположность проактивному исправлению ошибок - очень плохая идея, так как, когда приходит время действительно вносить исправления, у вас есть другие проблемы, которые необходимо решить, и больше возможностей управления хотят выйти как можно скорее, так что вы будете пойманы в порочном круге, который может привести к сильному стрессу и сгоранию и, в конечном итоге, к неисправной системе.
Связь также является еще одним фактором, когда обнаруживаются ошибки. Отправка электронного письма или его документирование на трекере ошибок - это нормально, но, по моему опыту, другие разработчики находят похожую ошибку и вместо того, чтобы повторно использовать решение, поставленное вами для исправления кода (так как они все об этом забыли) ), они добавляют свои собственные версии, так что у вас есть 5 различных решений в вашем коде, и в результате он выглядит более раздутым и запутанным. Поэтому, когда вы исправляете ошибку, убедитесь, что несколько человек просмотрели исправление и предоставили вам обратную связь, если они исправили что-то подобное и нашли хорошую стратегию для решения этой проблемы.
Limist упомянул книгу Pragmatic Programmer, в которой есть несколько интересных материалов по исправлению ошибок. Используя пример, который я привел в предыдущем абзаце, я посмотрю на это: Software Entrophy , где используется аналогия сломанной вдовы. Если появятся два разбитых окна, ваша команда может стать безразличной к тому, чтобы починить ее, если вы не займете активную позицию.