작년 9월, 우리는 조용히 Exercism의 트랙 해부 프로젝트를 시작했어요. 그 이후로 점점 더 많은 사람들에게 이 프로젝트를 알려 왔고, 이제 Exercism의 트랙과 연습 문제를 개선하기 위해 우리가 하고 있는 본격적인 작업을 공개적으로 소개할 때가 되었다고 판단했어요.
트랙 해부 프로젝트의 목적과 필요성을 이해하려면 Exercism의 뿌리로 거슬러 올라가야 해요. Exercism은 여러 언어 트랙으로 시작했고, 각 트랙에는 서로 겹치는 연습 문제들이 있었어요. 순서나 구조 같은 건 따로 없었죠. 누구든 재미있어 보이는 연습 문제를 골라 풀고, 코드를 업로드한 뒤, 누군가 그 코드를 발견해서 댓글을 남겨 주기를 바라는 방식이었어요. 2018년 재출시의 핵심은 트랙 자체와 그에 따르는 학습 모두에 훨씬 더 체계적인 접근 방식을 적용해 Exercism의 중심을 다시 잡는 것이었어요. 우리는 언어 트랙을 필수 "핵심 연습 문제"로 이루어진 고정된 뼈대를 갖추도록 재편하고, 핵심 연습 문제를 완료하면 선택 사항인 "부가 연습 문제"가 잠금 해제되도록 하기로 했어요. 메인테이너들에게는 핵심 뼈대가 갈수록 어려워지도록 구성하고, 연습하는 기법과 관련 있는 잠금 해제 순서를 설계해 달라고 요청했어요. 메인테이너마다 서로 다른 접근 방식을 취했고, 성공 정도도 제각각이었어요. 어떤 메인테이너는 시간이 전혀 없었고, 그런 경우에는 그냥 비교적 무작위로 열 개의 연습 문제를 골라 초기 핵심을 구성했어요.
트랙의 설계가 그 트랙의 성공에 엄청난 차이를 만든다는 사실이 아주 빠르게 분명해졌어요. 출시 후 첫 몇 달 동안 우리는 몇 가지 중요한 사실을 관찰했어요.
- 너무 어려운 연습 문제로 시작하는 언어는 사람들을 좌절하게 만들고 빠른 이탈로 이어졌어요.
- 연습 문제를 멘토링하는 난이도는 문제의 어려움이 아니라 문제의 복잡성과 직접적인 상관관계가 있었어요.
- 한 가지 전형적인 방식으로 풀 수 있거나 명확한 학습 목표를 가진 연습 문제(예: "acronym")는, 다양한 방식으로 풀 수 있는 문제(예: "bob")보다 멘토링하기가 훨씬 빨랐어요.
- 개념을 소개하는 순서가 중요했어요. 처음 몇 개의 연습 문제에서 필수적인 관용 표현을 다루면, 이후 연습 문제가 학습자와 멘토 모두에게 더 쉬워졌어요.
이를 바탕으로 우리는 Exercism에서의 멘토링 성공이 상당 부분 트랙의 "커리큘럼" 품질, 즉 올바른 주제를 올바른 연습 문제에서 명시적으로 다루고, 적절한 순서로 배치하는 것에 달려 있다는 것을 깨달았어요. 그래서 메인테이너를 위한 안내서로 쓸 수 있는 공식적인 프레임워크를 만들고, 다른 트랙이 본받을 수 있는 표준이 될 트랙 하나를 만들어야겠다고 결심했어요.
이 모든 일이 진행되는 동안, 20년간 프로 코치로 일해 온 우리 멘토 중 한 명인 Maud de Vries가 Ruby 트랙을 개선하는 방법에 대한 제안을 꾸준히 올리기 시작했어요. 그녀의 아이디어는 우리가 하고 있던 깨달음과 놀랄 만큼 잘 맞아떨어졌어요. 조용히 뒤에서 Maud는 모든 Ruby 연습 문제를 하나씩 분석하며, 문제들이 어떻게 연결되는지, 어떤 개념을 담고 있는지, 그리고 학습자에게 잘 짜여 있고 멘토가 다루기 즐거운 트랙 구조를 만들기 위해 문제를 어떻게 더 잘 배치할 수 있는지에 대한 지도를 만들어 가고 있었어요. 그녀가 자신의 작업 일부를 우리에게 보여 주었을 때, 우리는 그녀가 우리의 트랙 프레임워크를 개발할 적임자이며 Ruby 트랙을 맡아 우리의 모범 사례로 만들 수 있다고 판단했어요. 그때부터 Maud는 Exercism에서 파트타임으로 일하며 Ruby 트랙을 다시 설계하고, 메인테이너가 그녀의 경험을 다른 언어에 빠르게 적용할 수 있도록 여러 단계로 이루어진 프레임워크를 개발해 왔어요. 10월부터 Erik Schierboom은 여가 시간에 Maud의 실험 대상이 되어 프레임워크를 테스트하고 C# 트랙 개선에 활용해 왔고, 이는 다시 프레임워크 자체의 발전에 큰 영향을 주었어요.
이제 우리는 다음 메인테이너 그룹을 프레임워크 과정에 참여시켜 더 엄격하게 테스트하고 다듬을 수 있는 단계에 거의 다다랐어요. 이번 다음 단계를 마치면, 더 넓은 커뮤니티의 더 많은 검토를 받을 수 있는 프레임워크 첫 버전을 공개하고 싶어요. 그 지점에 도달해 그동안 무대 뒤에서 진행되어 온 모든 작업을 선보일 생각에 정말 설레요. 우리는 이것이 Exercism의 큰 진전이며, 학습 경험과 멘토 경험 모두를 크게 개선할 것이라고 생각해요.
끝으로 이 프로젝트를 지칠 줄 모르고 이끌어 온 Maud와, 여가 시간을 아낌없이 내어 도와준 Erik에게 큰 감사를 전하고 싶어요.