인사이트

새로운 도구, 전문가의 견해, 활용 가능한 분석 정보를 통해 효과적인 마케팅 운영 및 관련 아이디어를 얻어보세요.

외주 개발 시 모르면 결국 손해 보는 4가지



장기간 지속되고 있는 글로벌 경제 불황으로 VC 시장은 여전히 침체기를 겪고 있습니다. 스타트업 얼라인언스와 오픈서베이가 공동 제작한 ‘스타트업 트렌드 리포트 2023’에 따르면, 창업자 63.0%는 실제로 2023년은 2022년 대비 투자 유치가 어려워졌다고 답했습니다.

이 같은 상황에서 스타트업들은 ‘아웃소싱’을 통해 해당 조직이 잘 해낼 수 있는 분야에 집중하고, 비용 관리에 열을 올리고 있습니다. 소프트웨어정책연구소(SPRi)의 ‘2022년 SW산업실태조사 보고서’에 따르면, 소프트웨어 기업이 1순위로 꼽은 채용 과정에서의 애로사항 중 채용에 따르는 인건비 부담(19.6%)이 2위를 차지했는데요. 이는 IT 업계의 현장에서 인건비 부담이 중대한 문제임을 알 수 있는 대목입니다.

그렇다면 스타트업들은 소프트웨어 개발을 위한 인력 충원은 어떻게 진행하고 있을까요? 신규 인력 채용, 기존 인력 재배치, 재교육, 외주 개발 등 다양한 방법을 사용하고 있습니다. 그중 지난 5년 이상 꾸준하게 증가해 온 신규 소프트웨어 사업 인력 확보 방식은 ‘신규인력 채용’과 ‘외주 개발’이었습니다. 그래서 오늘은 외주 개발 업체와 프로젝트 진행 시에 꼭 알고 있어야 할 팁 4가지를 준비했어요. 아래 내용을 읽고 나면 외주 개발 업체와의 협업 시 클라이언트로서 꼭 알아야 할 4가지를 얻어갈 수 있을 겁니다.

아래에 해당한다면 이 콘텐츠를 꼭 읽어보세요

-외주 개발, 어디서부터 해야 할지 감도 안 잡히는 조직
-팀 내에 개발자가 없거나 주니어 레벨만 있는 조직
-빠른 시일 내에 외주 개발 업체를 찾아야 하는 조직

1. 외주 개발 일정이 딜레이될 것을 늘 염두하라

애플 앱스토어 빌드 검수 거부 화면, Magplus

소프트웨어 개발의 핵심은 무엇일까요? 바로 내용이 쉽고 유지보수가 간편한 코드를 사용하는 것입니다. 그러나 좋은 소프트웨어를 개발했다고 해서 모든 IT 비즈니스가 성공하는 것은 아니에요.

IT 비즈니스 운영의 핵심 중 하나는 ‘일정’입니다. 마케팅, 사업개발, 프로덕트 개선 등 모두 서비스 일정에 맞추어 진행되니까요. 따라서 공표된 일정을 맞추는 것은 IT 비즈니스를 진행하는 데 있어 매우 중요한 사항 중 하나일 것입니다. 그래서 각 부서에 관리자가 있고, 특히 IT 분야에서 볼 수 있는 PM(Product/Project Manager)라는 직군도 있는 것이죠.

외주 개발을 맡겼을 때도 일정 관리는 중요합니다. 더군다나 외부 인원들을 통해 개발을 진행하게 되므로 즉각적인 커뮤니케이션이 어렵고, 코드 작성 시 여러 번의 피드백을 거치기 때문인데요. 따라서 일정을 잡을 때는 늘 딜레이를 염두에 두어야 합니다. 그래서 외주 개발 업체와 협업할 때는 서비스 운영 및 프로덕트의 전체적인 일정은 늘 여유롭게 잡아두는 것이 좋습니다. 개발이 늦어져도 프로덕트 출시에 영향을 받지 않게 하기 위함이죠.

특히 구글 플레이스토어, 애플 앱스토어 등 대부분의 애플리케이션 플랫폼은  빌드 검수 기간 기간이 길게는 72시간 정도까지 걸릴 수 있고, 검수를 마치지 못한 앱은 출시할 수 없습니다. 때문에 검수 통과 시간을 보수적으로 잡아 안정적인 출시 기간을 확보하기 위해서라도 반드시 개발 완료 시점으로부터 적어도 72시간 이상의 시간을 확보하는 것이 좋아요.

그렇다고 외주 개발 업체와 계약 시부터 딜레이를 감안하고 일정을 확인하라는 것은 아닙니다. 어디까지나 ‘만약의 상황’으로 개발 완료 시점이 연기될 수 있으니 업체와의 계약을 통한 개발 작업은 정해진 시간 안에 결과물이 도출될 수 있어야 해요.

