본문 바로가기
비즈니스 생산성 (Productivity)

한 달이면 될 줄 알았던 프로그램이 일 년이 된 이유

by wellnomadness 2026. 7. 20.

이삿짐 견적 프로그램 하나만 만들어달라는 부탁

미국에서 어느 정도 자리를 잡고 일하던 때였어요. 알고 지내던 지인에게 프로그램 개발 의뢰를 받았어요. 이삿짐 견적을 계산해 주는 프로그램이었어요. 짐의 종류와 양, 이동 거리 같은 걸 입력하면 견적이 나오는 구조라고 했어요. 설명만 들었을 때는 계산 로직 몇 개와 입력 화면 하나면 되겠다 싶었어요. 짐이 몇 개인지 넣고 거리를 곱하면 금액이 나오는, 어렵지 않은 구조로 보였거든요. 의뢰한 지인도 마찬가지였어요. 간단한 거니까 금방 되지 않겠냐고 했고, 저도 그 말에 동의했어요. 아는 사이니까 가격도 편하게 매겼어요. 정식으로 받을 금액보다 한참 낮은 액수를 불렀고, 기간은 한 달 정도면 충분할 거라고 봤어요. 견적서라고 할 것도 없이 간단한 내용만 정리해서 넘겼어요. 총액과 대략의 일정, 그리고 만들 프로그램의 이름 정도가 전부였어요. 그때는 그게 문제가 될 거라고 전혀 생각하지 못했어요.


하나씩 늘어나기 시작한 요구사항

개발은 순조롭게 시작됐어요. 문제는 중간부터였어요. 진행 상황을 보여줄 때마다 지인이 하나씩 덧붙이기 시작했어요. 여기에 이 기능도 되면 좋겠는데, 이 화면에서 저 정보도 같이 보이면 안 될까, 하는 식이었어요. 처음 몇 번은 정말 사소했어요. 몇 시간이면 되는 일이라 흔쾌히 해드렸어요. 아는 사이인데 그 정도는 해줘야 한다고 생각했고, 무엇보다 처음에 제가 이렇게 말해뒀거든요. 필요한 부분은 제가 다 해드리겠다고요. 그 한마디가 나중에 어떤 결과로 돌아올지는 짐작도 못 했어요. 요청은 한 번 받아들일 때마다 다음 요청의 문턱을 낮췄어요. 지난번에도 해줬으니 이번에도 되겠지가 자연스러워진 거예요. 나중에는 요청의 성격 자체가 달라졌어요. 처음에는 화면에 항목 하나 추가해 달라는 수준이었는데, 시간이 지나자 직원별로 권한을 나눠 달라거나, 고객 정보를 따로 관리하는 화면을 만들어 달라거나, 지난 견적 내역을 검색할 수 있게 해달라는 요청이 나왔어요. 하나하나가 원래는 별도 견적을 내야 할 규모의 작업이었어요. 그렇게 기능은 계속 붙었고, 끝이 보이던 프로젝트는 다시 끝이 안 보이는 상태로 돌아갔어요.

책상 위에 견적서를 펼쳐놓고 작업 범위를 항목별로 정리하는 모습


집은 다 지었는데 가구까지 들여달라는 상황

이 상황을 설명할 때 저는 집 짓는 일에 빗대곤 해요. 제가 받은 견적은 집을 짓는 작업이었어요. 골조를 세우고, 페인트를 칠하고, 마루를 깔고, 창문을 설치하면 끝나는 범위였어요. 그런데 의뢰인이 원한 건 그게 아니었어요. 다 지어진 집 안에 들어갈 책상과 의자, 소파와 테이블, 침대까지 전부 들여놓아 달라는 거였어요. 심지어 어떤 소품이 어디에 놓여야 하는지까지요. 그분 입장에서는 이상한 요구가 아니었어요. 완성된 집이란 사람이 바로 들어가 살 수 있는 집이니까요. 제 머릿속의 완성과 그분 머릿속의 완성이 처음부터 달랐던 거예요. 문제는 그 차이를 확인할 수 있는 문서가 없었다는 점이었어요. 어디까지가 이번 견적에 들어가고 어디부터가 별도 작업인지, 종이 어디에도 적혀 있지 않았어요. 그러니 매번 판단은 그때그때의 분위기와 관계에 맡겨졌고, 지인이라는 관계에서 제가 거절을 꺼내기란 쉽지 않았어요.


