소프트웨어 버그 잡기 교훈.

 1. 조금 더 찬찬히 바라보자.

문제추적을 하다가 원인을 발견하고 이것만 고치면 되겠다 생각했는데...

어 뭔가 조금 이상하네.. A케이스이 경우에는 딱 들어맞는데 B케이스는 왜 일어났지?

B케이스는 조금 이해가 안되네.

이럴 경우, 보통 바쁜 일정에 쫓기다 보면 A케이스만 대책을 세워서 해결했다고 문제를 클로즈시켜 버린다.

시간이 지나면 이 문제의 경우에는 제대로 대책이 되지 않았든지 아니면 또 다른 파생버그를 일으킬 가능성이 아주 높다. 경험상으로 거의 반드시 나중에 나를 괴롭힌다. 

그래서 얻은 교훈은 조금 더 여유롭게 가는 것이 전체 프로젝트를 단축시킨다.

B케이스가 발견되면 당연히 검토를 해야 하고 그리고 조금 더 한발짝 물러나서 다른 파생버그는 없을지, 전체적으로 한번 더 바라본 후에 클로즈 시키는 것이 좋다.

한번씩 설계는 결백증환자가 맡는 것이 좋지 않을까라는 생각이 든다.

뭔가 여지를 남겨두면 그것들이 점점 쌓여서 복잡해 지고, 시간이 지날수록 실타래가 복잡하게 꼬이듯이 문제 해결을 할 수가 없다. 그래서 거대한 성을 쌓듯이 단계단계, 반듯하게 쌓아가야 한다. 그런 면에서 결백증이 필요할 것 같다. 프로그램을 작성하는 것이 중요한 것이 아니라 어떻게 검증할 것인지에 초점을 맞추어 벽돌을 쌓아가야 할 것이다.


인지편항대도감1

 NEWTON 24년 3월호에 나온 특집기사를 요약해 본다. 인지편향은 마음의 안정과 신속한 판단을 가지는 장점과 함께 잘못된 판단 및 편견으로 이끄는  요인이기도 하다.  한번쯤은 이런 편향에 빠지지 않았는지를 자신을 돌아볼 필요가 있다. 1) 부정...