brunch

You can make anything
by writing

C.S.Lewis

by 이성훈 Apr 08. 2024

프리랜서가 값싼 프로젝트에서 벗어나지 못하는 이유

프로젝트 견적대를 높이기 위해서는..

저는 개인 프리랜서 개발자로 시작해 플랫폼 개발사로 확장하는 과정에서 견적 시스템을 여러 차례 바꾸었어요. 청구 방식도 처음에는 시간 단위 청구였다가 현재는 확정된 견적 금액을 청구하는 방식으로 바꾸었고요.


견적 시스템은 과거보다 훨씬 정교해졌고 아직도 계속 튜닝하고 있습니다. 저희가 에이전시 사업 초기에 500~1000만 원 금액대의 프로젝트를 수주하다가 현재 1~3억 규모의 프로젝트들까지 수주할 수 있게 되는 과정에서 견적 시스템의 정교화가 무엇보다 중요했어요.


최근 프리랜서 분들과 에이전시 대표님들 대상으로 컨설팅을 활발하게 진행하고 있는데요, 세밀한 견적 산출을 어떻게 해야 할지 모르겠다고 고민하신 대표님을 상담해 드렸어요. 컨설팅은 각 회사별로 밀접한 내용을 다루지만 견적에 대한 주제는 많은 분들에게 도움이 될 수 있다는 생각이 들어 글로 정리하게 되었어요. 글 아래 컨설팅 안내 링크가 있으니 컨설팅에 관심 있으신 분들은 확인해 보세요.


처음에는 작은 프로젝트부터


프리랜서를 처음 시작하게 되면 우선 저렴한 프로젝트부터 시작하게 돼요. 대게 중개 플랫폼을 통해 구해보려고 하다가 치열한 경쟁과 낮은 단가 때문에 포기하고 지인이나 지인의 지인을 통해 작은 프로젝트부터 구하게 될 거예요. 처음에는 간단한 홈페이지 제작이나 크롤링 스크립트 등 간단한 의뢰를 싸게는 몇 십만 원에서 1~2백만 원 수준으로 시작하게 될 거예요.


처음에는 내가 어느 정도 규모의 프로젝트를 할 능력이 되는지, 어느 정도의 금액을 받아야 하는지 판단하기 어렵기 때문에 작은 프로젝트부터 시작하는 것은 좋은 전략입니다. 그리고 경험이 쌓이면 정확히 얼마를 받아야 하는지 구체적으로는 모르겠지만 이건 많이 받아야겠구나, 이건 간단하겠구나 정도의 직감은 생기게 돼요.


작은 프로젝트일 때의 견적 산출


금액이 몇 백만 원 이하일 때는 대략적으로 산정해도 리스크가 크지 않습니다. 고객과의 협상을 통해서 조금 깎아주거나, 조금 더 받는 것도 가능하죠. 그래도 감에만 의존하지 않고 고객이 요구하는 기능이 어떤 것들인지, 구현할 페이지가 몇 페이지인지, 테이블 설계가 복잡한지 단순한지 등을 따져보고 이를 구현하는 데 며칠이 걸릴 것 같은지, 몇 주가 걸릴 것 같은지 예상한 후 공식으로 만들어봐야 합니다.


예를 들면 홈페이지 구축이라면 페이지 수나 간단한 기능 구현 여부, 커스텀 여부 등을 옵션으로 해서 몇 가지 비용 옵션을 제공할 수 있을 거예요. 예를 들면 5 페이지에 문의하기 기능 구현시 200만 원, 여기에 회원가입과 게시판 기능 추가 시 300만 원을 받을 수 있겠죠.


그리고 아직 개인 단위이기 때문에 나의 능력을 기준으로 구현 공수를 판단하면 되고, 예상보다 실제 공수가 작았다면 꿀을 빠는 프로젝트가 될 것이고, 예상보다 공수가 많다면 밤을 새워서 메꾸거나 말도 안 되는 공수라면 프로젝트 중단을 요청하고 선금을 돌려줘야 할 거예요. 공수를 무조건 크게 잡으면 되는 것 아니냐고 생각하실 수 있지만, 고객은 언제나 다른 선택지가 있기 때문에 적정 가격을 제시하지 않으면 고객을 놓칠 수 있습니다.