2. 외주 개발 시, 요구사항 정의서 초안을 더욱 명확히 정리하라

기본적인 기획 내용이 정리되었다면, 다음은 요구사항 정의서 초안을 작성해야 합니다. 요구사항 정의서란, 프로그램에서 구현되어야 할 기능의 범위와 상세 내용을 명확하고, 완전하게 명시한 문서입니다. 쉽게 말하면 아이디어가 어떤 형태로 화면에 나와야 하는지, 어떤 언어로 개발해야 하는지, 웹 or 모바일인지 등 얻고 싶은 결과물에 대한 구체적인 정보를 나열한 문서죠.

미스커뮤니케이션의 나비효과, Google

요구사항 정의서 없이도 개발이 가능하겠지만, 요구사항이 명확해야 개발 도중 나오는 실수를 줄일 수 있고, 정확한 개발 견적을 알 수 있습니다. 그리고 외주 개발 업체를 통해 개발을 진행하다 보면 내가 생각했던 기능의 일부를 구현하지 못하거나 수정해야 하는 경우가 생기는데요. 이때 요구사항 정의서가 없다면 업체와 분쟁이 생겨도 처리하기가 여간 쉽지 않습니다. 요구 조건이 명문화된 것이 없으니까요.

요구사항 정의서 초안

외주 개발 시 요구사항 정의서는 보통 업체의 기획 부서에서 작성하게 됩니다. 클라이언트는 개발 의뢰를 위해 요구사항 정의서의 초안을 작성해 제작하고자 하는 서비스에 대한 설명을 할 수 있을 정도까지만 작성하면 돼요. 요구사항 정의서 초안에 들어갈 내용은 개발 내용에 따라 천차만별이지만, 기본적인 내용은 아래와 같습니다. 아래 내용을 참고해 간단한 요구사항 정의서를 작성해 보면 그리 어렵지 않을 거예요.

[외주 개발 시, 요구사항 정의서 초안에 꼭 들어가야 할 내용 6가지]

-구분: 해당 기능이 사용자, 관리자 중 누가 사용하는 기능인지
-메뉴: 요구사항이 구현되는 메뉴(화면), 메뉴에서 동작해야 할 기능 전반적인 설명도 포함
-필요 기능: 각 메뉴에서 필요한 기능
-기능 설명: 기능에 대한 상세 설명
-참고: 원하는 기능에 대한 이해를 도울 수 있는 참고문헌
-우선순위: 기능의 구현 순서 및 중요도

Chat GPT에서 생성한 요구사항 정의서 예시, ChatGP

그리고 회사 내에 기획자/개발자가 있다면 좀 더 상세한 형태의 요구사항 정의서 제작도 가능하겠지만, 인력이 부족하다면 Chat GPT와 같은 생성형 AI를 사용해서 도움을 받는 것도 좋은데요. 예를 들어 Chat GPT에 “요구 사항 정의에 내 요구 사항 작성”이라고 입력하고, 서비스 이름과 목적을 입력하면 Chat GPT가 요구사항 정의서에 들어갈 내용의 기본 틀을 잡아줄 겁니다.

덧붙여서, 요구사항 정의서를 작성할 때는 하나의 기능에 하나의 용어만 사용해야 하며, 애매한 단어를 사용하지 않아야 합니다. 예를 들어 ‘로그인’이라는 기능에 대해 ‘접속완료’, ‘구글 로그인’ 등 하나의 기능에 대해 여러 단어로 설명하게 되면 작업자는 해당 기능이 무엇을 의미하는지 정확하게 알 수 없기 때문이에요. 또한 “A 기능이 있으면 좋겠다” 가 아니라 “A 기능 필요”와 같이 명확하게 표현해야 추가 커뮤니케이션 없이 원활한 작업이 가능합니다.

3. 외주 개발 업체와의 계약서를 꼼꼼하게 작성하라

요구사항 정의서 작성을 완료했다면 본격적으로 외주 개발 업체와 미팅을 하게 될 건데요. 많은 업체와 미팅을 진행하면서 개발 기간은 얼마나 잡아야 할지, 예산은 얼마나 들여야 할지 판단이 섰을 겁니다. 그중 괜찮은 업체와 계약하기로 결정도 났을 거고요. 그렇다면 이제 가장 중요한 계약서 작성이 남았습니다. 왜 계약서 작성을 가장 중요하다고 했을까요? 계약서의 내용은 모든 상황의 ‘마지노선’이고, 어떻게든 진행되어야만 하기 때문입니다. 때문에 좋은 업체를 찾는 데 힘을 들인 것 이상으로 계약서 작성에 공을 들이는 것이 좋습니다.

[계약서를 작성할 때 5가지는 꼭 확인해야 할 5가지]

