Важливо: ця інформація вже застаріла. Актуальні подробиці дивіться в новішому дописі в блозі.
Коротко: ми витрачаємо кілька місяців на переосмислення нашої моделі волонтерства й даємо нашим ключовим волонтерам перепочинок від роботи з перегляду внесків спільноти. Якщо Exercism використовують виключно для навчання чи наставництва, тут немає нічого обовʼязкового (хоча, якщо цікаво, прочитайте!). Мейнтейнерам треків, а також тим, хто хоче долучитися до Exercism чи повідомити про bug або проблему, варто вважати це обовʼязковим до прочитання 🙂
За останні 6 місяців ми витратили багато часу на дослідження майбутнього Exercism, уявляючи, як було б, якби кожен мовний трек став якнайкращим, яким тільки може бути. Ми неймовірно пишаємося тим, що вже створили. 85 000 відгуків, які нам залишили, свідчать про неймовірну роботу, яку наша спільнота зробила, будуючи наші мовні треки й наставляючи стількох учнів на них. Найголовніше: ми переконані, що лише торкнулися поверхні того, на що здатен Exercism. У нас величезні ідеї, сподівання і захоплення щодо всього, чим Exercism може стати. Але щоб їх досягти, спершу треба розвʼязати кілька фундаментальних проблем, які жевріють під поверхнею.
Найперша з них - потреба розвʼязати завдання масштабування нашої волонтерської спільноти в здоровий і сталий спосіб. Exercism будувався на плечах сотень відданих волонтерів, але значна частина з них нині відчуває вигорання, і багато хто через це пішов. Причин цього безліч: частина безпосередньо повʼязана з Exercism, частина - з браком часу в житті, а частина - із загальним тлом того, що зараз відбувається у світі. Але нам стало цілком ясно, що треба спроєктувати й розробити кращий спосіб будувати нашу платформу разом.
Історично ми намагалися будувати Exercism за моделлю відкритого програмного забезпечення (OSS), за якої є мейнтейнери, що переглядають внески ширшої спільноти. Це створило нам багато проблем і викликало розчарування як у мейнтейнерів, так і в контрибʼюторів. Нижче я розповідаю про це докладніше, якщо потрібні подробиці, але якщо коротко, то наші ключові волонтери тепер витрачають час на роль реактивних привратників, а не творців-новаторів. Це значно менш цікаво для них і означає, що Exercism втрачає ту магію, яку ці люди раніше привносили в платформу.
Щоб це виправити, треба зробити дві речі:
- Нам треба спроєктувати нову систему волонтерства, яка пасує Exercism краще, ніж традиційна модель OSS. Досі ми витратили на це чимало сил і зазнали невдачі. Тож ми візьмемо паузу, щоб попрацювати з нашими волонтерами й належно спроєктувати це протягом наступних кількох місяців.
- Ми здебільшого призупинимо внески ширшої спільноти на наступні кілька місяців, щоб наші ключові волонтери могли зосередитися на створенні та розвитку треків так, як вони хочуть (або взяти тривалу відпустку, якщо їм просто треба перепочити!)
Я сподіваюся, що, відступивши на крок назад і справді добре все спроєктувавши, а також збираючи кошти, щоб розширити нашу освітню команду, ми зможемо зробити Exercism чудовим місцем для волонтерства й допомогти забезпечити його майбутнє. Тим часом ці зміни мають означати, що треки зможуть покращуватися й зростати більше, ніж за останній рік, а наші мейнтейнери перестануть вигорати й натомість почуватимуться щасливішими, енергійнішими й більш залученими від роботи над Exercism.
Відчутні зміни
Ми впроваджуємо три відчутні зміни.
Користуймося форумом, а не GitHub Issues
Ми повністю звільнимо GitHub, щоб наші мейнтейнери працювали над тими завданнями, які хочуть опрацювати. Ми закриємо багато завдань, які раніше створили для спільноти (і додамо тег, щоб за потреби їх можна було легко відкрити знову), а також не дозволятимемо нових незапитаних завдань чи PR у більшості репозиторіїв. Якщо хочеться щось обговорити чи про щось повідомити, скористайтеся натомість форумом. Якщо відкрити незапитане завдання чи PR, його автоматично закриють, а автора скерують на форум.
Призупинення внесків ширшої спільноти
Треки поділять на три категорії:
- У більшості треків з активними мейнтейнерами внески спільноти призупинять, щоб мейнтейнери могли бути автономними або перепочити. (Мейнтейнери цих треків можуть попросити зняти обовʼязкову вимогу одного ревʼю. Із цим звертайтеся до Erik у Slack)
- Деякі треки з активними мейнтейнерами, які хочуть і надалі приймати внески спільноти, залишаться відкритими (Мейнтейнерам, які хотіли б перейти в цей режим, а не в режим (1), варто звʼязатися з Jonathan Middleton у Slack, щоб це обговорити).
- У треках без активних мейнтейнерів розвиток на цей період фактично призупиниться.
У всіх випадках Erik і я й надалі будемо робити контрольну перевірку PR до репозиторіїв інструментарію перед злиттям.
Єдиний виняток - ми й надалі прийматимемо PR до підходів і статей та запровадимо загальноорганізаційну політику оптимістичного злиття, яка має на меті створити базовий рівень підходів у всьому Exercism і дозволити поступові покращення, за такими правилами:
- Якщо код розвʼязує вправу і є синтаксично та семантично ідіоматичним (тобто має вигляд коду мови $LANG), його варто злити. Якщо ні, його має виправити автор PR.
- Якщо мейнтейнер хоче змінити вміст (наприклад, покращити поради, щось підправити, підсвітити кращі, альтернативні чи ідіоматичніші підходи), це варто зробити в наступному PR.
Проєктування нової системи волонтерства
Ми створимо Раду спільноти, щоб разом спроєктувати сталу й здорову модель волонтерства на майбутнє, яка розкриє потенціал Exercism. Тим, хто вболіває за майбутнє Exercism і хоче долучитися до цього процесу, варто написати Jonathan.
Ми працюватимемо за цими кроками наступні кілька місяців. Увесь цей час ми все обмірковуватимемо й плануємо ухвалити нові рішення до червня 2023 року. Якщо є якісь думки, заводьте тему на форумі!
Післямова: чому наша модель OSS зламана
Наша історична модель будувалася навколо моделі OSS. Вона покладалася на волонтерів, які приходили в Exercism, чудово працювали над створенням треків, а потім отримували права мейнтейнера, завдяки яким могли приймати внески від ширшої бази користувачів, щоб покращувати треки.
Хоча на папері це здається чудовим, у нього є кілька серйозних проблем. Найперше з них - те, що люди, які додають Exercism найбільше магії, зрештою не мають часу писати код чи творити Exercism, бо їхній час іде на відповіді на внески спільноти. Майже ніколи це не те, заради чого мейнтейнери долучалися до Exercism, і не та робота, яку вони люблять. Це трохи схоже на те, як людину, яка любить розробляти, «підвищують» до тімліда, де вона керує людьми замість того, щоб писати код. Можливо, на той момент це здається гарним підвищенням, але часто виявляється, що бути менеджером подобається людям удвічі менше, ніж писати код.
Це також спирається на припущення, що сума внесків ширшої спільноти більша за той окремий внесок, який міг би зробити конкретний мейнтейнер. Але в Exercism це майже ніколи не так. Exercism складний, освіта - річ непроста, і разом вони роблять внесок в Exercism складною й непростою справою. Треба багато чого вивчити й зрозуміти як про те, як Exercism працює технічно, так і про його підхід до освіти, а отже, більшість перших внесків - це люди, які тільки шукають свій шлях. Це означає, що їхні початкові внески відносно малі, але також і те, що їх майже завжди треба чимало доопрацьовувати під час перегляду й підправлення. Це робота, що забирає багато часу в мейнтейнерів. Насправді загальний час, витрачений на перегляд (а також потрібне перемикання контексту), означає, що мейнтейнер зазвичай докладає більше зусиль на перегляд PR, ніж якби просто зробив його сам. Звісно, є й винятки, але це так у 99% випадків. І часто це завдає мейнтейнеру ще більшого болю, бо проблема, яку розвʼязує PR, була далеко не на вершині його списку пріоритетів, а отже, справді важливі на його думку речі через це не робляться.
Нарешті, модель OSS спирається на те, що контрибʼютори починають із малого й зрештою стають достатньо обізнаними та регулярними, щоб самим стати мейнтейнерами. У проєктах з відкритим кодом, як-от бібліотеки програмного забезпечення, це працює відносно добре (наприклад, хтось використовує бібліотеку в продакшені й постійно додає до неї покращення, аж доки зрештою не знає про неї не менше за її творця). Однак в Exercism цього просто не сталося. Попри те, що за останні 12 місяців ми злили PR від тисяч контрибʼюторів, лише одиниці з них стали постійними контрибʼюторами, а мейнтейнерами - ще менше. Це знову ж таки переважно через складність Exercism, але також і тому, що він не є замкненим програмним продуктом, де ця модель традиційно працює.
Усе це надзвичайно деморалізує мейнтейнерів і шкодить Exercism.
Треки застопорилися, і наші ключові волонтери, які мали пристрасть до творення, здебільшого втратили її, коли їхня робота звелася до перегляду чужої праці, узгодження конкуруючих пріоритетів і відповідей на несподівані запити. Під час створення v3 мейнтейнери могли працювати відносно автономно, бо їхня робота здебільшого була за кадром, що дало величезну продуктивність і означало, що більшість людей справді любили робити свій внесок. Від запуску v3, попри те, що багато волонтерів присвячують Exercism не менше часу, період став значно менш приємним і продуктивним, головно через те, скільки енергії йде на відповіді на чужі внески чи завдання. Тепер наші волонтери витрачають час на роль реактивних привратників, а не новаторів, і це значно менш цікаво.
Це ті виклики, які нам треба розвʼязати, і вони непрості. Нам треба знайти спосіб дати людям, які хочуть витрачати сотні годин на створення мовних треків Exercism, змогу робити це й любити це. Нам треба знайти спосіб, щоб виправлення bug і дрібні внески потрапляли в нашу кодову базу без уваги тих ключових волонтерів. І нам треба знайти спосіб залучати нових волонтерів до Exercism і підтримувати їх, якщо вони вирішать присвятити себе постійним внескам. Загалом нам треба менше поводитися як привратники, водночас шануючи те, що люди, які вклали стільки зусиль у треки, мають сильні й дуже добре обмірковані думки. Нам треба зробити керування всією цією волонтерською системою цікавим. І нам треба розвʼязати ще багато іншого. Це займе час і буде непросто, але коли нам це вдасться, буде чудово.