퇴사 부검 여덟 번째 일기
'이번 계약 담당자 대체 누구예요?'
'지금 우리 제품 수준으로는 이 프로젝트 못해요. 대체 무슨 생각으로 계약 따오신 거예요?'
'이거라도 안 하면 우리 다 죽어요. 감자 캐먹으면서 살 수는 없잖아요?'
'아니요. 제품 못 만들어도 우리 다 죽어요. 그리고 저 구황작물 좋아해요.'
스타트업이라면 익숙한 풍경일지도 모른다. 영업 부서와 제품 개발 조직은 늘 충돌할 수밖에 없다. 생존을 위한 영업의 절박함과, 완성도 높은 제품 개발을 지향하는 엔지니어링 간의 간극은 종종 조직 내 갈등을 야기한다. 여기에 정부 과제 수행처럼 납기와 환수 부담이 더해지면 선택의 폭은 더욱 좁아진다. 결국 이런 상황 속에서 쌓이는 것이 바로 기술 부채다.
기술 부채는 단순히 개발의 지연이나 품질 저하를 넘어 조직 전체의 효율성을 위협하고, 장기적으로는 성장의 발목을 잡는 요인이 된다. 그럼에도 불구하고, 스타트업의 생존과 성장을 위해 기술 부채를 피할 수 없는 상황들이 반복된다. 그렇다면 기술 부채는 어떻게 발생하고, 이를 관리하기 위해 어떤 노력이 필요할까?
스타트업 초기에는 생존이 최우선 과제다. 고객의 요구에 빠르게 대응하고 기회를 놓치지 않으려는 노력 속에서 기술 부채는 점차 쌓인다. 영업 부서는 MVP(Minimum Viable Product)를 기반으로 적합한 고객을 찾아야 하지만, 당장의 매출을 위해 프로덕트에 맞지 않는 요구사항도 받아들일 수밖에 없다. 이런 상황에서 프로덕트 팀은 고객 요구를 모두 반영하며 납기일을 맞추기에 급급해지고, 기능의 완성도보다 "돌아가게 만드는 것"에 초점을 맞추게 된다.
결국 불완전한 프로덕트 위에 다양한 요구사항이 덧붙여지면서 시스템은 점점 돌연변이가 되어 간다. 프로젝트가 끝난 뒤에도 긴급 상황에서 작성된 임시 코드와 미비한 문서화 작업들은 유지보수와 최적화를 어렵게 만든다. 이렇게 쌓인 부채의 후유증은 상당하다.
기술 부채라는 이름은 참 적절한 명칭이다. 적절히 관리하지 않으면 점점 더 심각한 문제가 되어 조직의 발목을 잡는다. 프로젝트가 끝난 뒤 다시 제품 개발에 집중하려고 해도, 기존의 임시 방편 코드와 문서화 미비는 일하는 환경을 복잡하게 만든다. 긴급한 상황에서 처리한 코드가 그대로 남아 레거시화되면서 유지보수는 점점 어려워지고, 백로그는 쌓인다.
문제는 여기서 끝나지 않는다. 기술 부채를 해결할 시간이 없는 상태에서 새로운 프로젝트가 시작되면 이전의 문제는 방치되고, 결국 부채는 더 큰 부담으로 돌아온다. 특히 프로젝트 진행 과정에서 특정 기술 스택이나 서비스에 과도하게 의존하게 되면 시스템의 유연성은 떨어지고, 향후 확장성마저 제한될 수 있다.
기술 부채를 완전히 피할 수는 없지만 이를 통제 가능한 수준으로 유지하며, 성장의 발판으로 삼을 수는 있다. 핵심은 전략적 관리와 실행이다.
기술 부채를 인식하고 이를 계획적으로 해결하기 위한 접근이 필요하다. 부채를 가시화하고 단계적으로 해결하는 계획을 세워야 하며, 비즈니스 니즈와 엔지니어링의 균형을 맞추는 것이 중요하다. 프로덕트 개발과 프로젝트 수행은 가능하면 분리해야 한다. 프로젝트 조직은 납기와 고객 요구에 집중하고, 프로덕트 조직은 장기적인 성장과 기술적 안정성을 확보해야 한다. 소수 인원이라도 프로덕트 개발의 연속성을 유지하며, 안정적인 환경에서 개발할 수 있도록 지원하는 것이 필요하다.
리팩토링과 패키징을 위한 시간을 반드시 확보해야 한다. 프로젝트가 끝난 뒤 이를 정리할 시간이 없다면 기술 부채는 눈덩이처럼 불어난다. 또한 PM과 PO가 기술 부채 관리를 위한 권한과 책임을 명확히 가져야 한다. 이들은 제품 개발 로드맵의 큰 방향성을 유지하며 프로젝트의 부수적인 요구를 선별하고, 우선순위를 정해 처리해야 한다.
마지막으로, 기술적 선택에 있어서 오버엔지니어링을 경계해야 한다. 신기술 도입이나 지나치게 복잡한 설계가 비즈니스 니즈보다 우선시될 경우 새로운 부채를 발생시킬 수 있다. 회사의 규모와 제품의 수요 단계에 맞는 적절한 기술을 선택해야 하며, 개인의 커리어 욕심이 조직의 목표를 왜곡하지 않도록 균형을 잡는 것이 중요하다.
기술 부채는 스타트업만의 문제는 아니다. 대기업 역시 프로젝트 중심으로 운영되는 조직에서는 비슷한 상황에 직면한다. 특히 시스템 통합(SI) 프로젝트에서는 납기일 압박 속에서 가장 빠른 해결책을 우선시한다. 그리고 여러 프로젝트를 수행한 뒤 공통 요소를 정리하는 방식으로 기술 부채를 해결하곤 한다. 호흡이 긴 프로덕트를 만들수록 프로젝트로 인한 기술부채 부담이 클 수밖에 없기 때문에, 처음부터 완성된 프로덕트를 고집하기보다 생존 확률이 높은 전략이다.
결국 기술 부채는 조직의 규모와 관계없이 발생한다. 중요한 것은 이를 어떻게 관리하고 해결하느냐다. 이를 제대로 관리하지 못하면 조직의 장기적인 성장을 저해하는 요소로 남게 된다.
기술 부채는 생존과 성장의 과정에서 피할 수 없는 현실이기에 본질은 이것을 어떻게 의도적으로 관리하고 통제하느냐로 귀결된다. 부채를 갚기 위한 시간과 리소스를 투자하는 것은 단기적으로는 부담일 수 있지만, 장기적으로는 조직의 지속 가능성을 위한 필수적인 과정이다.
스타트업의 현명한 리더는 기술 부채를 단순한 장애물이 아닌, 성장의 기회로 활용해야 한다. 명확한 우선순위를 설정하고, 적절한 타이밍에 기술 부채를 갚아나가는 노력이 생존과 번영을 위한 올바른 방법일 것이다.