한 달짜리 일이 열두 달이 되던 동안

결국 그 프로젝트는 일 년이 걸렸어요. 정확히 말하면 견적에 해당하는 프로그램은 처음 한 달 만에 완성됐어요. 나머지 열한 달은 전부 추가 기능 구현과 수정, 유지보수였어요. 물론 그 열한 달치 비용은 한 푼도 청구하지 못했어요. 처음부터 제가 다 해드리겠다고 말해버렸으니까요. 그 기간 동안 저는 스스로를 공짜 직원이라고 불렀어요. 회사에 소속된 것도 아닌데 요청이 오면 처리해야 했고, 정작 대가는 이미 일 년 전에 그것도 아주 싼값으로 정산이 끝난 상태였어요. 다른 프로젝트를 진행하는 중에도 연락이 오면 하던 일을 멈추고 손을 대야 했어요. 새 일을 잡을 때도 이 건이 언제 또 튀어나올지 몰라서 일정을 넉넉하게 비워둬야 했고요. 억울한 마음이 없었다면 거짓말이에요. 그런데 화를 낼 대상이 마땅치 않다는 게 더 답답했어요. 의뢰인이 약속을 어긴 게 아니었거든요. 그분은 제가 한 말을 그대로 믿었을 뿐이에요. 범위를 정하지 않은 것도, 다 해주겠다고 말한 것도, 지인이라는 이유로 문서를 대충 넘긴 것도 전부 제 선택이었어요. 그 일 년은 제 입에서 나온 한 문장의 대가였던 셈이에요.


지금 제 견적서에 반드시 들어가는 것들

그 뒤로 견적서를 쓰는 방식이 완전히 달라졌어요. 지금은 어떤 규모의 일이든 견적서를 세 부분으로 나눠서 적어요. 첫째, 기본 개발 범위예요. 이번 금액으로 어디까지 만드는지를 기능 단위로 적어요. 둘째, 추가 기능 항목이에요. 여기에 없는 요청은 별도 작업이고 별도 비용이라는 걸 미리 밝혀둬요. 셋째, 수정과 유지보수 조건이에요. 무상 수정은 몇 회까지인지, 납품 이후 유지보수는 어떤 방식으로 진행되는지를 명시해요. 처음에는 이렇게 깐깐하게 적으면 상대가 부담스러워하지 않을까 걱정했어요. 그런데 실제로는 반대였어요. 이 세 가지를 적는 동안 상대와 저의 머릿속 완성본이 같은지 자연스럽게 맞춰지거든요. 목록을 보면서 이건 이번에 꼭 필요하고 저건 나중에 해도 된다는 대화가 오가고, 그 과정에서 서로가 상상하던 결과물이 처음으로 같은 그림이 돼요.


다 해드리겠다는 말을 하지 않게 된 이유

문서보다 더 크게 바뀐 건 사실 제가 쓰는 말이었어요. 이제는 필요한 건 다 해드리겠다는 말을 하지 않아요. 그 말은 듣기에는 더없이 친절하지만, 사실은 아무것도 알려주지 않는 말이에요. 어디까지가 다인지는 말하는 사람과 듣는 사람이 각자 다르게 상상하니까요. 요즘은 대신 이렇게 말해요. 이번 작업은 여기까지고, 진행하다가 더 필요한 게 생기면 그때 다시 이야기하자고요. 덜 너그러워 보이는 말이지만 훨씬 정확한 말이고, 결국 양쪽 모두를 덜 지치게 하는 말이에요. 그 일 년이 저에게 남긴 건 견적서 양식이 아니라 그 한 문장이에요. 호의도 어디까지인지 정해져 있어야 끝까지 호의로 남는다는 것을요.