시간 단위 청구


견적을 명확하게 산출하기 어렵다면 고객과의 협의를 통해 시간 단위로 비용을 청구할 수도 있습니다. 저의 경우도 개인 프리랜서일 때부터 개발사로 확장한 초중반까지는 시간 단위로 청구를 했습니다. 총 개발 금액을 확정하지는 않지만, 시간당 얼마를 받을지를 협의하게 되고, 그 시간 동안 성실히 일하고 있다는 것을 고객이 신뢰해야 합니다.


즉 시간 단위 청구는 고객과의 신뢰를 바탕으로 한 계약 방식이고, 시간을 효율적으로 사용하지 않으면 고객의 비용이 늘어나는 구조이므로 진행 중인 상황과 결과물을 주기적으로 업데이트해야 합니다. 고객사 쪽으로 파견을 가서 월급여를 받는 상주 프로젝트도 시간 단위로 비용을 받는다고 볼 수 있지만 상주 프로젝트는 보통 전체 규모가 꽤 크고 몇 개월 단위로 계약을 맞는 반면, 내가 단독으로 작은 프로젝트 고객과 계약을 맺고 주로 원격으로 내가 일한 시간만큼 청구한다는 면에서 다릅니다.


신뢰 관계만 있다면 내가 원하는 시간당 급여를 받을 수 있고, 고객도 실제 공수와 비례하는 비용만 지불하면 된다는 점에서 만능처럼 보이지만 치명적인 단점이 있습니다. 프로젝트 전체 비용과 총 개발 시간을 예측하는 것이 어렵다는 점이에요.


예산 천만 원 이하의 작은 프로젝트라면 대부분 1개월 안에 끝나기 때문에 각을 다투는 프로젝트가 아닌 한 큰 위험은 없습니다. 결과물이 완성되었고 프리랜서가 한 달간 열심히 일했다는 것을 믿는 고객사라면 1개월치 외주 비용을 지불할 겁니다.


그러나 예산 2천만 원이 넘어가고 개발 기간이 몇 개월 이상 넘어간다면 기간과 비용을 예상하는 것이 중요해집니다. 시간 단위 청구로 고객과 합의를 했다고 하더라도 고객이 최대 3천만 원의 개발비를 생각하고 있었는데 실제로는 이를 훨씬 뛰어넘는 개발비가 청구되고 개발 기간도 예상보다 몇 배가 된다고 하면 계약 상으로는 문제가 없다고 하더라도 고객의 불만이 커질 수밖에 없을 겁니다. 이후부터는 의뢰를 받기 어려워질 것이고요.


프로젝트가 커졌을 때의 견적 산출


큰 프로젝트를 수주하기 위해서는 영업력보다도 정확한 견적 산출이 더 중요해요. 견적 산출을 잘못한 프로젝트는 수주하더라도 오히려 손해가 발생하기 때문이죠. 수주 금액대를 기존 몇 백만 원에서 몇 천만 원으로 올리는 것을 고려하고 있다는 것은 이제 더 이상 개인이 아니라 팀이나 기업으로 움직이고 있다는 뜻일 거예요. 개인일 때는 견적 산출을 잘못하면 그냥 돈을 덜 벌고 시간을 더 쓰는 것이지만, 직원을 고용한 상태라면 잘못된 견적산출은 아예 내 주머니의 현금이 사라지는 것을 말하니 더 치명적이에요.


프로젝트 금액대를 올리려면 그 금액대의 견적을 정확하게 산출할 수 있다는 확신이 필요해요. 그런 확신이 없이는 운이 좋은 프로젝트에서는 이익이 남고 운이 나쁜 프로젝트에서는 손해가 나는데 이를 종합적으로 추적하거나 분석하기도 어렵고 기도만 하며 주먹구구식으로 운영할 수밖에 없을 거예요.


정확한 견적 산출을 위해서


정확한 견적 산출은 지식과 이론으로 하는 것이 아니에요. 경험과 기록으로 해야 하는 거죠. 무슨 말이냐면, 처음에 어떤 견적 기준을 잡았다면 프로젝트들을 진행하면서 그 기준이 맞는지 계속 검토하면서 기준을 개선해 나가야 해요. 저희는 처음에 구현할 페이지 수만을 기준으로 견적을 잡았어요. 페이지가 많으면 개발 분량이 많아져 공수가 많이 들 것이고 페이지가 적으면 공수가 적게 든다고 판단한 거예요.


