ちょうど1年と少し前、Exercismの新しいバージョンをリリースしました。プロダクトを根本から作り直し、学習の進歩と正式なメンタリングという考え方を導入する、大きな変革でした。
リリース以降は、壊れていたものをすべて直し、構想の段階で見落としていたいくつかの点も追加しましたが、主に行ってきたのは、みなさんが新しいバージョンをどのように使っているかを観察し、学ぶことでした。この記事では、過去12か月が教えてくれたこと、つまり良かった点とつらかった点をまとめます。これから数か月で達成したいことについても示します。
良かったこと
Exercismは、口コミだけで驚くほど大きく成長しました。2018年7月以降、13万4000人が新しく参加しています。57万8000件の解答が提出され、39万5000件のコメントが投稿されました。また、2500人以上がメンターとして登録し、Slackワークスペースで互いに7万5000件の投稿を交わしています。コミュニティのみなさんが互いに支え、励まし合ってきたからこそ、Exercismはここまで成長できました。このことには、この上なくわくわくしていますし、心から感謝しています。
メンテナーのコミュニティのおかげで、各言語のトラックは日々改善を続けています。いくつかのトラックでは、Track Anatomy Projectの取り組みのおかげで大きく前進しました。現在、50のアクティブなトラックに3000以上の演習があります。
Mozillaの支援を受けて、解答の自動解析を実装しました。コミュニティが10言語分のアナライザーを作り、リリース以降1万4000件の解答を解析してきました。この解析により、4000件の提出を自動で承認できるようになり、メンターの約350時間分の労力を節約しています。
つらかったこと
初期の試行錯誤はさておき、この12か月で最大の問題点が1つありました。メンタリングの応答に時間がかかることです。その結果、いくつかのトラックでは大きな滞留が生まれました。メンタリングの遅れに潜む課題は、大きく3つに分けられます。
- トラックの構造: トラックにスムーズな進歩の道筋がないと、メンタリングは格段に難しくなり、演習1つあたりのメンタリング時間は跳ね上がり、メンターと学習者の間の緊張も劇的に高まります。リリース時に、互いに積み上がる形のコア演習を備えていたトラックはほとんどありませんでした。
- メンタリングにはやりがいが必要: 同じフィードバックを何度も繰り返すのは退屈です。フィードバックが一人ひとりに向き合ったもので、会話が学習者の理解に合わせて作られるとき、メンタリングは面白くなります。
- コミュニティ意識の欠如: メンタリングが孤独になると、離脱率はかなり高くなります。Slackワークスペースを通じて互いに支え合い励まし合う数人の主要メンターがいるトラックでは、メンターは定着しやすい傾向があります。学習者とメンターの関係も、このコミュニティ意識の鍵です。人と人の敬意ある、一人ひとりに向き合ったやり取りは、単なる教育サイトではなく、人間が人間を助けているという感覚をもたらします。
この1年、これらの課題に取り組むために多くの時間を費やし、その根底にある本質的な問題を理解しようと、舞台裏で膨大なエネルギーを使ってきました。これからの12か月の計画は、この3つの課題を解決することを目指しています。この期間の終わりには、すべてのトラックで速く安定した応答時間を実現したいと考えています。
これからの12か月
これからの12か月の取り組みは、いくつかのセクションに分かれています。このリストはすべてを網羅するものではありません。たとえば、バグの修正や、ウェブサイトとCLIへの一般的な改善はこれからも続けます。ただ、ここに挙げるものが取り組みの中心になります。
学習者が楽しめ、メンタリングしやすいトラックへ再構築する
Track Anatomy Projectは、Exercismのトラックが抱える差し迫った問題のいくつかを解決するうえで、決定的な役割を果たしてきました。これからの12か月では、流暢さ、学ぶこと、そして学び直すことについて、より深い問いを探り、言語ごとに何が独特で、何が特に難しいのかを掘り下げていきます。
自動化できるものは自動化する
現在、10のトラックで解答を自動承認しています。これらの解答には、改善のための自動ヒントも提供しています。
既存のアナライザーを拡張してより多くの演習に対応させ、他の言語のアナライザーも追加していきます。また、解析をサイト上の学習者とメンターの体験によりよく組み込みたいと考えています。特に、自動承認を妨げるよくある問題を見つけて報告できるようにします。
提出された解答に対してテストスイートを実行する仕組みも始めます。
この追加の自動化には、次のような利点があると考えています。
-
学習者のもどかしさを減らす: 学習者には素早いフィードバックのサイクルを届けたいと考えています。解答が最適なら、そのまま先に進んでもらいます。予測どおりに失敗するなら、改善できるよう伝えます。
-
キューの長さを劇的に減らす: 試作したところ、簡単な演習では90%以上のケースで自動メンタリングを提供できることが分かりました。より複雑な演習ではこの数字は下がると予想していますが、提出された解答のおよそ半数には自動メンタリングを提供できると考えています。
-
メンターの単調さを取り除く: ほとんどの解答は似たパターンに分類されます。メンタリングの多くは、解答の分類ごとに決まった答えをコピー&ペーストすることに頼っており、これはどんなに熱心なメンターにとっても退屈で面白みのない作業です。よくある解答をメンターのキューから外せば、メンターは自分の知識と経験を必要とするケースに集中できます。
学習者とメンターの敬意ある関係を育む
現在のExercismのメンタリングは、とても事務的なやり取りです。学習者が解答を提出し、メンターがコメントを返します。会話がおおむね友好的であることを除けば、メンターと学習者の間に「関係」はありません。メンターがその学習者に以前フィードバックを送ったことがあるかを思い出せる、簡単な方法はありません。学習者が初心者なのか経験豊富なプログラマーなのかを知り、それに合わせてフィードバックを変える方法もありません。学習者がメンターの背景を知り、その文脈を踏まえてフィードバックを尊重し、ありがたく受け取る方法もありません。
この体験全体をより思いやりのあるものにし、メンタリングをよりやりがいがあり楽しいものにするために、2つのことを検討します。
1つ目は、学習者とメンターの両方のための、より詳しいプロフィールです。メンタリングの体験と、もっと緊密に連携させます。
2つ目は、学習者とメンターのペアリングという考え方です。これにより、学習者は特に助けになると感じたメンターから学び続けられ、メンターは、その学習スタイルや背景をよく理解している学習者と一緒に取り組めます。
ユーザー層をコミュニティに変える
トラックが「うまくいく」とき、それは常にいてくれる少数のメンターがいるからです。こうしたメンターは、他の人に助言し、メンターノートを改善し、新しく来た人を歓迎し、その人の質問に答え、全体として、自分が何かの一部だと感じさせてくれます。トラックに、Slackでその声を担うことに抵抗がない主要なメンターが1人つくと、そのトラックの滞留は急速に減る傾向があります。この勢いが鍵です。滞留が減っていると感じられると、みんなが加わって助けてくれます。そして、みんなが滞留を低く保ちたいと思うようになります。
最も定期的にメンタリングするメンターは、Slackコミュニティでも最も活発です。これは、Exercismとのつながりを最も強く感じ、最も支えられていると感じているからだと考えています。メンタリングは、学習者に返信するだけのものではなくなります。同じ思いを持つ人たちと、より大きな目標を共有するものになるのです。
Exercismの成長と成功を根本から妨げているのは、技術的なものではなく、人の問題だと確信しています。Exercismをウェブサイトやプロダクトとしてではなく、コミュニティとして捉えることに集中する必要があります。人が自分の時間を、他の人を助けるために贈ることができる場所です。Exercismは、つながり、コミュニティ、目的、優しさといった機会を人々に提供していますが、今はそれをうまく活かしたり、後押ししたりできていません。
これからの12か月で、Exercismをウェブサイトではなくコミュニティのように感じられるものにする方法を考えていきます。学ぶこととメンタリングの機能的な現実を薄めるつもりはありません。「ソーシャルネットワーク」や、焦点の定まらないディスカッションフォーラムになりたいわけでもありません。Exercismに関わる人たちに、同じように使っている何千人もの他の人たちとつながっていると感じてほしいのです。これを正しく実現するのは複雑で、ゆっくり慎重に進めるプロセスになります。
これがうまくいくと、Exercismでのメンタリングのハードルは下がります。サイト内で起きていることを支え、見守ってくれる強いコミュニティがあると分かったうえで、誰もがもっと気軽に他の人を助けられるようになります。
貢献へのさらなる動機づけを加える
v2の設計では、ゲーミフィケーションを引き続き避けるという、とても意図的な決断をしました。報酬中枢を人工的にくすぐるからではなく、内発的な価値を見出せるから参加する、ということが欠かせないと考えています。
活発に活動し続ける人たちは、Exercismのエコシステムの中で、常に新しい方法で自分自身に挑戦し続ける人たちです。トラックを維持することであれ、新しい言語のメンタリングであれ、ブログ記事を書くことであれ、アナライザーを作ることであれ、彼らは物事を面白く保つ新しい方法を見つけ続けています。学習者に進歩の実感と予想外のごほうびを加えるために多くの労力を注いできましたが、メンターには同じようなものが何もありません。これは本当に大きな損失だと思っています。
また、みなさんの努力と素晴らしい貢献が認められ、称えられるようにしたいと考えています。
Exercismを使うほどに、コミュニティのみなさんが新しい挑戦や機会、特権を得られるようにする方法を探りたいと思っています。Exercismを動かし続ける内発的な動機を損なわずに、Exercismにとっても、コミュニティのみなさんにとっても価値のあるものを何が加えられるか、時間をかけて考えていきます。
これを正しく実現するために慎重に進めます。それがうまくいけば、Exercismに大きな違いをもたらすと強く感じています。
自分たちが何者かを発信する
これから1年で取り組みたい最後の領域、そして今あると考える最後の大きな欠けは、Exercismが何を目指しているのか、自分たちが誰なのか、何をしようとしているのかを、もっとうまく伝えることです。人々がExercismに自分の時間を費やしたいかどうかを判断するとき、基準になるのは、自分たちの価値観や原則、そしてExercismの外で自分たちに接したときの体験です。
だからこそ、自分たちのビジョン、自分たちが誰で、何を信じているのかを、もっと声高に伝える必要があります。コミュニティのみんなにビジョンを絶えず伝え続け、Exercismで実現できることすべてに一緒にわくわくする必要があります。語りかけて、わくわくさせるページが必要です。文章の背後に人がいるように感じられる動画も必要です。この目的は、決してユーザーを獲得しようということではありません。自分たちが誰なのかを明確にし、みんなが自分たちの一員であり続けたいとわくわくし、やる気を持ち続けられるようにすることです。おそらく、その結果としてより速く成長し、勢いも増すでしょう。ただ、それを測ったり気にしたりしたいわけではありません。大切にしたいのは、Exercismに関わるすべての人が、わくわくし、力づけられ、つながっていると感じられることです。
ソーシャルメディアでより正確に発信するだけでも、少しずつこれを始めています。それだけでも、コミュニティのみなさんの間により大きなわくわくとつながりが生まれ始め、自分たちの「ブランド」を前向きなものとして広める助けになっています。これから1年、これを慎重に積み重ね、Exercismに関わるすべての人が、関われて誇りに思える場所にしていきたいと考えています。
おわりに
これからの12か月に、本当にわくわくしています。Exercismがその可能性に近づくための次の一歩を踏み出す手助けをどうすればできるか、コミュニティにどうすればもっとよく貢献し、つなげられるか、それを楽しみにしています。最後に、私から、この1年で貢献してくださったすべてのみなさんに心から感謝を伝えたいと思います。メンテナーとして、メンターとして、学習者として、あるいはその他の形で関わってくださった方々です。改善を続ける中で、みなさんのわくわくする気持ち、アイデア、貢献、そして忍耐に感謝します。
なお、Exercismには戦略ドキュメントがあり、Exercismを前に進めるための計画に合わせて更新しています。今後、ときどきチェックしてみてください。