그래도 답은 '체계적으로 접근해야 된다' 입니다.
개발 환경과 실제 운영 환경이 달라서 생기는 많은 버그는 어쩔 수 없습니다.
시험할 때 실제 운영 환경에 근접하게 맞춰서 테스트하는 것이 가장 좋지만 현실적으로 불가능이므로,
고객과 상호협의한 시험환경(서버 수, 클라이언트 수, 네트워크 대역폭, 트랜잭션 호출 빈도 등등)에서
정해 놓은 성능 이상을 낸다면 성능 충분이라는 것을 고객과 협의하시고,
그 시험환경을 시험결과보고서에 기술하고 시험 결과가 정상이면 됩니다.
그럼에도 발생하는 모든 문제점은 어쩔 수 없는 사항입니다.
고객들이 실제 써보면 많은 돌발 변수들 때문에 버그가 계속 발견됩니다.
그래서 정식 릴리스 이전까지는 고객이 시험해 주는 과정인 '사용자 시험'이라는 절차를 거치게 됩니다.
보고되는 버그는 모두 결함 목록으로 정리하고,
각각의 결함에 대해서 원인 파악을 해서 원인 설명을 붙이고,
결함 해결 후에 조치한 내역을 모두 정리하고,
정리한 후에 Side Effect가 발생하면 그것도 정리해서,
최종적으로 그 결함이 더 이상 생기지 않을 때까지 관리하세요.
소스 버전 관리도 당연히 하셔야 합니다.
고객이 결함을 알려와도 섣불리 추정해서 대답하지 마시고,
모르는 결함인 경우에는 조사해 보겠다고 대답해서 돌려 보내고,
직접 조사해서 결함의 증상과 원인을 정확히 파악한 후에 대답하세요.
같은 결함으로 전화를 건 고객이라면
문제점이 이미 보고되어서 조사/해결 중이라고 간단히 대답하고 끊으세요.
이미 해결된 사항이라면 홈페이지 등에 '조치요령 지침서' 같은 것을 올려서
그것을 참조해 보라고 하고 끊으세요.
만일 해결되지 않는 버그가 생긴다면
그 버그에 대한 자세한 설명과,
왜 해결되지 않는지 이유에 대해 자세한 설명을 붙여서,
이 문제는 해결해 보려고 노력해 봤지만 (위에서 관리한 결함 목록, 설명 제시)
해결되지 않는 버그(해결 불가능한 이유)란 것을 고객에게 인식시키고,
버그를 감수하고 사용할 수 있는 다른 대안을 제시하도록 하세요.
그래도 문제를 해결해 주길 원하는 고객이라면
문제 해결에 필요한 충분한 시간, 자원을 확보해서 대응해야 합니다.
적으신 글을 보니 이미 시범운영 해 볼 시기도 다 지난 것 같고,
어쩔 수 없이 결함 관리라는 기초적인 것부터 다시 적용해야 할 듯 싶습니다.
수고하세요.
홍환민.행복 님이 쓰신 글 :
: 안녕하세요? 환민입니다.
: 답글을 제외하면 오랫만에 글쓰네요.
:
: 지금 회사에서 한 제품의 개발을 책임지고 있습니다.
: 사실 제 위에 계신 대리님 (사실상 개발팀의 팀장)이 담당자고 저는 그 아래에서 개발하는 개발자인데,
: 실질적으로는 제가 담당자 겸 개발에, 외부에서 오는 기술문의를 처리하고 있습니다.
:
: 원래는 대리님과 제가 분담하여 개발 및 기술지원 등을 처리하려고 하였으나,
: 대리님이 다른 일들로 눈코뜰새 없이 바쁘시기 때문에, 어느순간부터 제품의 내부적인 구조나 소스에 대해서나
: 각 마이너 버전 업그레이드시 변화된 상세한 내용등은 신경을 못쓰시고 계신 상황이고요.
:
: 항상 외부 고객의 전화에 시달립니다.
: 제품의 결함에 대한 문의입니다. 항상 이럴때면, "다음 버전에서 해결해서 패치해 드리겠습니다.",
: "이런 문제가 발생한 적이 없는데, 그 문제가 발생하는 몇몇 PC가 문제가 있는 것 같습니다."
: 이런 식으로 말합니다.
:
: 결국은 제품의 결함인데...
: 딜레마 상황인 것은.
:
: 개발을 열심히 하고 보고되는 버그들을 그때그때 고쳐나가도 항상 제자리 걸음인 것 같다는 것입니다.
: 제가 정말 업무시간에 웹서핑, 메신저 하나도 안하고 빡세게 하고, 늦게까지 남아서 일을 하다면
: 좀 나아질지도 모르겠지만, 그것도 결국 한계가 있을 것 같다는 거고요.
:
: 회사 내부적으로 테스트할 환경이 전혀 되지 못하다는 것입니다.
: 엔터프라이즈 환경에서 몇천대를 수용해야 하는 네트웍 기반의 프로그램인데,
: 현재 제 PC와 놀고 있는 PC 3대 정도 놓고 테스트하고 있습니다.
:
: 테스트도 시간도 없고, 아시다시피 저 혼자 개발하므로, 제대로 된 테스트라기 보다는 그냥 돌아가는구나
: 테스트 하는 정도이고요. 어찌보면 고객들이 테스트를 해 준다고 봐도 무방할 정도입니다. ;;;;;
:
: 흠.. 이런 제품의 경우 어떠한 테스트 방법이 좋을까요?
: 다양한 PC와 운영체제를 커버해야 하고, 네트웍 상에서 몇천대가 붙어서 돌아야 하기 때문에,
: 그런 쪽에서의 안정성도 담보가 되어야 하는데...
: 다른 회사들도 기껏해야 회사에서 직원들이 사용하는 PC정도 밖에 테스트 해볼 방법이 없을텐데,
: 어떤 방법을 써서 테스트 하고 계신가요?
:
: 그리고 위에서 말했듯이, 열심히 개발해도 제품의 결함 문제가 해결되지 않는 것에 대해
: 회사 시스템적으로든, 제 개인적으로든 어떻게 해결해야 할지 좋은 의견 주시면 감사하겠어요.
: 단, 막 회사 시스템이 체계적으로 될 상황이 아니니 감안해서 말씀주셨으면 좋겠어요.
: (시스템 적인걸 말하지 말라는건 아니고요, 막 여러 서적에 나오는 체계적인 시스템을 도입하면 해결된다 식의
: 실현불가능한 말은 큰 도움이 안된다는 ;;;;)
:
: 행복하세요.
|