AB test 의 힘
어떤 학생이 시험을 본 후 진실을 마주 하기 두려워 체점도 않고 결과에도 관심이 없다면, 그가 다음 시험에 좋은 결과를 낼거라 기대할 수 있을까? 혹은 전과목 평균만 알 수 있고 나머지 과목별 점수, 문제별 정답, 풀이, 반내 등수 등을 알수 없는 상황이라면 어떨까?
혹은 어떤 직장인이 열심히 일 해 번 월급을 (주식, 부동산, 적금 등에)분산 투자하는데 전체의 이익률만 알고 각 투자처별 이익률에 관심 없을 수 있을까?
그런데 이상하게도 많은 조직과 서비스에서 개별 의사 결정의 영향을 구체적으로 측정하지 않는다. 최선을 다해 중간고사를 보고 문제를 풀지만 - 최선을 다해 리서치를 하고 어떤 버전의 서비스를 개발하지만 - 전체를 구성하는 과제 하나 하나의 결과(지표)를 엄밀히 분석하거나 측정하지 않는다는 것이다.
전체 지표만 적당히 볼 경우 발생하는 문제는 앞의 학생의 예를 생각해보면 쉬운데, 어떤 문제가 틀렸는지, 어떤 과목이 몇 점이나 내려갔는지, 올라갔는지를 모른다는 것이다. 내가 푼 결과를 체점 하고 틀린 부분의 보완을 체계적으로 할 수 없다면 상위권으로 올라갈 순 없을 것이다.
서비스에 대한 다양한 활동을 체계적으로 측정하고 지식을 확장하는 것을 왜 잘 하지 못하는 것일까? 개인 성향, 조직 문화, 기술 및 시스템 등 다양한 핑계를 댈 수 있겠지만 여하튼 우리는 틀려야 하고, 고쳐야 하며, 배워야 미래가 있다.
그 수단 중 하나로 과학적 방법론을 살펴보려한다.
과학적 방법론은 무엇일까.
과학적 방법은 현상을 연구하고 새로운 지식을 구축하거나 이전의 지식들을 모아 통합할 때 사용되는 기법으로,경험과 측정에 근거한 증거를 사용하여 현상의 원리를 밝히는 과정이다. (위키피디아)
위 정의를 볼 때 '과학적 방법론'은 현대의 거의 모든 산업과 학문 발전 방식의 기본 틀이라고 해도 될 것이다. '나의 경험과 지식'에 의한 결정(혹은 가설)을 내린 후에 그에 대한 실험과 입증을 통해 참과 거짓을 구분하고 그 기반을 단단하고 깊게 쌓아가는 것, 그것은 단지 과학의 방식이 아닌 모든 서비스에 적용할 만한 방법론이다. 사회과학, 심리학 등 연구에서도 기본으로 사용되는 방법이니 말이다.
온라인 서비스에서의 생산활동은 “~하면 ~이 ~만큼 더 좋아질 것이다"라는 기대와 목표로 일을 하게 되는데 이 자체 그대로 가설이라 볼 수 있다. 문제는 “~하면 ~이 ~만큼 더 좋아질 것이다”는 그저 우리의 기대라는 것이다. 우리의 기대대로 세상이 움직이지 않는다. 기대 대로 움직였다면 내가 이 글이나 쓰고 있진 않았을 것이다. 결국 기대 대로 동작하는지 측정 및 입증을 위해 제어실험을 해야하는데 흔히 말하는 AB Test이다.
다음은 Netflix tech blog에 있는 그들의 실험 문화에 대한 글 중 일부이다.
What about more obvious changes, such as the complete redesign of our UI layout or our new personalized homepage? Yes, all thoroughly A/B tested.
In fact, every product change Netflix considers goes through a rigorous A/B testing process before becoming the default user experience.
어떤 UI 구성에 대한 완전한 재설계나 새로운 개인화된 홈페이지는 당연히 AB Test를 거친다고 한다. 모든 제품의 변화는 엄격한 AB Test를 거쳐야만 한다고 한다. 실험하기 쉬운 사소한 것을 실험하는 것이 아니라, 중요할 수록 더 중요하게 실험을 한다는 것이다. 왜일까? 일잘하고, 감이 좋고, 영감있고, 커리어도 훌륭한 그들은 왜 스스로를 믿는대서 끝내버리지 않고 (복잡할 수도 있는)실험을 통해서 엄격하게 측정된 결과를 확인할까? 그것은 바로, 우리는 편향적이고, 미래는 아무도 모른다는 믿음 때문이고 이는 과학적 방법론의 자세 즉, 검증하기 전까지 우리는 모른다라는 것과 닿아 있다고 볼 수 있다. 이하에서의 '실험'은 곧 기능 출시라고 생각해도 무방하다.
Uber의 최고 제품 책임자(chief product officer)인 Jeff는 이렇게 말했다.
If you want to create a successful, hyper-growth company, you’ve got to focus on creating the right culture and learning how to rapidly experiment.
성공하고, 성장하려면 급진적인 실험 문화를 만들어라!
그런데, 뭘 실험해야 하는걸까?
다음은 인터넷에 공개된 특정 서비스에서 행해지는 실험의 량이다.
Uber : 1,000 concurrent experiments
airbnb : 500 concurrent experiments
bing: 300 completed experiments per week
google, amazon, facebook : Over 10,000 experiments per year
hotels.com : 1,000 concurrent experiments.
pinterest : With more than 1,000 experiments running daily…
아무때나 봐도 1,000개 이상인 터무니 없이 많은 수의 실험이 진행되는 이유는 뭘까? 바로 넷플릭스의 사례처럼 거의 모든 변화를 실험하기 때문이다. 그 이유는 입이 아프지만 다시 말하면 ‘우리는 편향되고, 사용자를 잘 모르니까, 더 잘 알아서 더 잘 하기 위해서’이다. 실은 위의 기업들에서 Grand OPEN!이라는 개념은 희박하다. 작은 과제든 큰 과제든 끊임 없이 연구하고 실험해서 '입증된' 것들만 세상에 나간다. 안그랬다고 온갖 기능들로 범벅이된 무겁고 혼란스러운 서비스가 되어버리고 말 것이다.
서비스의 성장을 위해 가설을 가지고 개발한 후에 그것을 실험을 통해 측정했을 때 결과가 좋은 즉, 가설이 참, 다른말로 내가 맞았던! 것으로 증명되는 비율은 얼마나 될까? 다음 글을 한 번 보자.
At Google and Bing, only about 10% to 20% of experiments generate positive results.
At Microsoft as a whole, one-third prove effective, one-third have neutral results, and one-third have negative results.
Google, Bing, Microsoft에서 진행되는 서비스변화를 실험으로 엄밀히 측정해봤더니, 10%~20% 혹은 1/3에 해당하는 경우에서만 긍정적인 결과가 관측되었다고 한다. 당연히 효과 없는 과제들은 롤백 되었을 것이다. 세상에, 초일류 기업, 그 곳의 직원들이 자율과 책임의 문화 가운데 진행하는 많은 변화의 1/3 이하에서만 기대한 결과가 나온다고한다. 물론 실패를 용납하고 실험을 장려하는 문화 덕에 성공가능성에 목매지 않고 무엇이든 실험해보는 탓에 낮은 성공률이 나올 수도 있겠으나 어쨌거나 그들은 무엇이 얼마나 동작하는지, 무엇이 왜 동작하지 않았는지를 명백하게 입증하면서 나아간다. 그것은 곧 배움의 길이다. 10~30% 정도의 성공률은 우리의 생각과 시장의 반응은 많이 다르다는 것을 다시 한 번 명백하게 보여준다. 결국 우리 인식의 오류를 줄일 수 있는 방법은 현실을 명확하게 이해하는 실험적 방법을 반복해서 가능하다.
우리는 위험하고 모험적인 시도들이 다양한 혁신과 성장을 이뤄온 것을 익히 알고 있다. 문제는 이 혁신적 시도들이 가지는 리스크인데 이 리스크를 감당하거나 장려하기는 당연히 어려운 일이다. 이 리스크의 크기를 최소화하되 혁신의 이점은 검증할 수 있는 방법이 실험이다.
1% 혹은 10%의 규모에 대해서만 실험을 진행해보면 되기 때문이다. 어떤 안이 결과적으로 50%의 손실을 가져다 줬다고 해보자. 이를 검증 없이 전면 출시 했다면 50%의 손실을 곧바로 다 받아야하고 이를 되돌리느라 상단한 비용이 들겠지만 실험적 접근으로 10%의 사용자에게만 적용을 해 보았다면 50%*10%인 5%의 손실만 발생할 것이고 이 또한 짧은 시간안에 되돌리기가 가능할 것이다.
실험이 주는 이점 중 하나는 성공은 물론 실패에서도 똑같이 배우고 성장할 수 있다는 것이다. 다음은 airbnb의 검색 화면 전면 개편에 대한 실험 스토리이다.
어떤 누군가가 After의 시안과 기획서를 가지고 와서 제안을 했을 때, 우리가 의사 결정자라면 무어라 말해줄까? "와!!! 멋지네요. 훨씬 좋네요. 가급적 빨리 갑시다. 다음 릴리즈에 꼭 갑시다. Android/iOS/Web 동시 개편이에요!" 라고 말하고 싶을 것이다.
그런데 airbnb에 그런 의사 결정은 없다. 너무 뻔해 보이는 이 변화 역시 실험을 통해 입증하고자했다. 그 이유는 두가지다. 첫째로 방향인데 좋아질지 안좋아질지 모른다는 것이다. 둘째로 좋아지거나 안좋아지거나 했을 때 그 상승or하략률을 모른다는 것이다.
'그냥 지난 주엔 이랬는데 신규 버전 영향인지 이번 주엔 좀 올랐네요.' 이건 그냥 그렇게 믿고 싶은 것일 뿐이다. 모든 서비스의 지표에는 seasonality가 있다. 봄, 여름, 가을, 겨울, 방학, 주말, 주중, 스포츠행사, 사회이슈 등등으로 인해 지표는 언제나 끊임 없이 출렁거린다. 지표가 +- 10%의 출렁임이 있을 경우 제어실험을 하지 않고서는 3~5% 정도 수준의 개선은 기본 적인 지표 출렁임에 묻혀서 판단을 할 수가 없게된다.
airbnb 개편 사례로 돌아와서... 재미 있는 것은 그들이 오랜 기간 충분한 실험을 했음에도 불구하고 After의 효과가 Before와 다르지 않다는 것이다. 지표나 사용률에 개선이 없었다. 이럴수가.
만약 변인을 제어하고 다양한 세그먼트 분석이 가능한 AB Test를 하지 않았었다면 After의 개선 효과가 없다라는 것도 알 수 없었을 뿐더러, 혹시나 알았다고 하더라도 더 깊이 파서 그 이유를 알아내기 어려웠을 것이다.
그들은 결과에 실망하지 않고 원인을 확인하기 위해 실험 결과에 대한 더 깊은 연구를 진행했고 새로운 페이지(After)가 모든 브라우저에서는 개선 효과가 있지만, 오래된 Internet Explorer에서만 지표 하락이 있다는 것을 알아차렸고 그 이유는 javascript의 IE 호환 버그에 있음을 밝혀냈고 이 또한 수정해 냄으로써 실험을 성공적으로 마쳤다.
어떤 기능이 출시되었을 때 그 직후의 효과와 한달쯤 지난 시점에서의 효과는 다르다. 시간이 지나며 효과가 떨어질수도 있고, 되먹임 현상 때문에 효과가 더 증대될 수도 있다.
Pinterest에서 앱 아이콘에 Badge를 노출 실험을 했다. 그 결과는 어땠을까?
단기적으로는 7% DAU상승이 있었고, 길게 봤더니 2.5%의 DAU상승으로 수렴했다. 이렇게 시간의 흐름에 따른 효과의 변화를 측정할 때 장기적 관점에서의 이익을 산출해 볼 수 있을 것이다. 만약 1~2주는 7%의 DAU상승이 있었지만 한 두달 뒤에는 0.1% 수준의 오차범위내에서의 DAU 상승만 관측되었다면 이 기능은 서비스로 나가지 않는 것이 모두(사용자에게, 서비스 제공자에게, 심지어 핸드폰에게!) 에게 좋을 것이다.
내가 옳네, 네가 옳네 싸울 필요가 없어진다.
흔히 초기 시점에 AB Test등의 실험을 하게 되는 이유중 하나는 현실 개선을 위한 가설 때문이 아니라 조직내 의견 충돌이 발생해서 그것에 대해 누가 옳은지 가려내기 위해서일 경우가 있다. 하지만 싸우지 말고 실험하자. 그리고 그 결과는 함께 복습하자.
릴리즈를 하나의 실험 및 공부의 프레임으로 볼 때, 각자의 가설 및 의사결정의 책임에서 좀 더 자유로울 수 있다. 지표가 안좋으면 그것어서 배우고 롤백하면 그만이기 때문이다.
누구든 가설을 세울 수 있다.
자기 생각을 글로만 적을수 있다면 신입직원이든 CEO든 디자이너든 개발자든 가설기반으로 자기의 생각을 주장할 수 있다. 가설 수립 그 자체에 대해서는 언제든 환영해야한다. 그 가설에 대해 검토하고 실험으로 이어져 서비스에 영향을 주는 실행으로 옮겨진다면 의욕적이고 일 할 맛이 날 것이다.
핵심 지표에 집중하게 된다.
가설수립을 할 때 어떤 지표를 측정할 것인가를 미리 설정하는 것이 중요한데, 바로 이 시점에 시덥지 않거나 너무 극 일부 상황에서만 필요하거나 하는 아이디어들은 적절히 정리가 될 것이다. 서비스의 핵심 가치, 그에 따른 핵심지표, 혹은 그에 대한 연관지표. 가설 수립은 자연스럽게 본질적인 질문을 던질 수 밖에 없게 해 줄 것이다.
제어된 시험과 엄밀한 측정이 없이는 우리의 생각(가설)이 잘 맞아 떨어지는지를 확인하기 어렵다는 것, 잘 측정해봤더니 역시나 우리의 생각은 자주 틀리다는 것, 현실에 대한 우리의 이해를 넓히는 것은 결국 과학적 방법론이라는 것을 간단히 확인해보았다.
그런데 기존의 방법론을 과학적 체계적으로 바꾼다는것 즉, 현실을 바꾼다는 것, 어떤 문화를 진흥 한다는 것은 생각보다 지난하고 어려운일이다. 두어번 해보고 포기하기도 쉬운 일이다. 조직에 실험문화를 빌딩하는 것이 어려운 이유도 많다. 이 글을 쓰는 나도 현재 겪고 있고 넘어가기 위해 애쓰는 중이다.
자기의 믿음을 '가설'로 생각하는 전환은 감정적으로 어려운일이다.
지금까지 감, 서비스적 인사이트를 가지고 계획하고, 개발하고, 출시하고, 서비스를 성장시켰는데 뭔가 다른 도구(과학적 방법론)를 제시하고 그 것을 의지하게 하는 것은 서두에도 말한 과거의 자기의 일하는 방식에 일부 부정을 가져다 주는 심리적 요인이 있음은 분명하다. 하지만 직감과 실험은 대칭적 관계가 아니다. 보완적 관계이다. 무서워 하지 말자.
시스템을 있다고 알아서 써주지 않는다.
AB Test 시스템을 만들었다고 해서 사람들이 갑자기 우르르 몰려와서 실험을 하겠다고 하는 일은 없을 것이다. 실험에 대한 salesmanship을 가지고 조직내 멤버들을 대상으로 마케팅도해야하고 영업도해야하고 교육도 해야한다. 당신이 해야한다. 아무도 해주지 않는다. ab test 시스템을 직절 개발할 필요는 없다. optimizely, vwo 등 좋은 온라인 서비스들이 많다.
시간이 걸린다.
한 두 건의 실험을 진행하고, 그것들의 결과가 성공적이었다 하여 조직원들이 실험 기법을 수용하고 그것의 가치를 인정하여 자기업무의 효과를 극대화하는 도구로 생각할 것이라 판단하면 큰 오산이다. 지금 부터 가장 힘든 시기이다. 자기 확신을 가지고 끝없이 실험 방법론을 주장하고, 1:1로 커뮤니케이션하고 리드하고 도와주고 앞장설 때 한 명 한 명, 한 건 한 건 실험 기법으로 진행되는 과제들이 생길 것이다.
개발에 시간이 더 걸릴 것이다.
A를 유지하면서 B를 신규로 개발해서 동시 운영하는 것이 초기에는 쉽지 않고 못 마땅하게 생각될 수 있다. 그냥 빨리 빨리 밀려있는 기능을 개발해 출시하고 싶은 마음이 들 것이다. 하지만 기억하자, 태평양 넘어 그들은 어떻게 일하는지, 왜 수백 수천건의 실험을 하며 입증을 해내는지. 1년뒤 3년뒤엔 서로가 어떻게 달라졌을지 생각해보자. 앞으로 못해도 20년은 이 업을 해야한다면 지금이 배움의 자세를 취할 적기이다.
시작하자.
배움에 늦은 때는 없다.
그게 학생이든 서비스든 말이다.