듀오링고가 사용자의 성장에 다시금 불을 지핀 방법 - Part 2
듀오링고의 350% 성장의 뒷 이야기, 리더보드, 연속 학습, 알림, 그리고 혁신적인 그로스 모델 들어가기에 앞서
듀오링고의 350% 성장의 뒷 이야기, 리더보드, 연속 학습, 알림, 그리고 혁신적인 그로스 모델
원문: Lenny’s Newsletter, How Duolingo reignited user growth
몇 달 전 제가 참석한 작은 행사에서 듀오링고의 전 CPO 인 Jorge Mazal 이 듀오링고의 재성장에 관한 뒷이야기를 해준 적이 있습니다. 저는 그 이야기에 되었습니다. 이전까지 단 한 번도 그정도의 성장을 들어본 적이 없었거든요. 이미 성숙한 제품에서 4.5배의 성장이 있었고, 그게 여러 개의 자그마한 제품 변화가 이를 이끌었다고 했고, 혁신적인 그로스 모델 (the Growth Model) 에 뿌리를 두고 있으며, 매우 자세한 행동에 대해서 설명해주었습니다. 그래서 저는 Jorge 에게 더 많은 사람들에게 (그리고 더 깊게) 그 이야기를 들려줄 생각이 있느냐고 물었고, 이에 동의해준 것에 매우 기쁩니다. 많은 제품들이 이미 듀오링고로부터 영감을 얻고 있으며, 이 이야기 덕분에 그런 경향이 더 크게 생길 것이라고 기대합니다. 시작하겠습니다!
더 많은 정보를 얻고 싶으시면 LinkedIn 과 Twitter 에서 Jorge 를 팔로우 하세요.
저는 2017년 말 제품 책임자 (Head of Product) 로 듀오링고에 합류하였습니다. 이미 듀오링고는 전세계에서 가장 다운로드 횟수가 높은 교육 앱이었고, 수억명의 사용자가 있었으며, “세상에서 가장 뛰어난 교육 방식을 개발하고, 모두가 이용할 수 있도록 하자” 는 미션을 충실히 지켜나가고 있었습니다. 하지만, 사용자의 성장 속도가 조금씩 느려지고 있었습니다. 2018년 중순, 일간 활성 사용자 (DAU) 의 연간 성장률은 한 자리 수였고, 듀오링고가 지난 몇 년간 폭발적으로 성장한 것을 감안한다면 문제가 있다고 여겨졌습니다. 이는 빠른 재무적 성장을 목이 빠져라 기다리고 있는 투자자들이 존재하는 스타트업들에게는 문제가 됩니다.
이 글에서 저는 저희의 초반 실패 사례를 공유하고, 다시금 성장할 수 있도록 도와준 첫 번째 큰 승리와 함께 리더보드를 런칭한 것, 푸시 알림에 다시 집중한 것, 그리고 “연속 (streak)” 기능을 최적화한 것에 대해 다루려고 합니다. 제품과 마케팅 조직의 다른 여러 노력들과 함께 이러한 것들이 저희로 하여금 지난 4년 동안 4.5배의 DAU 성장을 이끌게 해주었습니다. 강력한 오가닉 (organic) 사용자의 성장 덕분에 듀오링고는 2021년 IPO 를 성공적으로 진행할 수 있었습니다.
이 글은 위에서 언급한 여정에 대해 깊게 다루려고 합니다. 이 글로 하여금 여러분들이 보다 빠르게 급격한 성장을 이룰 수 있기를 기원하겠습니다.
성장에 다시 불을 지피기 위한 저희의 첫 시도는 저희의 “밑빠진 독” 을 고치는 것 같은 리텐션을 높이는 데에 집중하는 것이었습니다. 저희는 신규 사용자 획득에 대한 리텐션에 집중하는 것에 우선 순위를 높게 뒀고, 그 이유는 당시 저희의 신규 획득 사용자의 대부분은 오가닉이었기 때문에 이를 급격하게 높이기 위해 당길 수 있는 레버가 없었기 때문입니다. 게다가, 저희들 중에는 게이미피케이션을 통해 리텐션을 개선할 수 있지 않을까 하는 의구심을 품은 사람들도 있었습니다. 저는 두 가지 이유로 이 접근법이 맞다고 느꼈는데, 첫 번째로는 듀오링고가 이미 성공적으로 홈 화면의 진도 시스템이나, 연속 학습, 그리고 업적 시스템과 같은 여러 게이미피케이션 메커니즘을 적용했기 때문이었습니다. 그리고 두 번째로는 그 당시의 최고의 게임들은 듀오링고 보다 훨씬 높은 리텐션을 보이고 있었으며, 저는 이것이 게이미피케이션으로 할 수 있는 최대치에 도달하지 않았다는 증거라고 생각했습니다.
수석 디자이너와 함께 만든 짧은 발표 자료를 가지고, 저희는 나머지 의사 결정자들로부터 충분한 지지를 얻었고, 게이미피케이션 팀을 새로 만들었습니다. 이 팀의 구성원은 엔지니어링 매니저, 엔지니어, 디자이너, APM, 그리고 제가 있었습니다.
한 가지 작은 문제가 있었다면, 어떤 추가적인 게이미피케이션 메커니즘이 듀오링고에 적합할지 몰랐다는 것이었습니다.
그 당시 저희 팀은 꿈의 정원 (Gardenscapes) 라는 게임에 빠져있었는데, 캔디 크러시와 같은 매치3 (match-3; 3개의 동일한 그림을 맞추는) 퍼즐 게임이었습니다. 이 게임이 저희의 첫 번째 영감이 되어줬습니다.
꿈의 정원의 다양한 게임 요소들을 살펴보았지만, 저희가 무엇을 찾고 있었는지는 알지 못했습니다. 단지 꿈의 정원이 듀오링고 보다 중독성이 있었고, 몇 가지 비슷한 점이 있었다는 것만 찾았습니다. 3분 짜리 듀오링고 수업은 꿈의 정원의 매치3 레벨과 비슷하게 느껴졌고, 두 서비스 모두 사용자가 해당 세션의 끝마치는데까지 얼마나 남았는지를 시각적으로 보여주기 위한 장치를 제공해주었습니다. 하지만 꿈의 정원은 진행 상태바와 함께 남은 이동 횟수를 보여주었지만, 듀오링고에는 그게 없었습니다. 이러한 남은 이동 횟수는 사용자에게 제한이 있다는 것을 알려주는 장치였고, 게임을 플레이하는데 있어서 약간의 두려움과 긴박함을 더해주었습니다. 저희는 이 횟수 메커니즘을 듀오링고에도 적용해보기로 결정하였습니다. 사용자들이 수업을 진행하면서 오답을 말할 수 있는 횟수를 보여주었고, 이 횟수를 넘으면 수업을 다시 진행해야 하도록 만들었습니다.
이 기능을 추가하기 위해 저희 팀은 두 달 정도 작업을 했습니다. 앱 업데이트를 출시하고 나서 저는 예상했던대로의 완벽한 성공을 기다렸습니다. 우울하게도, 이 모든 노력의 결실은 전혀 없었습니다. 리텐션에도 변화가 없었고, DAU 도 오르지 않았습니다. 사용자들의 피드백 또한 전혀 없었습니다. 저는 기운이 빠진 채로 있었고, 저희 팀에 매우 큰 영향을 끼쳤습니다. 이 결과를 보고 팀 안에서는 빠르게 불화가 일어나기 시작했습니다. 이 아이디어를 이용해서 계속 반복해보자는 사람들도 있었고, 다른 아이디어로 바꿔보자는 사람들도 있었습니다. 팀은 거의 즉각적으로 (그리고 극적으로) 해체되었고, 이 아이디어도 폐기되었습니다. 꽤나 안 좋은 결과였습니다. 이 실패의 그나마 긍정적인 부분은 제가 회사의 문화와 제 개인적인 리더십 스타일을 배웠던 것인데, 이건 다른 글에서 다루기로 하겠습니다.
게이미피케이션 작업 이후 번아웃을 느끼고, 저희는 리텐션을 개선하겠다는 것에서 완전히 벗어나서 신규 사용자를 모으는데 집중하는 획득팀 (the Acquisition Team) 이라는 제품 조직을 만들었습니다. 우버 (Uber) 는 사용자 획득에 일가견이 있었고, 레퍼럴 프로그램을 통해 크게 성장했다고 알려져 있었습니다. 여기에서 영감을 얻어서 우버와 비슷한 형태로 레퍼럴 프로그램을 만들기 시작했습니다. 혜택은 저희의 유료 구독 서비스인 슈퍼 듀오링고 (그 당시에는 듀오링고 플러스였습니다만) 의 한 달 무료 이용권이었습니다. 상당히 괜찮은 제안이었죠!
해당 기능을 만들어서 배포했고, 두 번째 시도는 첫 번째보다는 더 성공적이길 바랐습니다. 하지만 신규 사용자는 겨우 3% 밖에 오르지 않았습니다. 긍정적이기는 했지만 저희에게 필요했던 급격한 성장과는 거리가 멀었습니다. 여전히 저희는 속도는 높이고, 더 열심히 몰아붙여서 리퍼럴 프로그램을 반복적으로 개선해보고, 도박도 해봤지만 소용 없었습니다.
팀에서는 새로운 기능들을 반복해서 추가해봤지만, 성장을 촉진하기 위해서는 다른 방법을 찾아야만 한다는 것이 명확해질 뿐이었습니다.
길지 않았던 지난 몇 달 동안의 연속적인 실패를 겪고 나서 저는 제품에 있어서 더 나은 도박을 해야하는 시기라고 생각했습니다.
지금와서 돌이켜보면, 꿈의 정원의 이동 횟수를 보여주는 기능이 듀오링고에 먹히지 않았던 이유는 꽤나 명확했습니다. 꿈의 정원이라는 게임에서 모든 움직임은 전략적인 결정인 것처럼 느껴집니다. 왜냐하면 승리를 위해서는 다양한 장애물을 뛰어 넘어야하기 때문입니다. 하지만 듀오링고의 수업에서는 전략적인 의사 결정을 필요로 하지 않습니다. 대부분은 질문의 정답을 알거나, 모르거나 둘 중 하나입니다. 여기에는 전략적인 요소가 없기 때문에 듀오링고의 남은 횟수 기능은 지루하며 귀찮은 기능이었습니다. 듀오링고에 적절하지 않은 게이미피케이션 요소를 붙인 격이었죠. 저는 듀오링고와 꿈의 정원 사이의 유사함에만 매몰된 나머지, 숨겨져있던 차이가 중요하다는 것을 알아차리지 못했습니다.
그리고 저희의 레퍼럴 프로그램이 우버와 같은 성공을 이루지 못한 이유를 알아차리는데에도 그렇게 긴 기간이 필요하지도 않았습니다. 우버에서 레퍼럴이 잘 작동한 이유는 사용자들이 우버를 부를 때마다 지불해야하는 시스템 때문이었습니다. 무료 승차는 지속적으로 인센티브로 작동할 수 있었습니다. 듀오링고에서 저희는 사용자들에게 무료로 한 달짜리 슈퍼 듀오링고를 제공하는 것이 인센티브로 작동하길 바랐습니다. 하지만, 저희의 최고이자 가장 활발하게 이용하는 사용자들은 이미 슈퍼 듀오링고를 구독하고 있었으며, 이미 구독하고 있는 사용자들에게 한 달 무료 이용을 제공할 수 없었습니다. 즉, 최고의 사용자들에게 의존하는 저희의 전략이 실제로는 그들을 배제하고 있었다는 의미였죠.
이 두 상황 모두에서 저희는 다른 제품의 성공적인 기능을 빌려왔으나, 잘못된 방식으로 적용했습니다. 어떠한 맥락에서의 변화가 해당 기능의 성공에 미치는 영향의 크기를 제대로 파악하는데 실패했던 것입니다. 저는 이러한 시도들을 통해 다른 제품에서 아이디어를 보다 똑똑하게 빌려오는 방법에 대해 제대로 된 이해가 필요하다는 것을 깨달았습니다. 이제 저는 기능을 빌려올 때 다음과 같은 질문들을 던집니다.
즉, 저희는 다른 제품의 기능을 적용 (adopting) 하려는 경우, 저희 제품에 제대로 적응 (adapting) 시켰는지 판단을 할 필요가 있었습니다. 이러한 부분에만이라도 더 체계적이었다면, 저희가 추구하려고 했던 게이미피케이션 요소들이 훨씬 더 큰 변화를 만들어냈을지도 모르겠습니다. 그리고 리퍼럴에 집중해야한다는 이야기에 설득 되지도 않았을 거라 생각합니다. 저는 다음에는 훨씬 더 체계적인 시도를 할 수 있도록 만드는데 헌신했습니다. 저희의 결정이 데이터, 인사이트, 그리고 근본적인 원칙에 기반해야할 필요가 있었습니다.
듀오링고의 350% 성장의 뒷 이야기, 리더보드, 연속 학습, 알림, 그리고 혁신적인 그로스 모델 들어가기에 앞서
듀오링고의 350% 성장의 뒷 이야기, 리더보드, 연속 학습, 알림, 그리고 혁신적인 그로스 모델
원문: Meaningful metrics: How data sharpened the focus of product teams
원문: Sequential Testing at Booking.com
가장 좋은 방법은 당연히 영어 밖에 사용하지 못하는 환경에 강제로 처해지는 것이겠지만 그것이 어려우니…
고민의 흔적을 보여주세요
을 찾습니다.
원문: Charts & Accessibility
모수, 큰 수의 법칙, 그리고 중심극한정리에 대하여
그리고 여러분들도 (아마도) 하지 않아야 하는 이유
회사 서비스의 추천 시스템을 개선하기 위해 팀 내에서 (아직까진 두 명이긴 하지만) 지난 두 달 동안 스터디를 진행했습니다. 얼마 전 두 번째 스터디가 끝났고 이에 대한 회고를 해보려고 합니다.
원문: Dark Side of Data: Privacy by Emre Rencberoglu
원문: RStudio Projects and Working Directories: A Beginner’s Guide by Martin Chan
원문: TidyTuesday GitHub Repository
원문: How programming languages got their names
원문: How to Make Meetings Less Terrible 팟캐스트: How to Make Meetings Less Terrible (Ep. 389)
생키 다이어그램 (Sankey Diagram) 은 흐름(Flow) 다이어그램의 한 종류로써 그 화살표의 너비로 흐름의 양을 비율적으로 보여준다.
2년 전 일본어로 책을 내긴 했지만 대부분의 독자들이 이 책을 읽을 수는 없을 것 같았다.
자기회귀 모형이란 무엇인가?
회귀분석을 실행하기 위해 필요한 가정과 조건들에 대해 알아보자.
통계적 검정과 회귀분석에서 자주 사용되는 정규성 가정과 정규성 검정에 대해 알아보자.
여러 통계 검정과 모형에서 사용되는 독립성 가정에 대해 알아보자.
시계열 모형 중 ARMA 모형에대해 알아보자.
시각화에서 주의할 점인 넓이를 표시하는 원칙에 대해 알아보자.
평균 양쪽의 z-값들 사이의 넓이를 구하는 방법에 대해 알아보자.
분산분석의 개념과 방법에 대해 알아보자.
분산분석(ANOVA; ANalysis Of VAriance) 와 회귀분석의 개념을 섞은 공분산분석(ANCOVA; ANalysis of COVAriance)에 대해 알아보자. 이 글을 이해하기 위해서는 아래의 글을 먼저 읽는 것이 좋다.
Akaike’s Information Criterion 의 정의와 이를 구하는 방법에 대해 알아보자.
수정된 R제곱과 그 용도에 대해서 알아보자.
통계 용어 중 정확도(Accuracy)와 정밀도(Precision) 에 대해서 알아보자.
절대 오차와 평균 절대 오차에 대해서 알아보자.
가설 검정이란 무엇이며, 가설 검정의 다양한 방법에 대해 알아보자.
회귀분석이란 무엇이며, 회귀분석 과정에서 사용하는 용어와 다양한 방법에 대해 알아보자.
이 글은 MathJax 를 GitHub Pages Jekyll blog 에 추가하는 방법을 다룬다. 이탤릭체로 된 부분은 본문에는 없고 제가 따라하면서 고치거나 추가한 부분이니 참고하세요.
모집단과 표본집단을 이용하는 경우 통계학에서 말하는 10% 조건이 무엇인지에 대해 알아보자.
여러분의 GitHub 블로그에 Jupyter notebook 을 바꿔서 올릴 수 있도록 도와줄 글입니다. 직접 바꾸는 방법은 1회성 글들을 위해서 추가했고, 변환 과정과 파일 이동, 그리고 여러분의 블로그에 올리는 것까지 한 번에 할 수 있는 자동화 bash 를 만드는 자세한 방법...
68 95 99.7의 법칙이란 무엇인가?
단위근 검정 방법 중 하나인 Augmented Dickey Fuller 검정에 대해 알아보자.
이 자료는 데이터 과학과 관련된 특정 주제에 대한 연재물이며, 다룰 주제는 다음과 같다. 회귀분석, 군집화, 신경망, 딥러닝, 의사결정나무, 앙상블, 상관관계, 파이썬, R, 텐서플로우, SVM, 데이터 축소, 피쳐 선택, 실험 계획법, 교차검증, 모델 피팅 등. 이 글을 계속 받...