brunch

You can make anything
by writing

C.S.Lewis

by 김병호 Aug 03. 2019

23 과잉기능의 낭비

성공적인 소프트웨어 신상품 개발가이드

고객이 원하지 않거나 가치제공이 미흡한 기능들을 기획하고 개발하는 이유는 상품관리자가 상품기능 또는 옵션의 다양성을 고품질로 착각하기 때문이다. 또는  상품기획 과정에서 내부고객들(특히 경영층)의 ‘이런 기능은 어때?’ 혹은 ‘이런 기능은 왜 없지?’라는 질문에 답변하는 과정에서 상품기능들이 하나씩 추가된다.


좋은 보고서는 더 이상 추가할 내용이 없는 상태가 아니라 더 이상 뺄 내용이 없을 때 이듯이 좋은 상품도 고객이 원하는 가치는 제공하면서 더 이상 제거할 기능이 없는 상태가 아닐까? 아마존의 ‘원클릭 구매’ 기능과 같이 편리하고도 단순한 기능은 복잡한 사고의 결과이다. 


과잉기능 개발의 부작용은 다음과 같다.

소프트웨어 아키텍처 복잡도 증가

아키텍처 복잡도가 높아지면 결함이 증가하고, 결함수정이 어려워져 유지보수를 어렵게 만든다. 이를 기술부채(technical debt)라고도 한다.


개발기간 및 개발원가 증가 

불필요 또는 중요도 낮은 기능개발을 위해 투입된 원가와 시간자체가 낭비이다.


재작업, 대기시간 증가, 미완성 작업 증가

대기시간과 미완성 작업은 소프트웨어 개발의 재고와 같은 것이다. 재고가 많아질수록 낭비의 가능성은 높아진다. 


과다상품은 고객의 다양한 니즈를 만족시키기 위해 다양한 디자인, 다양한 옵션을 가진 다양한 상품을 개발할 때 발생한다. 이는 상품 포트폴리오 관리의 문제이다. 고객을 위해 다양한 제품을 만들지만 반대로 선택지가 많아져 고객의 구매행위를 어렵게 만들기도 한다. 과다상품은 조직의 복잡도를 증가시켜 눈에 보이지 않는 낭비를 만들어낸다. 기능의 복잡도는 상품 유지보수를 어렵게 만들지만, 상품의 복잡도는 조직 운영을 어렵게 만든다.  조직의 단순함을 위해 세우고(핵심을 명확히 하고), 버리고(불필요 한것을 버리고), 지키고(중요한 것은 유지하고)를 강조했던 <단, 2015>에서는 단순함에 대해 다음과 같이 설명하고 있다. 


스티브 잡스는 1997년 회사에 복귀한 뒤 2년 동안 애플에서 생산하는 상품 가짓수를 350개에서 10개로 줄였다. 복잡성은 스스로 눈덩이처럼 커지는 자기 증식적인 것이기 때문에 이를 줄이기 위해서는 뼈를 깎는 각오로 필사적인 단순화를 추진해야 한다. 단순함은 복잡한 단어다. 


과잉기능은 상품관리자의 책임이고, 과다상품은 포트폴리오 관리자의 책임이다. 상품관리자의 책임인 과잉기능을 예방하는 방법은 다음과 같다.


최초 출시 때 상품기능을 최소화한다. 

고객 요구사항의 합집합이 아닌 교집합의 기능을 구현한다는 마음가짐이 필요하다. 출시 후 실 사용자의 VoC를 분석하면서 기능을 추가, 삭제, 변경하는 것이 낭비를 최소화하게 적은 비용으로 고객가치를 학습하는 방법이다.  


기능을 개발하기 위해 시간을 희생하지 마라. 

주어진 시간 내에 개발 가능한 기능을 우선순위에 맞게 출시하는 것도 전략이 될 수 있다. 기차 모델처럼 정해진 출시 주기에 따라 기능을 추가, 개선하는 것도 방법이다. 기차 모델은 정해진 시간에 역에 도착하여 승객을 내리고 태우는 것처럼 정해진 주기에 상품을 업데이트 하는 것을 의미한다.


https://brunch.co.kr/@kbhpmp/160


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari