우리는 6개월을 갈아 넣은 프로젝트를 출시 직전에 폐기했다. 야심찬 추천 시스템이었다. 팀의 자존심이 걸려 있었고, 경영진의 기대도 컸다. 그런데도 우리는 스스로 그것을 묻기로 결정했다. 이 글은 그 실패를 정직하게 복기한 회고다. 미화도, 과도한 자기비하도 없이.
실패를 글로 쓰는 것은 불편하다. 그러나 성공담보다 실패담에서 배울 것이 훨씬 많다는 것을, 나는 이 프로젝트를 통해 뼈저리게 알게 됐다.
모든 것이 순조로워 보였다
시작은 완벽했다. 명확한 목표, 충분한 데이터, 유능한 팀. 우리는 정교한 추천 모델을 만들었고, 오프라인 평가 지표는 훌륭했다. 정확도가 기존 대비 크게 올랐다. 모두가 출시만 하면 성공이라 믿었다. 바로 그 자신감이 첫 번째 위험 신호였다.
잘못된 질문에 완벽하게 답했다
문제는 출시 직전 작은 사용자 테스트에서 드러났다. 우리의 추천은 통계적으로 정확했지만, 사용자에게는 “이미 알거나 이미 산 것”을 추천하고 있었다. 우리는 “클릭 확률이 높은 항목”을 정확히 예측했지만, 정작 비즈니스가 원한 것은 “새로운 발견”이었다. 우리는 잘못된 질문에 완벽하게 답한 것이다.
틀린 문제를 정확히 푸는 것보다, 옳은 문제를 대충 푸는 것이 거의 항상 낫다.
왜 6개월 동안 몰랐을까
가장 아픈 질문은 이것이었다. 이걸 왜 6개월이 지나서야 알았을까? 답은 명확했다. 우리는 모델 정확도라는 대리 지표에 빠져, 실제 사용자와 비즈니스 목표에서 너무 일찍 멀어졌다. 6개월간 우리는 한 번도 진짜 사용자에게 결과를 보여주지 않았다. 측정하기 쉬운 지표가 측정해야 할 지표를 가렸다.
- 대리 지표가 좋아도 진짜 목표와의 연결을 의심하라
- 아무리 초기라도 실제 사용자 피드백을 미루지 마라
- 비싸지기 전에 가장 큰 가정을 가장 먼저 검증하라
폐기 결정이 가장 좋은 결정이었다
역설적이게도 이 프로젝트에서 가장 잘한 일은 폐기 결정이었다. 매몰비용에 끌려 출시했다면, 사용자 경험을 해치고 더 큰 비용을 치렀을 것이다. 6개월을 버린 것은 아팠지만, 잘못된 방향으로 12개월을 더 가는 것보다는 훨씬 쌌다. 손실을 인정하고 멈추는 것도 실력이다.
실패가 조직에 남긴 자산
물론 이 회고가 “실패는 무조건 좋다”는 식의 낭만으로 읽히면 곤란하다. 피할 수 있었던 실패였고, 더 일찍 사용자를 만났다면 비용을 줄일 수 있었다. 실패 예찬은 위험하다. 중요한 것은 실패 자체가 아니라 실패에서 무엇을 추출하느냐다.
이 프로젝트 이후 우리 팀은 모든 프로젝트 시작 시 “우리가 틀렸다면 어디서 가장 먼저 알 수 있을까”를 먼저 설계한다. 가장 비싼 가정을 가장 싸게 검증하는 습관, 그것이 6개월의 학비로 산 가장 값진 자산이다. 묻어버린 프로젝트는 사라졌지만, 그 교훈은 이후 모든 프로젝트를 더 단단하게 만들었다.

