개발·검수 · 04 / 05 · 전체 No.24

MVP·시제품 외주개발,
버그 수정과 추가개발은 어떻게 구분할까?

MVP·시제품 외주개발 과정에서는 발주자가 “원래 되어야 하는 기능이니 수정해 주세요”라고 생각하고, 개발업체는 “처음 요구사항에 없던 내용이니 추가개발입니다”라고 말하는 상황이 자주 생깁니다. 버그인지 추가개발인지는 수정 작업의 크기보다 ‘기존에 합의한 요구사항과 완료 기준’을 중심으로 판단해야 합니다.

HandsMate 개발 가이드 · 예상 읽기 9분
결론 먼저합의된 요구사항대로 동작하지 않는다면 일반적으로 오류 수정의 성격이 강하고, 기존 합의 범위를 넘어 새로운 기능·정책·처리방식을 요구한다면 추가개발의 성격이 강합니다. 다만 실제 구분은 계약서, 요구사항 문서, 화면설계, 변경 이력 등 프로젝트에서 합의한 기준을 함께 확인해야 합니다.

1. 문제는 ‘수정’이라는 한 단어에서 시작됩니다.

발주자가 말하는 수정에는 오류 수정, 문구 변경, 정책 변경, 화면 개선, 신규 기능 추가가 모두 섞여 있을 수 있습니다. 반대로 개발업체가 모든 변경 요청을 추가개발로 처리하면 계약 범위 안에서 해결해야 할 오류까지 비용 분쟁으로 이어질 수 있습니다.

“수정해 주세요”라고 요청하기 전에 먼저 “기존 합의와 다른 것인가, 기존 합의를 바꾸는 것인가?”를 구분하세요.

2. 변경 요청을 네 가지로 나누면 판단하기 쉬워집니다.

유형 1오류·버그

합의된 기능이나 조건대로 동작하지 않는 경우. 예: 저장 버튼을 눌러도 약속된 데이터가 저장되지 않음.

유형 2요구사항 구체화

기존 요구의 의미는 유지하면서 세부 표현이나 동작을 명확하게 하는 경우. 범위 영향에 따라 협의가 필요할 수 있습니다.

유형 3요구사항 변경

기존에 합의한 정책·화면·처리방식을 다른 방식으로 바꾸는 경우.

유형 4신규 기능

최초 합의 범위에 없던 기능이나 업무 흐름을 새롭게 추가하는 경우.

3. 같은 화면에서도 버그와 추가개발이 함께 나올 수 있습니다.

요청판단 방향이유
회원가입 후 로그인되지 않는다오류 가능성 높음회원가입·로그인이 합의된 기능이고 정상 흐름이 동작하지 않는 경우
회원가입에 추천인 기능을 추가해 달라추가개발 가능성 높음기존 범위에 없던 새로운 데이터와 처리기능 추가
관리자 목록에서 합의된 검색조건이 작동하지 않는다오류 가능성 높음합의된 검색기능의 구현 결과가 기준과 다름
관리자 목록에 엑셀 다운로드를 새로 넣어 달라추가개발 가능성 높음기존 요구에 없던 기능 추가
결제 완료 후 상태값이 잘못 저장된다오류 가능성 높음합의된 업무 규칙과 실제 처리 결과가 다름
결제 후 적립금 제도를 새로 적용한다추가개발 가능성 높음새로운 사업정책과 처리 로직이 추가됨

위 예시는 일반적인 판단 방향입니다. 실제 프로젝트에서는 계약서와 요구사항, 변경 합의 내용에 따라 결론이 달라질 수 있습니다.

4. 가장 어려운 것은 처음부터 명확하지 않았던 요구사항입니다.

예를 들어 요구사항에 “회원관리 기능”이라고만 적혀 있고 상세 화면과 기능이 정의되지 않았다면, 검색·엑셀·권한·탈퇴처리 중 어디까지 포함되는지 서로 다르게 이해할 수 있습니다. 이 경우 단순히 어느 한쪽의 버그 또는 추가개발이라고 단정하기보다 당시 합의 자료와 미팅 기록을 확인하고 범위를 다시 정리해야 합니다.

확인 자료무엇을 확인할까?
계약서·견적서개발범위와 제외범위가 어떻게 표현되어 있는가?
요구사항 목록해당 기능과 처리조건이 명시되어 있는가?
화면설계·프로토타입버튼·항목·업무 흐름이 합의되어 있는가?
회의·메신저 기록개발 전에 세부 요구를 합의한 기록이 있는가?
변경 이력개발 도중 원래 요구를 바꾸기로 합의했는가?

5. 애매한 요청일수록 바로 개발하지 말고 변경관리 절차를 거치세요.

01요청 기록

무엇을 어떻게 바꾸려는지 작성

02기준 비교

기존 요구사항과 차이를 확인

03영향 분석

개발범위·일정·비용 영향 확인

04합의 후 반영

버그·변경·추가개발을 구분해 처리

작은 요청이라고 구두로 계속 반영하다 보면 어느 순간 최초 범위와 현재 범위의 차이를 알기 어려워집니다. 변경사항을 간단하게라도 기록해두면 비용과 일정 분쟁을 크게 줄일 수 있습니다.

“작은 수정인데 왜 돈이 드나요?”도 작업시간만으로 판단하기 어렵습니다.

화면에서 문구 하나를 바꾸는 것처럼 보여도 DB 구조, 업무 로직, 외부 연동, 테스트 범위까지 영향을 줄 수 있습니다. 반대로 작업시간이 크더라도 애초 합의된 기능이 정상적으로 동작하지 않아 필요한 작업이라면 단순히 “시간이 많이 든다”는 이유만으로 추가개발이라고 볼 수는 없습니다.

버그와 추가개발의 기준은 “몇 시간 걸리는가?”보다 “기존에 무엇을 만들기로 합의했는가?”에 가깝습니다.

6. 비용 협의 전에 확인할 체크리스트

해당 기능이 최초 계약·견적·요구사항에 포함되어 있는지 확인했다.
합의된 기능이 정상적으로 동작하지 않는 문제인지 확인했다.
기존 정책이나 업무 흐름 자체를 변경하는 요청인지 확인했다.
기존에 없던 화면·데이터·기능이 새로 추가되는지 확인했다.
요구사항이 애매했다면 당시 화면설계와 회의 기록을 함께 확인했다.
변경 요청이 다른 기능·DB·외부연동에 미치는 영향을 확인했다.
추가 비용이 있다면 작업내용·금액·일정 변경을 반영 전에 합의했다.
변경 결과를 다시 검수할 기준을 정했다.
한 줄 원칙

버그와 추가개발은 작업량이 아니라 ‘기존 합의 범위가 무엇이었는가’에서 구분을 시작하세요.

기존 합의대로 만들기 위한 수정인지, 기존 합의를 바꾸거나 새로운 기능을 추가하는 것인지를 먼저 확인하면 불필요한 비용 분쟁을 줄일 수 있습니다.