저는 7년째 남이 만들어 놓은 Database Application을 유지보수하고 있습니다.
그런데 신기하게도 7년동안 같은 프로그램을 뜯어 고치고 있는데 전혀 새로운 버그가 생기는데
전혀 새로운 유형의 버그를 보면서 놀라고 있습니다.
어떻게 7년이 지났는데도 완성도가 높아지는 것이 아니고 버그만 계속해서 생기는지....
처음에 만들때 구조를 잘못 잡아 놓으면 두고두고 고생하게 됩니다.
사실 거대 프로그램이라(대략 7~8만 라인 정도) 제가 속속들이 알 수도 없고..
그렇다고 제가 무슨 권한이 있어서 새로 만들수도 없고..
역시 프로그램을 만들려면 정말로 제대로 만들어야 한다는 것입니다.
프로그래밍을 잘 아는 프로그래머가 만들어 놓은 수만줄의 코드보다
프로그래밍을 잘 안다고 생각하는 코더가 만들어 놓은 한줄때문에 고생하는 경우가 허다합니다.
완벽한 테스트는 현실적으로 없다고 생각이 듭니다.
제가 아무리 꼼꼼하게 테스팅을 하였다고 생각해도
사용자들이 만들어내는 창조적인 사용법과, PC의 상태와 서버의 상태와 뭐 등등....
예를 들면 전혀 문제가 없는 화면이 사용자의 터무니 없는 빠른 조작으로 인하여 문제가 생기는 경우
이것은 윈도우의 버그입니까? 아니면 그것을 대처할 수 없는 프로그램의 버그입니까? 미침니다.
아직은 저의 능력으로는 그러한 문제를 해결할 수는 없군요...
PC/윈도우/서버/네트워크/마우스/키보드/화면.... 하여튼 사용자들은
어떻게든 제대로 동작하지 않으면 "전산이 문제다"로 생각하고 전산시스템 전체를 불신하게 됩니다.
역시 전산은 정말로 잘해도 본전, 잘해도 본전, 눈꼽만큼만 못해도 다~꽝 이라는 것을 알게 되었습니다.
뭐... 꾸준히 콜처리하는 것이 최고의 대책일것 같고요
저의 경험상 에러리포팅관련 코드를 추가한다는 것은 또다른 버그를 양상할 수 있지 않을까 생각합니다.
그럼... 아참 소프테웨어는 끝없이 진화하는(코드의 추가/수정) 유기체가 아닐까요???
|
흠.. 열심히 해야겠습니다