1. 조금 더 찬찬히 바라보자.
문제추적을 하다가 원인을 발견하고 이것만 고치면 되겠다 생각했는데...
어 뭔가 조금 이상하네.. A케이스이 경우에는 딱 들어맞는데 B케이스는 왜 일어났지?
B케이스는 조금 이해가 안되네.
이럴 경우, 보통 바쁜 일정에 쫓기다 보면 A케이스만 대책을 세워서 해결했다고 문제를 클로즈시켜 버린다.
시간이 지나면 이 문제의 경우에는 제대로 대책이 되지 않았든지 아니면 또 다른 파생버그를 일으킬 가능성이 아주 높다. 경험상으로 거의 반드시 나중에 나를 괴롭힌다.
그래서 얻은 교훈은 조금 더 여유롭게 가는 것이 전체 프로젝트를 단축시킨다.
B케이스가 발견되면 당연히 검토를 해야 하고 그리고 조금 더 한발짝 물러나서 다른 파생버그는 없을지, 전체적으로 한번 더 바라본 후에 클로즈 시키는 것이 좋다.
한번씩 설계는 결백증환자가 맡는 것이 좋지 않을까라는 생각이 든다.
뭔가 여지를 남겨두면 그것들이 점점 쌓여서 복잡해 지고, 시간이 지날수록 실타래가 복잡하게 꼬이듯이 문제 해결을 할 수가 없다. 그래서 거대한 성을 쌓듯이 단계단계, 반듯하게 쌓아가야 한다. 그런 면에서 결백증이 필요할 것 같다. 프로그램을 작성하는 것이 중요한 것이 아니라 어떻게 검증할 것인지에 초점을 맞추어 벽돌을 쌓아가야 할 것이다.