본문 바로가기
창업자, 스타트업의 외주 제작 질문 100/10. 실패 사례 및 재외주 전략

실패한 외주 프로젝트를 다시 살릴 수 있을까요?

by 노노니 2025. 11. 25.

외주 프로젝트가 실패했을 때 발주사가 가장 먼저 고민하는 것은 "이 프로젝트를 살릴 수 있을까?"입니다. 이미 시간과 비용을 투자했기 때문에, 처음부터 다시 시작하기보다는 기존 작업물을 활용하고 싶어합니다. 실패한 프로젝트의 복구 가능성은 실패의 원인과 작업물의 상태에 따라 달라집니다.

 

작업한 척만 한 최악의 경우

실패한 외주 중에는 작업한 척만 한 경우가 있습니다. 이런 경우는 작업을 이어간다는 의미가 전혀 없습니다.

작업한 척 사기의 실체

기술을 잘 모르는 발주자를 대상으로 작업 과정을 공개하지 않는 외주사나 프리랜서가 벌이는 최악의 경우입니다. 화면 몇 개를 만들어놓고 "80% 완료했다"고 보고하지만, 실제로는 기능이 전혀 구현되지 않았거나 데이터베이스조차 제대로 설계되지 않은 상태입니다. 발주사에게 테스트 환경을 보여주지 않고, 스크린샷이나 간단한 시연으로만 진행 상황을 보고합니다.

이어갈 수 없는 이유

이런 작업물은 이어서 완성할 수 없습니다. 겉보기에는 화면이 있어 보이지만, 뒤에서 작동해야 할 로직이 없고 데이터 구조가 없기 때문입니다. 새로운 작업자가 인수받아도 활용할 수 있는 것이 거의 없어서, 결국 처음부터 다시 만들어야 합니다. 시간과 비용을 낭비한 것 외에 얻은 것이 없는 상황입니다.

이러한 외주사, 작업자의 특징은 뻔히 작업을 하지 않았음에도 할만큼 했다면서 배째라 합니다. 안 좋은 외주는 끝으로 갈수록, 길게 갈수록 안 좋은 결론에 이르릅니다.

예방과 조기 발견

이런 사기를 막으려면 프로젝트 진행 중에 반드시 직접 사용 테스트를 통해 확인해야 합니다. 화면만 보여주고 실제로 작동하는지 확인하지 못하게 하는 외주사는 의심해야 합니다.

 

실력 부족으로 결말을 내지 못하는 경우

실패한 프로젝트는 작업의 수준이 낮아 결말을 내지 못하는 실력 부족의 경우가 많습니다.

실력 부족의 증상

작업자가 성실하게 작업은 했지만, 기술 수준이 낮아서 복잡한 기능을 구현하지 못하거나 버그를 해결하지 못하는 상황입니다. 간단한 기능은 작동하지만 핵심 기능에서 오류가 반복되고, 수정하면 다른 곳에서 문제가 생기는 악순환이 계속됩니다. 일정은 계속 지연되고 작업자는 점점 지쳐가며, 프로젝트는 미완성 상태에서 멈춰버립니다.

코드 품질의 문제

실력 부족한 작업자가 만든 코드는 구조가 엉망이고 유지보수가 어렵습니다. 같은 코드가 여러 곳에 반복되거나, 임시방편으로 땜질한 흔적이 곳곳에 보이며, 주석이나 문서가 없어 다른 사람이 이해하기 어렵습니다. 이런 코드는 기능을 추가하거나 수정하려 할 때 예상치 못한 문제를 일으킵니다.

왠만한 외주사의 개발자는 평균 정도의 실력을 보이지만 주니어 개발자의 실력을 자랑하는 일부 외주사는 코드 작성, 로직 구현의 기초적인 부분조차 엉망인 경우가 있습니다. 어떻게 고객 리뷰가 좋은지 모를 외주사가 있으니 섣불리 좋다 안좋다 판단하지 말고 과정의 일관됨, 절차를 지키는지를 유심히 보아야 합니다.

 

좋은 작업자가 이어서 완료할 수 있다

