외주 개발 프로젝트가 끝나갈 무렵 가장 자주 듣는 말이 있습니다. "이건 우리가 원한 게 아니에요." 발주사는 품질 미달이라 하고, 개발사는 사양대로 납품했다고 합니다. 양쪽 다 거짓말을 하는 게 아닙니다. 문제는 '원한 것'과 '납품한 것'을 비교할 공통의 잣대가 처음부터 없었다는 점입니다.
이 잣대가 바로 검수 기준입니다. 그런데 많은 계약서가 검수 기준을 "정확도가 낮음", "사용성이 떨어짐", "기획 의도와 다름" 같은 정성적 표현으로 남겨둡니다. 이런 표현은 론칭 후 해석이 갈리기 시작하면 영원히 평행선을 달립니다. 발주사는 "당연히 이 정도는 됐어야지"라 생각하고, 개발사는 "계약서 어디에 그렇게 적혀 있느냐"고 반문합니다. 둘 다 근거가 같은 문서를 가리키는데 결론이 정반대인 상황, 이게 막판 분쟁의 전형입니다.
국내 외주 견적은 대부분 맨먼스(M/M) 기반입니다. 즉 결과물이 아니라 '개발자가 투입된 시간'을 기준으로 비용이 청구되는 구조입니다. 투입 시간으로 돈을 받는 계약에서 산출물과 검수 기준을 따로 정의해두지 않으면, 발주사는 자신이 정확히 '무엇을' 받게 되는지 모호한 채로 비용만 지출하게 됩니다. 그래서 검수 기준은 단순한 품질 관리 문서가 아니라, 발주사가 돈을 주고 사는 대상을 명문화하는 계약의 핵심입니다.
해결의 출발점은 검수 기준을 '말'에서 '숫자와 케이스'로 바꾸는 것입니다. 업계에서는 합격/불합격을 판정할 테스트셋을 계약서에 첨부하는 정량 검수 방식이 빠르게 표준으로 자리잡고 있습니다. 핵심은 "잘 작동한다"가 아니라 "이 입력에는 이 출력이 나와야 한다"를 미리 합의하는 것입니다.
테스트셋이 있으면 막판에 "이게 맞냐 틀리냐"를 두고 감정 싸움을 할 일이 줄어듭니다. 합격 조건을 통과했는지 함께 돌려보면 끝이기 때문입니다. 발주사 입장에서 이건 개발사를 의심하는 장치가 아니라, 양쪽 모두를 보호하는 객관적 심판을 미리 세워두는 일입니다.
두 번째 단골 원인은 변경요청입니다. 프로젝트 중간에 "이 기능 좀 빼고 저걸 넣자"는 요청은 거의 반드시 생깁니다. 문제는 이걸 회의 중 구두로, 메신저 한 줄로 합의하고 넘어갈 때입니다. 정작 정산할 때가 되면 "그건 원래 범위였다"와 "추가 작업이었다"가 충돌합니다.
그래서 계약 단계에서 '변경요청(change request) 절차' 조항을 미리 넣어두는 것이 권장됩니다. 핵심은 변경의 내용·추가 비용·일정 영향을 반드시 서면으로 확정한 뒤에야 작업에 들어간다는 원칙입니다.
저단가만 보고 파트너를 고르면 커뮤니케이션 비용, 일정 지연의 기회비용, 품질 미달 시 재작업 비용 등 숨은 비용이 쌓여 결국 초기 예산을 크게 웃도는 사례가 보고됩니다. 이런 숨은 비용의 상당 부분이 바로 '기준 없이 시작해 막판에 다투는' 과정에서 발생합니다. 검수 기준과 변경관리 절차는 그 비용을 앞단에서 차단하는 가장 저렴한 보험입니다.
막판 분쟁은 마지막에 터지지만, 원인은 거의 항상 계약·킥오프 단계에 있습니다. 검수 기준을 정량화하고 변경을 서면으로 못박는 일은 개발사를 압박하는 갑질이 아니라, 발주사와 개발사가 같은 그림을 보고 출발하도록 맞추는 작업입니다. 좋은 파트너일수록 이 기준을 함께 세우는 데 적극적입니다.
FIRSTPIP은 프로젝트를 시작하기 전에 검수 기준과 변경관리 절차를 발주사와 함께 명문화하는 것을 기본 원칙으로 삼습니다. 외주 개발을 앞두고 '무엇을 받게 되는지'를 분명히 하고 싶으시다면, 킥오프 체크리스트부터 함께 점검해 보시길 권합니다.