

"예쁜 쓰레기를 만드는 사람의 특징"
내가 TV 소프트웨어를 개발하던 시절, 우리 팀은 경쟁사와의 출시 경쟁에서 이기기 위해 6개월 동안 야근을 했다. 심지어 휴가조차 단 한 번도 쓰지 않았다. 우리는 가격 경쟁력을 갖추기 위해 당시 한국보다 인건비가 낮으면서 개발능력을 갖춘 인도, 베트남, 중국, 인도네시아 개발자들과 팀을 구성해 타임존을 활용한 릴레이 개발 체제를 만들었다. 즉, 한국에서 개발한 코드를 형상관리 서버에 올린 후 퇴근하면, 아침을 맞은 인도에서 테스트를 하는 방식이었다.
우리의 자부심은 품질이었다. 일반적으로 제품의 결함이 완전히 0이 되는 경우는 없다. 하지만 우리 팀은 개발팀 내에 별도의 테스트 인력까지 추가 배치하며 품질에 집착했다. 그 결과 소프트웨어에 있어서는 사소한 우려사항을 제외하고 치명적 결함이 한 건도 없는 제품을 만들어냈다.
그런데, 우리와 동일한 칩을 사용해 개발한 경쟁사 제품은 한 달 먼저 출시했다. 먼저 출시된 경쟁사 제품을 구매해서 분해하고 테스트해 보니, 개발자로서 양심이 있는지 의심스러울 정도로 미흡했다. 하드웨어는 양호했으나 소프트웨어는 완성도가 낮았다. 그런데 충격적인 것은 이 시점부터 내가 만든 제품군이 국내 1위 자리를 경쟁사에 내주기 시작했다는 것이다. 이유는 간단했다. 경쟁사는 시장을 고려한 제품이고, 우리는 기능적으로 높은 품질의 제품이었다. 우리가 완벽하다고 믿은 기능들은 고객이 원하는 것이 아니었다. 기술적으로는 우수했지만, 사야 할 이유가 없는 제품을 만든 것이다.
예쁜 쓰레기를 만든 원인은 바로 ‘고객 없는 완벽주의’였다.
다시는 이러한 실수를 하지 않기 위해 나는 일을 할 때 두 가지 질문을 한다.
- 밸리데이션(Validation)
우리가 "올바른 제품"을 만들고 있는가?(Are we building the right product?)
- 베리피케이션(Verification)
우리가 제품을 "올바르게 만들고" 있는가?(Are we building the product right?)
많은 사람들이 나처럼 밸리데이션을 놓친다. 벨리테이션을 놓치고 베리피케이션에만 충실하면, 원치 않는 서비스를 훌륭하게 만드는 일이 벌어진다. 다시 말해, 목적지가 아닌 잘못된 곳에 빠르고 안전하게 잘 도착하는 일과 같다.
고객이 원하는 70% 품질의 서비스가, 아무도 원하지 않는 100% 품질의 서비스보다 가치 있다.