Keep It Small, Keep It Simple, Let It Happen

|
우리들은 늘 제품이나 솔루션을 개발할 때 최소의 기능을 구현해서 최대의 효과를 얻고자 합니다. 하지만 초기의 이러한 구호는 말로만 그칠뿐 결국 그 최종 결과물들을 보게되면 어느새 필요한지 불필요한지도 판단이 잘 서지 않는 여러가지 기능들로 둘러쌓인 제품이나 솔루션들이 되기 마련이지요. 특히 소프트웨어 개발에 종사하는 분들이 과제초기에 갖는 회의중에 하나가 고객의 요구사항을 파악하기 위한 것이라는 점에서 이미 이러한 각오는 물건너 갔다고 볼 수 있습니다. 요구사항을 듣고 이를 수렴하여 가장 필수적인 것이 무엇인지를 판단하고 결정하기 보다는 요구사항이니까 구현하고 집어넣지 하는 바로 그런 접근방법이 여전히 남아있기 때문입니다. 아마도 이글을 보시는 분중에서 소프트웨어 개발이나 솔루션개발 업무를 하시는 분들은 이러한 상황을 쉽게 부인을 하지 못하실 겁니다. 그렇다면 처음부터 질문을 바꾸어 보는 것은 어떨까요? 대략적인 요구사항을 정리해서 보여주고 도대체 정말 필요없는 기능은 무엇인지 물어보는 것이죠. 아마 처음에는 당황하겠지만 개인적인 취향들로 뒤섞인 어설픈 요구사항보다는 필수적인 요구사항들만 남게 되지 않을까요? 그럼 이럴 분들도 있겠군요. 어설프게 정리된 요구사항과 개인의 취향이 담긴 추가요구사항으로 일만 더 많아질 수 있다고 말이죠. 현실적으로 이런 상황도 생길 수는 있겠지만 제 개인적인 생각엔 이러한 접근방법도 나름대로 큰 의미가 있다고 생각됩니다.

우리가 제품이나 솔루션을 개발할 때 정말 정말 단 하나의 기능이 남는다면 그것은 무엇일까 고민했을까 하는 것입니다. 여전히 우리는 무슨 기능 빠진 것이 없는지를 살펴보게 됩니다. 그렇게 훈련받았고 그렇게 일을 해왔기 때문이요. 결코 NO하지 못하도록 훈련되었지요. 하지만 최근에 읽어본 HCI 관련 자료, 개발 방법론 책 , iPod, iTune과 같은 애플 제품들의 성공 스토리들을 보게 되면 이 글의 제목처럼 "Keep It Small, Keep It Simple, Let It Happen" 의 정신을 철저히 지킨 제품 , 솔루션들만이 성공적으로 살아남았습니다.

최근 프로젝트 진행을 통해서 저 역시 노력하고 있습니다만 여전히 쉬운 일은 아닙니다. 특히 저희 회사와 같이 VOC 가 많은 조직에서 말이죠. 하지만 이러한 입장을 견지했을 때만이 맡은 프로젝트를 성공적으로 추진할 수 있다고 믿고 있습니다.
And