실패한 프로젝트를 좋은 작업자가 이어서 완료시킬 수 있습니다. 단, 기대치를 조정해야 합니다.

완료 가능성

실력 있는 작업자는 기존 작업물의 문제를 파악하고 수정하거나 재구성해서 프로젝트를 일단락시킬 수 있습니다. 완전히 새로 만드는 것보다는 빠르게 서비스를 오픈 할 수 있는 상태로 만들어줍니다. 치명적인 버그를 수정하고, 작동하지 않던 핵심 기능을 구현하며, 최소한의 안정성을 확보합니다.

품질 향상의 한계

다만 서비스의 품질을 크게 올릴 수는 없습니다. 기존 코드의 구조적 문제를 모두 해결하려면 사실상 새로 만드는 것과 비슷한 시간이 걸리기 때문입니다. 좋은 작업자가 할 수 있는 것은 기존 작업물을 최소한으로 서비스할 수 있는 수준까지 끌어올리는 것입니다. 깔끔하고 확장 가능한 서비스를 원한다면 처음부터 다시 만드는 것이 맞습니다.

일단락의 의미

프로젝트를 일단락시킨다는 것은 완벽한 서비스가 아니라, 최소한의 기능이 작동하고 사용자가 사용할 수 있는 상태를 만든다는 뜻입니다. 일단 서비스를 시작할 수는 있는 수준으로 완성시키고 이후 점진적으로 개선하거나, 필요하다면 나중에 전면 재개발을 계획할 수 있습니다.

 

일정과 대금을 모두 소진한 경우의 심각성

실패의 경우 프로젝트 일정을 다 보내고 대금을 모두 지급한 경우 문제가 심각합니다.

협상력 상실

계약금, 중도금, 잔금을 모두 지급한 상태에서는 외주사에게 압력을 행사할 방법이 없습니다. 외주사는 이미 돈을 받았기 때문에 수정 요청에 적극적으로 응하지 않고, "추가 비용이 필요하다"거나 "계약 범위를 넘어선다"는 답변을 합니다. 발주사는 법적 대응을 고려하지만, 실제로 돈을 받아내기 어렵고 시간도 1년 이상 걸립니다.

 

기존 작업물 재활용 비율과 추가 비용

실패한 프로젝트를 살리는 데 드는 비용은 기존 작업물에서 살릴 수 있는 비율에 따라 달라집니다.

30% 추가 비용 케이스

기존 작업물 중 70% 정도를 재활용할 수 있다면 추가 비용은 원래 계약금의 30% 수준입니다. 주요 기능이 대부분 구현되어 있고 코드 구조도 나쁘지 않아서, 버그 수정과 마무리 작업만 하면 되는 경우입니다. 데이터베이스 설계가 제대로 되어 있고, 핵심 API가 작동하며, 화면도 거의 완성되어 있는 상태라면 이 범위에 해당합니다. 70%의 작업물을 재활용 할 수 있다고 나머지 30%를 완료하는 것이 아닙니다. 70%를 재활용 하여 서비스가 오픈될 수 있도록 마무리 하는 것입니다.

50% 추가 비용 케이스

기존 작업물의 절반 정도만 재활용 가능하다면 추가 비용은 원래 계약금의 50% 수준입니다. 기본 구조는 있지만 핵심 기능에 문제가 많고, 상당 부분을 다시 작성해야 하는 경우입니다. 데이터베이스는 사용할 수 있지만 일부 테이블을 재설계해야 하고, 화면은 있지만 로직을 거의 새로 작성해야 하는 정도입니다.

서비스를 축소해야 합니다.

70% 추가 비용 케이스

기존 작업물 중 30% 정도만 재활용 가능하다면 추가 비용은 원래 계약금의 70%까지 발생할 수 있습니다. 디자인 파일과 기획서, 그리고 데이터베이스 기본 구조 정도만 사용하고 나머지는 거의 새로 만들어야 하는 경우입니다. 코드 품질이 너무 낮아서 수정하는 것보다 새로 작성하는 것이 빠른 상태라면 이 범위에 해당합니다.

개발을 새로 하는 경우와 동일합니다.

비용 산정의 기준

추가 비용은 새로운 작업자가 기존 작업물을 검토한 후 산정합니다. 코드를 열어보고, 데이터베이스 구조를 확인하고, 실제로 작동하는 기능을 테스트한 후에 재활용 가능한 비율을 판단합니다. 이 과정에서 발견되는 문제가 많을수록 재활용 비율은 낮아지고 추가 비용은 늘어납니다.

 

기존 작업물을 버리고 새로 만드는 선택

작업이 엉망으로 된 경우 기존 작업물을 버리고 새로 만드는 것이 서비스의 품질과 일정 측면에서 안전합니다.

새로 시작하는 것이 나은 경우

코드가 너무 복잡하게 얽혀있거나, 기본 설계부터 잘못되었거나, 보안에 치명적인 문제가 있는 경우입니다. 이런 작업물은 수정하려고 하면 계속 새로운 문제가 발생하고, 결국 원래 예상보다 더 많은 시간과 비용이 듭니다. 기존 작업물에 집착하다가 더 큰 손실을 보는 것보다, 깔끔하게 정리하고 새로 시작하는 것이 합리적입니다.

품질 확보

새로 시작하면 올바른 구조로 처음부터 설계할 수 있습니다. 나중에 기능을 추가하거나 수정할 때도 쉽고, 버그가 적으며, 성능도 좋은 서비스를 만들 수 있습니다. 당장은 시간이 더 걸리는 것처럼 보이지만, 장기적으로는 유지보수 비용을 절약하고 서비스 품질을 높일 수 있습니다.

일정의 예측 가능성

엉망인 코드를 고치는 작업은 일정 예측이 어렵습니다. 하나를 고치면 다른 곳에서 문제가 생기고, 예상치 못한 버그가 계속 나타나기 때문입니다. 반면 새로 시작하면 명확한 일정을 세울 수 있고, 단계별로 진행 상황을 확인하며 관리할 수 있습니다. 불확실성을 줄이고 프로젝트를 통제 가능한 상태로 만들 수 있습니다.

 

실패한 프로젝트 복구 결정 프로세스

실패한 프로젝트를 살릴지 새로 시작할지 결정하려면 체계적인 검토가 필요합니다.

전문가 코드 리뷰

실력 있는 개발자에게 비용을 지불하고 기존 작업물을 검토해달라고 요청합니다. 코드 품질, 구조, 재활용 가능성, 예상 작업 기간, 추가 비용을 포함한 리포트를 받습니다. 여러 개발자에게 의견을 들으면 더 객관적인 판단을 할 수 있습니다.

비용과 일정 비교

기존 작업물을 살리는 경우와 새로 시작하는 경우의 비용과 일정을 비교합니다. 추가 비용이 50%를 넘어가고 일정도 비슷하게 걸린다면, 새로 시작하는 것이 나을 수 있습니다. 단순히 비용만 보지 말고, 최종 결과물의 품질과 향후 유지보수 용이성도 고려해야 합니다.

비즈니스 우선순위 고려

시장 진입 시기가 매우 중요하다면, 품질이 다소 떨어지더라도 기존 작업물을 빠르게 마무리하는 것이 나을 수 있습니다. 반대로 서비스 품질이 경쟁력의 핵심이라면, 시간이 더 걸리더라도 새로 시작하는 것이 맞습니다. 기술적 판단과 비즈니스 판단을 함께 고려해야 합니다.

실패한 외주 프로젝트를 살릴 수 있는지는 실패의 원인과 작업물의 상태에 달려있습니다. 작업한 척만 한 경우는 살릴 수 없고, 실력 부족으로 미완성된 경우는 좋은 작업자가 최소 서비스 수준까지 완료할 수 있습니다. 다만 재활용 비율에 따라 원래 계약금의 30%에서 70%까지 추가 비용이 발생하며, 작업이 엉망인 경우 새로 시작하는 것이 품질과 일정 측면에서 더 안전한 선택입니다.