대충 생각하면 맞는 것 같지만, 실제로는 큰 오류가 있어요. 반례를 들면 이해하기 쉬운데요, 구현할 페이지가 수가 30페이지로 똑같은 두 프로젝트가 있다고 했을 때, 한쪽 프로젝트는 기능이 많고 페이지가 복잡한데 다른 쪽 페이지는 기능이 적고 페이지들이 단순하다면 당연히 전자가 공수가 크겠죠? 여기서부터 출발하는 거예요. 페이지수만을 기준으로 견적을 산출할 수는 없고 기능도 고려해야 한다는 것을 알 수 있어요.


그래서 저희는 한동안 페이지 수와 기능 단위로 견적을 계산해 봤어요. 그런데 같은 기능이라도 공수가 몇 배 이상 차이가 나기도 해요. 정산 기능을 예로 들면, 플랫폼이 직접 판매하고 간단한 결제만 있는 서비스의 정산은 간단하겠지만 판매자가 많고 쿠폰과 적립금 시스템이 있는 정산이라면 복잡하겠죠? 공수는 10배 이상 차이 날 수 있어요. 즉 페이지수와 기능 단위만으로 견적을 산출하면 안 돼요.


저희가 지금 하는 방식은 페이지수와 기능 단위 산출을 기반으로 하되, 구현할 각 페이지에 들어가는 모든 요소를 고려해 견적을 산출하는 거예요. 입력창이 몇 개인지, 유효성 검사가 있는지, 서버에 몇 번 왔다 갔다 하는지, 정렬의 종류가 몇 개인지, 수치를 계산하는 로직이 있는지 고려해서 산출해요. 이렇게 상세하게 견적을 산출하려면 당연히 기획이 완성되어 있어야 하고 견적을 산출하는 데만 하루 이상이 걸려요.


그래서 저희는 기획이 확정되지 않은 상태에서는 페이지수와 기능 단위를 가지고 대략적인 '예상 견적'을 산출하고, 기획이 확정된 후 '상세 견적'을 산출했어요. 예상 견적이 필요한 이유는 고객의 문의 단계에서 평균적인 개발 비용을 안내하기 위한 것이에요. 상세 견적은 실제 고객에게 청구하겠다는 확정된 비용을 안내하는 것이고요.


상세 견적은 기획이 변경되거나 추가되지 않는 이상 확정이에요. 더 이상 비용 추가가 되지 않아요. 견적은 구현 공수, 즉 구현 시간을 기반으로 하기 때문에 개발 기간도 정확하게 예측할 수 있어요. 기간이 정확한데 추가 비용에 대한 리스크도 줄어들기 때문에 고객은 큰 프로젝트도 안심하고 맡길 수 있게 돼요. 개발사도 정확한 견적이 산출된 프로젝트는 이익이 보장되니 안심하고 수주할 수 있게 되고요.


곧 핑거에서 이용할 수 있어요


저희는 그동안 페이지 단위의 견적 산출과 이를 기반으로 한 태스크 관리 도구, 인적 리소스 관리 기능을 만들어서 사용해오고 있었어요. 이제 곧 핑거를 통해 프리랜서와 에이전시가 이를 이용해 정확한 견적을 통해 이익을 최대화할 수 있도록 할 예정이에요. 핑거에 가입해서 기다리시면 기능이 오픈했을 때 소식지를 보내드릴게요


https://fingr.io


컨설팅을 통해 프리랜서와 에이전시 분들에게 도움을 드리고 있고 정말 많은 도움이 되었다는 피드백을 받고 있어요. 현재 사업이 어렵거나 확장을 계획하고 계시다면 고려해 보세요


예비 프리랜서/프리랜서 개발자분들을 위한 컨설팅

https://seonghoonlee.notion.site/94ec9ae13a0d438d90edee2ccd4f7355?pvs=74

에이전시 대표님을 위한 컨설팅
https://seonghoonlee.notion.site/b4146afec647405b928db4e6fe6372e1?pvs=74

매거진의 이전글 프리랜서 개발 분야를 어떻게 정하나요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari