사용자 요구사항과 시스템 안정성의 균형
고객의 수고로움 끌어내기
IT서비스를 기획하다 보면 사용자의 요구사항과 시스템의 안정성이 충돌하게 되는 순간이 있다. 시스템과 개발의 안정성을 유지하기 위해서는 사용자의 요구사항을 희생해야 하는 경우가 있다. 보통 이런 선택의 기로를 만났을 때, 우리가 쉽게 선택할 수 있는 것은 한쪽을 포기하고 다른 쪽을 택하는 것이다. 시스템 안정성을 얻고 사용자의 만족도를 잃을 것인지 사용자의 만족도를 얻고 시스템의 안정성을 잃을 것인지 말이다. 대부분의 경우에는 사용자의 만족도를 선택할 것이다. 나도 시스템 안정성보다는 사용자의 신뢰도를 유지시키는 것이 더 좋은 선택이라는데 동의하는 편이다. 하지만 때로는 양자택일의 문제를 초월해야 하는 결정이 필요한 순간이 있다.
일반적인 협업 구조의 경우를 가정해본다면 우선 기획자가 사용자의 요구사항을 취합할 것이다. 기획자는 기획서를 작성하기 전에 개발자와 구현 가능성 여부를 타진하려고 할 것이다. 이때 개발자들은 기획자가 제시한 객관식 문항에서 단순히 항목만 선택하면 안 된다고 생각한다. 개발자들은 기획자에게 새로운 선택지를 제시할 수 있는 관심과 역량이 필요하다. 개발자의 적극성으로 인해 서로 대립 관계에 있는 것처럼 보였던 요구사항이 교착상태에서 벗어나게 될 수 있는 경우가 실제로 제법 있는 편이다.
엔지니어는 위와 같은 극적인 탈출을 프로젝트의 수명 주기 전반에 걸쳐 반복적으로 할 수 있도록 도움을 주는 존재가 되어야 한다. 시스템의 안정성을 중점으로 한 작업으로 인해 서비스 운영자가 고객이나 사용자를 설득해야 하는 일이 생긴다면 안정성을 포기하는 것이 낫다는 게 나의 생각이다. 하지만 시스템과 개발의 안정성도 결코 가볍게 포기할 만큼 값싼 가치는 아니기 때문에 둘 다 만족시키는 것이 최선이라고 생각한다. 그러려면 사용자와 시스템을 모두 만족시킬 수 있는 방법을 찾아야 한다.
어차피 우리 스스로 통제할 수 있는 것은 시스템뿐이고, 사용자를 우리가 제어할 수는 없다. 그렇기 때문에 고객이 자발적으로 수고로움을 발휘하게 만드는 방법을 고민해야 한다. 고객들이 원하는 것은 자신이 진정으로 원하는 것이 무엇인지 전문가가 제시해주는 것이다. 고객들이 어떤 목적을 달성하기 위한 수단으로 제공된 잘 정돈된 인터페이스와 매끄러운 사용자 경험을 제공해 줄 수 있다면 그것이 바로 진정한 고객의 요구사항인 것이다.
규모가 작은 상점에서는 손님이 물건을 살 때 상점 주인에게 직접 오셔서 상품을 안내해주십사 부탁드리기도 하고, 비용도 반드시 계산대에서 지불하지 않아도 괜찮다. 하지만, 대형 마트와 같은 규모가 있는 상점에서는 상점 직원이 일일이 모든 고객을 쫓아다닐 수는 없다. 대형마트에서 고객들은 알아서 계산대로 모이고, 스스로 문의해야 하는 곳으로 찾아간다. 대형마트의 시스템은 체계적으로 잘 갖추어져 있고 굳이 고객들에게 부탁하지 않아도 스스로 가려운 곳을 긁을 수 있도록 체계화가 되어 있기 때문이다.
소프트웨어로 구성된 시스템이나 서비스도 마찬가지이다. 서비스가 체계적으로 갖추어져 있고 신뢰가 갈 만큼 깔끔하게 구성이 되어 있다면 사용자들은 서비스 제공자가 원하는 의도대로 자신들의 수고로움을 기꺼이 할애할 것이다. 고객들이 수고로움을 할애하는 요소는 서비스가 얼마나 짜임새 있게 잘 갖추어져 있느냐이기 때문이다. 고객이 원하는 것을 무조건 맞추어주는 것만 고민을 할 게 아니라 그것을 넘어서 개발자가 원하는 방식으로 서비스를 사용하도록 만드는 것이야말로, 보여주기 전 까지는 아니었지만 보여주고 난 후에는 고객이 원래 원했던 것 아닐까 생각해본다.