-개발 기획 방향이 계약서에 명시되어 있는지
-용역 내용(인력 배치 내용)이 계약서에 명시되어 있는지
-개발 과정 중 소통할 수 있는 권한이 있는지
-계약 후 생기는 수정 사항을 계약서 내에 삽입할 수 있는지
-결과물에 대한 소유권, 지식재산권 등의 권리가 의뢰인이 보유했다는 것을 명확하게 기재했는지

개발 외주 프로젝트 진행 절차 예시

먼저 개발 기획 방향은 소프트웨어 개발에 있어 가장 중요할 거예요. A를 제작해 달라고 의뢰했는데, 외주 업체가 잘못 이해하고 B를   결과물로 들고 오면 시간도 돈도 의미 없이 없어져 버리는 꼴이기 때문입니다. 때문에 반드시 개발 착수 전에 의뢰인과 외주 업체 쌍방이 모두 동의한 기획 방향을 기획서에 명시해야 합니다.

또한 용역 내용은 우리 프로젝트에 투입되는 인력의 수, 인력별 경력, 직무, 프로젝트 내에서 수행하는 역할, 인력비 등을 의미하는데요. 계약서에 명시된 인원이 누구고 어떤 방식으로 일하는지 계약서에 기재되어 있어야 추후 인원이 변동되거나 투입이 중단된다고 하더라도 이의를 제기할 수 있기 때문입니다.

그리고 개발 과정 중에 다양한 방법으로 외주 업체에게 피드백을 줄 수 있겠지만, 커뮤니케이션이 어렵거나 피드백을 불성실하게 이행할 가능성을 배제할 수 없는데요. 때문에 피드백 전달 후 N일 이내에 이를 반영해야 한다든지, 개발 완료 후 꼭 코드 검증을 받는다든지 등 개발사와 소통해야 할 시점과 내용을 계약서 내에 명문화하는 것이 좋습니다. 계약 기간 내에 프로젝트 진행 방향이 바뀌거나 코드를 수정하는 것은 어찌 보면 너무나 당연한데요, 하지만 계약 관계에는 당연한 것은 없습니다. 계약 내용에 산출물을 반드시 수정할 수 있는 점을 기재해야 분쟁이 생겨도 ‘정당한 수정’이 될 거예요.

마지막으로, 반드시 결과물에 대한 소유권, 지식재산권이 의뢰한 사람에게 있다는 것을 계약서에 명시해야 합니다. 이를 명시하지 않게 되면, 결과물을 제작한 사람의 권리를 일부 인정해야 할 수도 있으니 이 내용은 잊지 말고 꼭 기재해야 해요. 이는 계약서 작성의 핵심이 ‘명문화’이기 때문입니다. 말로만 오고 갈만한 내용도 계약서 내에 잘 넣어놔야 해요. 1~2개월이라는 긴 기간 동안 준비하는 만큼, 중요한 내용은 반드시 서면으로 남겨야 합니다.

4. 외주 개발이라도 QA 없이는 출시도 없다

코딩 작업이 마무리됐다고 해서 아직 작업이 끝난 게 아닙니다. 소프트웨어 개발의 마지막 단계에는 코드 검증이 필요한데요. 시간이 촉박하다는 이유로 이 과정을 그냥 지나치게 되면, 이후 유지보수 단계에서 지속적으로 어려움을 겪기 마련입니다. 특히 외주 개발 업체를 통해 개발을 진행한 경우, 내부 인원이 작업한 것이 아니기 때문에 어려움은 더 커지게 되죠.

Quality Assurance

때문에 외주 개발 업체에서 QA를 진행하기 어렵다면 내부 인원 또는 검증이 가능한 실력의 프리랜서 개발자, 혹은 QA 전문 회사에 QA(Quality Assurance) 작업을 맡겨서라도 코드를 검증해야 합니다. QA란 문자 그대로 ‘품질 검증’인데요, 프로그램이 기획 의도대로 작동하는지, 요구사항이 모두 이행됐는지, 버그는 없는지 등 ‘정상적’으로 프로그램이 동작하는지 검증하는 과정입니다. QA를 통해 결과물에서 치명적인 결함이 발견되는 경우도 종종 있는 만큼, QA는 서비스 출시 일정이 아무리 바빠도 지나치지 말고 꼭 진행해야 해요.

외주 개발 시 클라이언트가 꼭 알아야 할 4가지를 알아보았습니다. 전문가와 외주 개발해도 좋은 결과물을 만들기 위해 클라이언트가 준비해야 할 것도 있습니다. 남의 손을 빌려 만들지만, 결국 프로덕트는 의뢰인의 것이기 때문이죠.



자료출처 : 외주 개발 시 모르면 결국 손해 보는 4가지 – 스타트업 스토리 플랫폼 '플래텀(Platum)'