12개월 조금 넘게 전, 저희는 Exercism의 새 버전을 출시했어요. 제품을 처음부터 다시 고민하고, 성장 단계와 공식 멘토링이라는 개념을 도입한 근본적인 변화였어요.
출시 이후에는 고장 난 부분을 고치고, 개념적으로 놓쳤던 몇 가지를 더했지만, 주로 사람들이 새 버전을 어떻게 사용하는지 지켜보고 배웠어요. 이 글에서는 지난 12개월이 저희에게 가르쳐 준 것, 좋았던 점과 힘들었던 점을 정리해요. 그리고 앞으로 몇 달 동안 이루고 싶은 목표도 밝혀요.
좋았던 점
Exercism은 입소문만으로 엄청나게 성장했어요. 2018년 7월 이후로 13만 4천 명의 새 회원이 함께했어요. 지금까지 57만 8천 건의 풀이가 제출되었고, 39만 5천 개의 댓글이 올라왔어요. 2,500명이 넘는 분이 멘토로 가입해서 저희 Slack 워크스페이스에서 서로에게 7만 5천 개의 글을 남겼어요. 커뮤니티가 서로를 지지하고 격려해 주었고, 그 덕분에 Exercism이 번성할 수 있었어요. 저희는 이 점이 정말 감격스럽고, 이루 말할 수 없이 감사해요.
메인테이너 커뮤니티 덕분에 언어 트랙은 매일 계속 좋아지고 있어요. 몇몇 트랙에서는 Track Anatomy Project 덕분에 큰 진전을 이루었어요. 지금은 50개의 활성 트랙에 3,000개가 넘는 연습 문제가 있어요.
Mozilla의 지원으로 풀이를 자동으로 분석하는 기능을 구현했어요. 커뮤니티가 10개 언어를 위한 분석기를 만들었고, 출시 이후 1만 4천 개의 풀이를 분석했어요. 이 분석 덕분에 4,000건의 제출을 자동으로 승인할 수 있었고, 멘토들의 약 350시간을 아꼈어요.
힘들었던 점
초기의 시행착오를 빼면, 지난 12개월 동안 큰 문제가 하나 있었어요. 바로 멘토링 응답 시간이 길다는 점인데, 그 때문에 일부 트랙에는 상당한 적체가 쌓였어요. 멘토링 지연에 따른 어려움은 크게 세 가지로 나눌 수 있어요.
- 트랙 구조: 트랙에 매끄러운 학습 경로가 없으면 멘토링이 훨씬 어려워지고, 연습 문제 하나당 멘토링 시간이 치솟으며, 멘토와 학생 사이의 갈등이 크게 늘어나요. 출시 당시에는 서로를 기반으로 쌓아 올리는 핵심 연습 문제 세트를 갖춘 트랙이 거의 없었어요.
- 멘토링은 보람 있어야 해요: 같은 피드백을 계속 반복하는 건 지루해요. 피드백이 개인적이고, 대화가 학생의 이해에 맞춰질 때 멘토링은 흥미로워져요.
- 커뮤니티 소속감의 부족: 멘토링이 외로워지면 중도 이탈률이 상당히 높아져요. 저희 Slack 워크스페이스에서 서로를 지지하고 격려하는 핵심 멘토가 몇 명 있는 트랙에서는 멘토들이 오래 남는 경향이 있어요. 학생과 멘토의 관계도 이런 소속감에 중요한 열쇠예요. 사람 사이의 존중하고 개인적인 상호작용은, 그저 교육 웹사이트가 아니라 사람이 사람을 돕는다는 느낌을 줘요.
지난 한 해 동안 이런 어려움을 해결하는 데 많은 시간을 쏟았고, 그 중심에 있는 근본 문제를 이해하려고 보이지 않는 곳에서 엄청난 에너지를 쏟았어요. 앞으로의 12개월 계획은 이 세 가지 문제를 해결하는 것을 목표로 해요. 이 기간이 끝날 때쯤에는 모든 트랙에서 빠르고 일관된 응답 시간을 갖게 되기를 바라요.
앞으로의 12개월
앞으로 12개월 동안의 작업은 몇 개의 주제로 나뉘어요. 이 목록이 전부는 아니에요. 예를 들어 저희는 계속 버그를 고치고 웹사이트와 CLI에 전반적인 개선을 더할 거예요. 하지만 이 목록이 저희 작업의 중심이 될 거예요.
학생이 즐기고 멘토링이 쉬워지도록 트랙 재구성하기
Track Anatomy Project는 Exercism 트랙의 당장의 문제 몇 가지를 해결하는 데 결정적인 역할을 했어요. 앞으로 12개월 동안 저희는 유창함, 배움, 그리고 배운 것을 내려놓기라는 더 깊은 질문을 탐구하고, 각 언어가 지닌 독특함이나 특히 어려운 점을 파고들 거예요.
자동화할 수 있는 것은 자동화하기
이제 10개 트랙에서 풀이를 자동으로 승인하고 있어요. 이런 풀이에는 개선을 위한 자동 팁도 함께 제공해요.
기존 분석기가 더 많은 연습 문제를 처리하도록 확장하고, 다른 언어를 위한 분석기도 추가할 거예요. 또한 분석 결과를 사이트에서 학생과 멘토가 겪는 경험에 더 잘 녹여내고 싶어요. 특히 자동 승인을 막는 흔한 문제를 찾아내고 알려 주는 방식으로요.
제출된 풀이에 테스트 스위트를 실행하기 시작할 거예요.
이런 추가 자동화가 다음과 같은 이점을 가져올 거라고 믿어요.
- 학생의 답답함 줄이기: 학생에게 빠른 피드백을 주고 싶어요. 풀이가 최적이라면 계속 나아가게 해 주고, 예상대로 실패한다면 개선할 수 있도록 알려 줘요.
- 대기열 크기 획기적으로 줄이기: 프로토타입을 만들어 보니 간단한 연습 문제에서는 90%가 넘는 경우에 자동 멘토링을 제공할 수 있었어요. 더 복잡한 연습 문제에서는 그 수치가 더 낮겠지만, 제출된 풀이의 절반 정도에는 자동 멘토링을 제공할 수 있다고 생각해요.
- 멘토의 반복 작업 없애기: 대부분의 풀이는 비슷한 유형으로 나뉘어요. 많은 멘토링이 풀이 유형별로 미리 준비된 답변을 복사해 붙여넣는 방식에 의존하는데, 이는 아무리 의욕적인 멘토에게도 지루하고 재미없는 일이에요. 흔한 풀이를 멘토 대기열에서 빼면, 멘토는 자신의 지식과 경험이 필요한 경우에 집중할 수 있어요.
학생과 멘토 사이의 존중하는 관계 장려하기
현재 Exercism의 멘토링은 아주 거래적인 과정이에요. 학생이 풀이를 제출하면 멘토가 코멘트를 남겨요. 대화가 대체로 친근하다는 점을 빼면, 멘토와 학생 사이에 '관계'는 없어요. 멘토가 그 학생에게 전에 피드백을 준 적이 있는지 쉽게 기억할 방법이 없어요. 학생이 초보자인지 경험 많은 프로그래머인지 알아내어 그에 맞게 피드백을 조정할 방법도 없어요. 학생이 멘토의 배경을 알고 그 맥락 안에서 피드백을 존중하고 고마워할 방법도 없어요.
저희는 두 가지를 탐구하려고 해요. 둘 다 전체 경험을 더 공감 가득하게 만들고, 멘토링을 더 보람 있고 즐겁게 만들어 주기를 바라요.
첫 번째는 학생과 멘토 모두를 위한 더 깊이 있는 프로필이에요. 멘토링 경험과 훨씬 긴밀하게 연결되도록 할 거예요.
두 번째는 학생과 멘토를 짝지어 주는 아이디어예요. 그러면 학생은 특히 도움이 된다고 느끼는 멘토에게 계속 배울 수 있고, 멘토는 학습 스타일이나 배경을 잘 이해하는 학생과 함께 일할 수 있어요.
사용자층을 커뮤니티로 만들기
트랙이 '잘 돌아갈' 때, 그 이유는 항상 함께하는 소수의 멘토가 있기 때문이에요. 이런 멘토들은 다른 사람을 조언하고, 멘토 노트를 개선하고, 새로운 사람을 환영하고, 그들의 질문에 답하며, 사람들이 무언가의 일부라고 느끼게 해 줘요. 어떤 트랙에 Slack에서 그런 목소리를 내는 게 편한 핵심 멘토가 한 명 생기면, 그 트랙의 적체는 빠르게 줄어드는 경향이 있어요. 이 추진력이 핵심이에요. 적체가 줄어드는 것 같으면 모두가 뛰어들어 돕고, 그러면 모두가 적체를 낮게 유지하고 싶어 해요.
가장 꾸준히 멘토링하는 멘토가 저희 Slack 커뮤니티에서도 가장 활발해요. 이는 그들이 Exercism에 가장 많이 연결되어 있고, 가장 많이 지지받는다고 느끼기 때문이라고 생각해요. 멘토링은 학생에게 답장하는 것 이상이 돼요. 생각이 비슷한 사람들과 더 큰 목표를 함께하는 일이 되는 거예요.
저희는 Exercism의 성장과 성공을 막는 근본적인 장애물이 기술이 아니라 사람이라고 확신해요. 저희는 Exercism을 웹사이트나 제품이 아니라 커뮤니티로, 다시 말해 사람들이 다른 사람을 돕는 데 자신의 시간을 선물할 수 있는 곳으로 바라보는 데 집중해야 해요. Exercism은 사람들에게 연결, 커뮤니티, 목적, 친절이라는 기회를 제공하지만, 지금은 이를 잘 활용하거나 북돋우지 못하고 있어요.
앞으로 12개월 동안 저희는 Exercism이 웹사이트가 아니라 커뮤니티처럼 느껴지게 만들 방법을 찾아볼 거예요. 배움과 멘토링의 실제 기능을 흐리게 만들고 싶지는 않아요. '소셜 네트워크'나 초점 없는 토론 포럼이 되고 싶지도 않아요. Exercism에 참여하는 사람들이, 역시 Exercism을 사용하는 수천 명의 다른 사람들과 연결되어 있다고 느끼기를 바라요. 이걸 제대로 해내는 건 복잡하고, 느리고 신중한 과정이 될 거예요.
이걸 제대로 해내면, Exercism에서 멘토링을 시작하는 문턱을 낮출 거예요. 사이트 안에서 일어나는 일을 지지하고 조율해 줄 강한 커뮤니티가 있다는 걸 알기에, 누구든 다른 사람을 더 쉽게 도울 수 있게 만들 거예요.
기여에 더 많은 동기 부여하기
v2를 설계할 때, 저희는 게임화를 계속 피하기로 아주 의도적인 결정을 내렸어요. 사람들이 참여하는 이유는 스스로 내재적 가치를 찾기 때문이어야 하고, 저희가 인위적으로 보상 중추를 자극하기 때문이어서는 안 된다고 생각해요.
계속 활동하는 사람들은 Exercism 생태계 안에서 끊임없이 새로운 방식으로 자신에게 도전하는 사람들이에요. 트랙을 유지하든, 새로운 언어를 멘토링하든, 블로그 글을 쓰든, 분석기를 만들든, 그들은 흥미를 유지할 새로운 방법을 계속 찾아내요. 학생에게 성장 단계와 예상치 못한 보상을 더하려고 들인 모든 노력에 비해, 멘토에게는 비슷한 게 아무것도 없어요. 저는 이게 정말 아쉬운 부분이라고 생각해요.
또한 사람들의 노력과 놀라운 기여가 인정받고 축하받기를 바라요.
커뮤니티가 Exercism을 더 많이 사용할수록 새로운 도전과 기회, 특권을 얻을 수 있도록 하는 방법을 찾아보고 싶어요. Exercism을 계속 움직여야 하는 내재적 동기를 깎아내리지 않으면서, Exercism에도, 커뮤니티 사람들에게도 가치 있는 무엇을 더할 수 있을지 고민하는 데 시간을 쓸 거예요.
이걸 제대로 해내기 위해 조심스럽게 나아갈 거예요. 제대로 해내면 Exercism에 엄청난 차이를 만들 거라고 굳게 믿어요.
우리가 누구인지 알리기
앞으로 1년 동안 작업하고 싶은 마지막 영역이자, 지금 가장 크게 비어 있다고 생각하는 부분은, Exercism이 무엇을 지향하는지, 저희가 누구인지, 무엇을 하려는지 더 잘 알리는 일이에요. 사람들이 Exercism에 자신의 시간을 내고 싶은지 판단할 때, 저희의 가치와 원칙, 그리고 Exercism 바깥에서 겪은 저희에 대한 경험으로 저희를 평가할 거예요.
그래서 저희는 비전을, 저희가 누구인지, 무엇을 믿는지 외쳐야 해요. 커뮤니티의 모든 사람에게 비전을 계속 강조하고, Exercism으로 이룰 수 있는 모든 것에 함께 설레야 해요. 말을 걸고 설레게 하는 페이지, 글 뒤에 사람이 있다는 느낌이 드는 영상이 필요해요. 이 일의 목표는 엄밀히 말해 사용자를 끌어모으려는 게 아니에요. 저희가 누구인지 분명히 하고, 사람들이 저희의 일부가 되고 싶어 하도록 계속 설레고 의욕을 갖게 하는 것이에요. 그러면 아마 더 빨리 성장하고 더 많은 추진력을 얻게 되겠지만, 그건 저희가 측정하거나 신경 쓰고 싶은 게 아니에요. 저희가 신경 쓰고 싶은 건 Exercism과 연결된 모든 사람이 설레고, 힘을 얻고, 연결되어 있다고 느끼는 것이에요.
저희는 소셜 미디어에서 더 정확하게 이야기하는 것만으로 이 일의 작은 부분들을 시작했고, 벌써 커뮤니티 구성원 사이에 더 많은 설렘과 연결감이 생기기 시작했으며, 저희 '브랜드'를 긍정적인 것으로 알리는 데 도움이 되었어요. 앞으로 1년 동안 이걸 조심스럽게 키워 나가서, Exercism과 관련된 모든 사람이 자랑스러워하는 곳으로 만들고 싶어요.
마무리하며
저희는 앞으로의 12개월이 정말 기대돼요. Exercism이 잠재력을 발휘하도록 다음 걸음을 내딛게 도울 방법, 그리고 커뮤니티를 더 잘 지원하고 연결할 방법이 기대돼요. 마지막으로, 지난 한 해 동안 메인테이너로, 멘토로, 학생으로, 또는 다른 어떤 방식으로든 기여해 주신 모든 분께 큰 감사를 전하고 싶어요. 저희가 계속 나아지는 동안 보내주신 설렘과 아이디어, 기여와 인내에 감사해요.
참고로 Exercism에는 전략 문서가 있는데, Exercism을 앞으로 어떻게 이끌어 갈지에 대한 계획을 이 문서에 계속 업데이트하고 있어요. 앞으로 한번 눈여겨봐도 좋을 거예요.