과학적 방법을 적용하여 버그를 분리하고 해결하는 방법부터 델타 디버깅에 이르기까지 다양한 버그를 찾기위한 전략을 설명하는 Why Programs Fail 이라는 주제에 대해 읽은 훌륭한 책이 있습니다. 이 책의 또 다른 흥미로운 부분은 '버그'라는 용어가 없어진다는 것입니다. Zeller의 접근 방식은 다음과 같습니다.
(1) 프로그래머가 코드에 결함을 만듭니다. (2) 결함으로 인해 감염이 발생합니다. (3) 감염이 전파됩니다. (4) 감염이 실패합니다.
디버깅 기술을 향상 시키려면이 책을 적극 권장합니다.
내 개인적인 경험에서, 나는 우리의 응용 프로그램에서 많은 버그를 발견했지만 경영진은 단순히 새로운 기능을 얻기 위해 우리를 계속 압박합니다. "우리는이 버그를 직접 발견했으며 클라이언트가 아직 눈치 채지 못했을 때까지 그대로 두십시오."라고 자주 들었습니다. 버그를 수정하는 데 능동적으로 대처하는 것이 반응이 좋지 않다고 생각합니다. 실제로 문제를 해결해야 할 시점에 해결해야 할 다른 문제가 있고 더 많은 기능 관리가 문을 최대한 빨리 열고 싶어서 악순환으로 많은 스트레스와 화상을 입을 수 있으며 궁극적으로 결함이 제거 된 시스템입니다.
의사 소통은 버그가 발견 될 때 또 다른 요소입니다. 이메일을 보내거나 버그 트래커에 문서화하는 것은 모두 훌륭하지만 내 경험상 다른 개발자도 비슷한 버그를 발견하고 코드를 수정하기 위해 넣은 솔루션을 재사용하는 대신 (그들이 잊어 버린 것처럼) ), 그들은 자신의 버전을 추가하므로 코드에 5 가지 솔루션이 있으며 결과적으로 더 부풀어지고 혼란스럽게 보입니다. 따라서 버그를 수정하는 경우 일부 사람들이 수정 사항을 검토하고 비슷한 것을 수정하고이를 처리하기위한 좋은 전략을 찾은 경우 피드백을 제공하십시오.
limist 는 버그 수정에 관한 흥미로운 자료를 가지고 있는 Pragmatic Programmer 라는 책을 언급했습니다 . 이전 단락에서 제시 한 예를 사용하여 깨진 과부의 비유가 사용되는 Software Entrophy를 살펴 보겠습니다 . 깨진 창문이 두 개가 많으면, 사전에 자세를 취하지 않으면 팀이 창문을 고치는 것에 냉담 할 수 있습니다.