就在 12 個多月前,我們推出了全新版本的 Exercism。這是一次徹底的改變,我們從零開始重新思考整個產品,並引入了進度與正式引導的概念。
推出之後,我們修好了所有壞掉的地方,也補上了一些我們當初在構想上遺漏的功能,但最主要還是在一旁觀察並了解大家如何使用這個新版本。這篇文章會說明過去 12 個月教會我們的事,包括好的與痛苦的。文章也會列出我們希望在接下來幾個月達成的目標。
好的部分
Exercism 的成長非常驚人,而且完全是靠口耳相傳。自 2018 年 7 月以來,已有 134,000 名新成員加入。我們看到 578,000 次提交的疊代、395,000 則張貼的留言,還有超過 2,500 人註冊成為導師,在我們的 Slack Workspace 中互相寫了 75,000 則訊息。社群成員互相支持、互相鼓勵,這讓 Exercism 得以蓬勃發展。我們為此感到無比興奮,也特別感激。
感謝我們的維護者社群,我們的語言軌道每天都在持續進步。在幾個軌道中,由於 Track Anatomy Project 的努力,我們有了巨大的進展。我們現在有超過 3,000 個練習,分布在 50 個活躍的軌道上。
在 Mozilla 的支持下,我們實作了自動化分析解決方案的功能。我們的社群為十種語言打造了分析器,自上線以來已經分析了 14,000 個解決方案。這些分析讓我們能自動核准 4,000 份提交,為導師省下大約 350 小時的心力。
痛苦的部分
除了一開始的一些磨合問題之外,過去 12 個月裡有一個主要的痛點:引導的回應時間過長,導致某些軌道累積了大量待處理量。引導延遲所帶來的挑戰,主要可以分成三大類:
- 軌道結構: 當軌道沒有平順的進展路徑時,引導會變得困難許多,每個練習所需的引導時間暴增,導師與學生之間的緊張也大幅升高。推出時,很少有軌道擁有一套能彼此銜接的核心練習。
- 引導必須有成就感: 一再給出相同的回饋很無聊。當回饋是個人化的,對話也是針對學生的理解量身打造時,引導才會變得有趣。
- 缺乏社群感: 當引導變得孤單時,流失率就會很高。在那些有幾位關鍵導師透過我們的 Slack 工作區互相支持、互相鼓勵的軌道裡,導師通常比較留得住。學生與導師之間的關係,對這種社群感也很關鍵。人與人之間互相尊重、個人化的互動,帶來的是人幫助人的感受,而不只是單單一個教育網站。
過去一年,我們花了許多時間處理這些挑戰,也投入了大量檯面下的心力,試圖理解這些問題的核心。我們接下來 12 個月的計畫,目標就是解決這三個問題。我們希望在這段期間結束時,所有軌道都能有快速且一致的回應時間。
接下來 12 個月
我們接下來 12 個月的工作分成幾個部分。這份清單並不完整,舉例來說,我們會繼續修 bug,也會為網站和 CLI 加入更多一般性的調整,但它會是我們工作的重點。
重新調整軌道,讓學生學得開心、引導更輕鬆
Track Anatomy Project 對於解決 Exercism 上軌道的一些迫切問題至關重要。接下來 12 個月,我們會探討關於流暢度、學習與遺忘的更深入問題,並研究不同語言獨特或特別有挑戰性的地方。
把能自動化的都自動化
我們現在會在十個軌道中自動核准解決方案。針對這些解決方案,我們也會提供自動化的改進建議。
我們會擴充現有的分析器,讓它們能處理更多練習,也會為其他語言加入分析器。我們還想更妥善地把分析融入學生與導師在網站上的體驗,特別是找出並回報那些阻礙自動核准的常見問題。
我們會開始對提交的解決方案執行測試套件。
我們相信這些額外的自動化會帶來以下好處:
- 減少學生的挫折感: 我們想給學生快速的回饋循環。如果解決方案已經是最佳的,就讓他們繼續前進。如果它以可預期的方式失敗,就告訴他們,好讓他們能改進。
- 大幅縮小佇列: 我們的雛型測試顯示,對於簡單的練習,我們能在超過 90% 的情況下提供自動化引導。雖然我們預期在更複雜的練習上這個數字會更低,但我們認為能對大約一半的提交解決方案提供自動化引導。
- 移除導師的反覆工作: 大多數解決方案都落在相似的類別裡。許多引導都仰賴對每一類解決方案複製貼上制式的答案,這即使對最有毅力的導師來說也既乏味又無趣。把常見的解決方案從導師的佇列中移除,能讓導師專注在真正需要他們知識與經驗的案例上。
鼓勵學生與導師之間互相尊重的關係
目前 Exercism 上的引導是非常交易式的一個過程。學生提交一個解決方案,導師給出意見。除了對話本身通常很友善之外,導師與學習者之間並沒有任何「關係」。導師沒有一個簡單的方法能記得自己之前是否給過那位學生回饋。也無法知道學生是初學者還是經驗豐富的程式設計師,並據此調整回饋的內容。學生也無法得知導師的背景,並在那樣的脈絡下尊重或感謝這些回饋。
我們會探索兩件事,希望它們能讓整個體驗更有同理心,也讓引導更有成就感、更愉快。
第一項是為學習者與導師提供更深入的個人檔案,並與引導體驗更緊密地整合。
第二項是學生與導師配對的想法。這能讓學生繼續向他們覺得特別有幫助的導師學習,也讓導師能與學習風格或背景是自己所熟悉的學生合作。
把使用者群變成一個社群
當軌道「運作良好」時,之所以良好,是因為它們有少數幾位一直都在的導師。這些導師會給其他人建議、改進導師筆記、歡迎新朋友、回答他們的問題,並讓人們普遍感覺自己是某件事的一份子。一旦某個軌道有了位願意在 Slack 上發聲的關鍵導師,該軌道的待處理量往往就會迅速下降。這股動能是關鍵。當大家感覺待處理量正在減少時,每個人都會加入並伸出援手。接著,每個人都會想讓待處理量維持在低水位。
那些最常引導的導師,也是我們 Slack 社群裡最活躍的。我們相信這是因為他們感覺與 Exercism 最有連結、也最受到支持。引導不再只是回覆學生,而是與其他志同道合的人一起分享更大的目標。
我們深信,Exercism 成長與成功的根本障礙不是技術問題,而是人的問題。我們的重心必須放在把 Exercism 視為一個社群,而不是一個網站或產品,一個讓人們能奉獻自己的時間去幫助他人的地方。Exercism 為人們提供了連結、社群、目標與善意的機會,但我們目前並沒有好好運用或鼓勵這一點。
接下來 12 個月,我們會設法讓 Exercism 感覺像個社群,而不是一個網站。我們不想稀釋學習與引導在功能上的真實面。我們不想變成一個「社群網路」,也不想變成一個沒有焦點、只供討論的論壇。我們希望投入 Exercism 的人,能感覺自己與其他成千上萬同樣在使用它的人有所連結。要做好這件事很複雜,會是一個緩慢而謹慎的過程。
一旦我們做對了,我們就會降低在 Exercism 上參與引導的門檻。我們會讓任何人要幫助他人都變得更容易,因為他們知道有一個強大的社群在支持並協助管理網站內發生的一切。
為貢獻增添額外的動力
在設計 v2 時,我們刻意做出了一個決定:繼續避免遊戲化。我們認為,人們參與是因為他們找到內在的價值,而不是因為我們人為地去搔癢他們的獎勵中樞,這一點至關重要。
持續保持活躍的人,是那些在 Exercism 生態系中不斷用新方式挑戰自己的人。無論是維護一個軌道、引導一門新語言、寫部落格文章,還是打造分析器,他們總能找到新方法讓事情保持有趣。我們投入了那麼多心力為學生增添進展感與意想不到的獎勵,卻沒有為導師提供任何類似的東西,我認為這是一大損失。
此外,我們也希望人們的努力與出色的貢獻能被看見、被表揚。
我們想探索各種方式,讓我們社群的人在越常使用 Exercism 之後,能獲得新的挑戰、機會與特權。我們會花時間思考,我們能加入哪些東西,對 Exercism 有價值、對我們社群裡的人也有價值,同時又不減損那些必須繼續驅動 Exercism 的內在動機。
我們會小心翼翼地把它做對,而我們強烈相信,做對了將為 Exercism 帶來巨大的改變。
大聲說出我們是誰
我們在接下來一年想要處理的最後一個領域,也是我們認為目前存在的最後一個重大缺口,就是更清楚地傳達 Exercism 的宗旨、我們是誰,以及我們想做什麼。當人們評估自己是否想把時間奉獻給 Exercism 時,他們會依據我們的價值觀、原則,以及他們在 Exercism 之外對我們的體驗來評價我們。
所以我們需要大聲說出我們的願景,大聲說出我們是誰、我們相信什麼。我們需要不斷向社群裡的每個人強化這份願景,一起為我們能與 Exercism 一起達成的一切感到興奮。我們需要會說話、能讓人熱血沸騰的頁面,也需要讓人感覺文字背後有血有肉的影片。我們的目的嚴格來說並不是要獲取使用者,而是要清楚表明我們是誰,並讓人們保持興奮與動力,願意成為我們的一份子。這很可能意味著我們確實會成長得更快、獲得更多動能,但這不是我們想衡量或在意的事。我們在意的是,每個與 Exercism 相關的人都能感到興奮、充滿力量,並且覺得彼此相連。
我們已經開始做一些小事,例如在社群媒體上更準確地發聲,而這已經開始在我們社群成員之間建立起更多興奮感與連結感,也有助於把我們的「品牌」推廣成正面的形象。我們打算在接下來一年謹慎地在這個基礎上繼續發展,讓 Exercism 成為每個參與者都引以為傲、樂於與之連結的地方。
結語
我們對接下來 12 個月真的非常興奮,對我們能如何幫助 Exercism 踏出下一步、發揮它的潛力感到興奮,也對我們能如何更好地服務並連結我們的社群感到興奮。最後,我想向過去一年所有做出貢獻的人致上大大的感謝,無論你是維護者、導師、學生,還是以其他方式參與。感謝你們的熱情、想法、貢獻,以及在我們持續改進的過程中給予的耐心。
請注意,Exercism 有一份策略文件,我們會持續更新我們推動 Exercism 前進的計畫,未來你也許會想持續關注。