توجه: این اطلاعات اکنون قدیمی شده است. برای اطلاع از جزئیات بهروز، نوشتهی جدیدتر وبلاگ ما را ببینید.
خلاصه: چند ماه را صرف بازطراحی مدل داوطلبیمان میکنیم و به داوطلبان کلیدیمان استراحتی میدهیم تا از کار بررسی مشارکتهای انجمن فاصله بگیرند. اگر از Exercism صرفاً برای یادگیری یا منتورینگ استفاده میکنید، هیچ موردی در اینجا نیست که لازم باشد بدانید (هرچند اگر علاقهمندید، لطفاً بخوانید!). اگر نگهدارندهی یک «مسیر» هستید، میخواهید به Exercism مشارکت کنید، یا میخواهید یک باگ یا مشکل را گزارش دهید، این نوشته را ضروری بخوانید 🙂
در ۶ ماه گذشته زمان زیادی را صرف کاوش در آیندهی Exercism کردهایم و تصور کردهایم اگر هر مسیر زبان به بهترین شکل ممکن خودش برسد، چه شکلی میشود. ما به آنچه تاکنون ساختهایم بینهایت افتخار میکنیم. ۸۵٬۰۰۰ توصیهنامهای که ثبت شده، گواه کار شگفتانگیزی است که انجمن ما در ساخت مسیرهای زبان و منتورینگ این همه دانشآموز در طول آنها انجام داده است. از همه مهمتر، باور داریم که هنوز فقط به سطحِ آنچه ممکن است دست زدهایم. برای همهی آنچه Exercism میتواند باشد، ایدهها، امیدها و شوق فراوانی داریم. اما برای رسیدن به آنها، ابتدا باید چند مشکل بنیادین را که زیر سطح باقی ماندهاند حل کنیم.
مهمترینشان نیاز به حل چالش رشد انجمن داوطلبان به شکلی سالم و پایدار است. Exercism روی شانههای صدها داوطلب فداکار ساخته شده است، اما بخش بزرگی از آنها اکنون دچار فرسودگی شدهاند و در نتیجه بسیاریشان رفتهاند. دلایل این کار بیشمار است: بعضی مستقیم به Exercism مربوط میشود، بعضی به فشارهای زمانی زندگی برمیگردد و بعضی به فضای کلی همهی اتفاقاتی که این روزها در جهان میافتد. اما برای ما کاملاً روشن شده است که باید راه بهتری برای ساختن مشترک پلتفرممان طراحی و توسعه دهیم.
ما در طول تاریخ Exercism را با مدل نرمافزار متنباز (OSS) ساختهایم؛ مدلی که در آن نگهدارندگان، مشارکتهای انجمن گستردهتر را بررسی میکنند. این کار مشکلات زیادی برایمان ایجاد کرده و باعث سرخوردگی هم نگهدارندگان و هم مشارکتکنندگان شده است. اگر جزئیات میخواهید، در ادامه بیشتر در این باره توضیح دادهام، اما خلاصهاش این است که داوطلبان کلیدی ما اکنون وقتشان را صرف نقش دروازهبانهای واکنشی میکنند، بهجای اینکه آفرینندگان نوآور باشند. این برایشان بسیار کمجذابتر است و یعنی Exercism آن جادویی را از دست میدهد که این افراد پیشتر به پلتفرم آورده بودند.
برای حل این مشکل باید دو کار انجام دهیم:
- باید نظام تازهای برای داوطلبی طراحی کنیم که برای Exercism از مدل سنتی OSS مناسبتر باشد. تا الآن انرژی زیادی صرف تلاش برای این کار کردهایم و موفق نشدهایم. پس قرار است مدتی وقت بگذاریم و در ماههای آینده همراه با داوطلبانمان این را درست طراحی کنیم.
- تا حد زیادی مشارکتهای گستردهی انجمن را برای چند ماه آینده متوقف میکنیم تا داوطلبان کلیدیمان بتوانند روی ساخت و توسعهی مسیرها به شکلی که خودشان میخواهند تمرکز کنند (یا اگر فقط میخواهند نفسی تازه کنند، مدتی مرخصی بگیرند!)
امید من این است که با عقب کشیدن و طراحی درست این موضوع، در کنار جمعآوری کمک مالی برای گسترش تیم آموزشیمان، بتوانیم Exercism را به جایی عالی برای داوطلبی تبدیل کنیم و به تضمین آیندهاش کمک کنیم. در این فاصله، این تغییرات باید باعث شود مسیرها بیشتر از سال گذشته بتوانند پیشرفت کنند و رشد کنند و نگهدارندگانمان دیگر دچار فرسودگی نشوند و در عوض از کار روی Exercism احساس شادتری، انرژی بیشتری و ارتباط بیشتری داشته باشند.
تغییرات ملموس
سه تغییر ملموس در دست اجرا داریم.
از فروم استفاده کنید، نه از GitHub Issues
GitHub را کاملاً آزاد میکنیم تا نگهدارندگانمان بتوانند روی ایشوهایی کار کنند که خودشان میخواهند به آنها برسند. تعداد زیادی از ایشوهایی را که پیشتر برای کار انجمن ساخته بودیم میبندیم (و برچسبی میزنیم تا در آینده در صورت نیاز بهراحتی باز شوند)، در حالی که در بیشتر مخازن اجازهی ایشو یا PR جدید و ناخواسته را نمیدهیم. اگر میخواهید موضوعی را مطرح کنید یا گزارشی بدهید، لطفاً بهجای آن از فروم استفاده کنید. اگر ایشو یا PR ناخواستهای باز کنید، بهطور خودکار بسته میشود و شما را به فروم راهنمایی میکنیم.
توقف مشارکتهای گستردهی انجمن
مسیرها به سه دسته تقسیم میشوند:
- مشارکتهای انجمن در بیشتر مسیرهایی که نگهدارندهی فعال دارند متوقف میشود تا نگهدارندگان بتوانند مستقل باشند یا استراحت کنند. (نگهدارندگان این مسیرها میتوانند درخواست کنند که شرط اجباری یک بازبینی برداشته شود. برای این کار لطفاً در Slack با Erik صحبت کنید.)
- برخی مسیرها که نگهدارندهی فعالشان میخواهد پذیرش مشارکتهای انجمن را ادامه دهد، باز میمانند (اگر نگهدارنده هستید و ترجیح میدهید بهجای حالت (۱) در این حالت قرار بگیرید، لطفاً برای گفتوگو در Slack با Jonathan Middleton تماس بگیرید).
- در مسیرهایی که نگهدارندهی فعالی ندارند، توسعهی مسیر در این دوره عملاً متوقف میشود.
در همهی موارد، من و Erik همچنان پیش از ادغام، PRهای مربوط به مخازن ابزار را بررسی و تأیید میکنیم.
تنها استثنا این است که همچنان PRهای مربوط به رویکردها و مقالهها را میپذیریم و سیاست ادغام خوشبینانه را در کل سازمان اجرا میکنیم؛ سیاستی که هدفش پر کردن یک خط پایه از رویکردها در سراسر Exercism و امکان بهبودهای تدریجی است، با این قواعد:
- اگر کد تمرین را حل کند و از نظر نحوی و معنایی اصطلاحی باشد (یعنی شبیه کد
$LANGبه نظر برسد)، باید ادغام شود. در غیر این صورت، نویسندهی PR باید آن را اصلاح کند. - اگر نگهدارندهای بخواهد در محتوا تغییراتی بدهد (مثلاً توصیهها را بهبود دهد، مواردی را تغییر دهد، یا رویکردهای بهتر، جایگزین یا اصطلاحیتر را برجسته کند)، این کار باید در یک PR بعدی انجام شود.
طراحی نظام تازهای برای داوطلبی
قرار است یک شورای انجمن تشکیل دهیم تا در ادامهی راهمان، چارچوبی پایدار و سالم برای داوطلبی بهطور مشترک طراحی کند؛ چارچوبی که پتانسیل Exercism را آزاد میکند. اگر به آیندهی Exercism متعهد هستید و میخواهید بخشی از این فرایند باشید، لطفاً با Jonathan تماس بگیرید.
این اقدامات را چند ماه آینده ادامه میدهیم. در تمام این دوره همهچیز را در نظر میگیریم و قصد داریم تا ژوئن ۲۰۲۳ تصمیمهای تازهای بگیریم. اگر نظری دارید، لطفاً موضوعی را در فروم باز کنید!
پینوشت: چرا مدل OSS ما شکسته است
مدل تاریخی ما حول مدل OSS ساخته شده است. این مدل بر داوطلبانی تکیه دارد که به Exercism آمدهاند، کار بزرگی در ساخت مسیرها کردهاند و سپس اختیارات نگهدارندگی گرفتهاند تا بتوانند مشارکتهای کاربران گستردهترمان را برای بهبود آنها بپذیرند.
هرچند این روی کاغذ عالی به نظر میرسد، مشکلات مهمی دارد. مهمترینشان این است که کسانی که بیشترین جادو را به Exercism میافزایند، در نهایت وقتی برای کدنویسی یا ساختن Exercism باقی نمیماند، چون وقتشان صرف پاسخ دادن به مشارکتهای انجمن میشود. این تقریباً هیچوقت دلیلی نبوده که نگهدارندگان در آغاز به Exercism علاقهمند شوند و کاری نیست که از آن لذت ببرند. کمی شبیه این است که کسی که عاشق توسعه دادن است، به سرگروهی «ارتقا» پیدا کند و بهجای کدنویسی، افراد را مدیریت کند. ممکن است در آن لحظه ارتقای خوبی به نظر برسد، اما اغلب معلوم میشود که افراد به اندازهی نصف لذتی که از کدنویسی میبرند، از مدیر بودن لذت نمیبرند.
همچنین این مدل بر این فرض تکیه دارد که مجموع مشارکتهای گستردهی انجمن از مشارکت فردی که یک نگهدارنده میتوانست انجام دهد بیشتر است. اما در Exercism تقریباً هیچوقت اینطور نیست. Exercism پیچیده است و آموزش دشوار؛ و این دو با هم مشارکت در Exercism را به کاری پیچیده و دشوار تبدیل میکنند. برای درک اینکه Exercism از نظر فنی چطور کار میکند و رویکردش به آموزش چیست، آموختنیهای زیادی هست؛ به همین دلیل بیشتر مشارکتهای اول، تلاش کسانی است که تازه راهشان را پیدا میکنند. این یعنی مشارکتهای اولیهشان نسبتاً کوچک است، اما همچنین یعنی تقریباً همیشه به کار زیادی برای بازبینی و اصلاح نیاز دارند. این کار برای نگهدارندگان وقتگیر است. در واقع مجموع زمانی که صرف بازبینی میشود (و همچنین تغییر زمینهای که لازم است)، یعنی نگهدارنده معمولاً برای بازبینی PR بیشتر از خودِ انجام آن کار وقت و انرژی میگذارد. البته استثناهایی هم وجود دارد، اما در ۹۹٪ موارد درست است. و اغلب این موضوع برای نگهدارنده دردناکتر هم هست، چون مشکلی که آن PR حل میکند، نزدیک به بالای فهرست اولویتهایش نبوده؛ یعنی کارهایی که میداند واقعاً ضروریاند، در نتیجه انجام نمیشوند.
در نهایت، مدل OSS به این تکیه دارد که مشارکتکنندگان از کارهای کوچک شروع کنند و در نهایت به اندازهای آگاه و پیوسته شوند که بتوانند نگهدارنده شوند. در پروژههای متنباز مثل کتابخانههای نرمافزاری، این نسبتاً خوب کار میکند (مثلاً کسی از یک کتابخانه در محیط عملیاتی استفاده میکند و مدام بهبودهایی به آن اضافه میکند، تا جایی که در نهایت به اندازهی سازندهی اصلی دانش دارد). اما در Exercism این اتفاق رخ نداده است. با وجود ادغام PRهای هزاران مشارکتکننده در ۱۲ ماه گذشته، فقط شمار اندکی از آنها به مشارکتکنندگان پیوسته تبدیل شدهاند و تعداد کمتری هم نگهدارنده شدهاند. این هم باز عمدتاً به دلیل پیچیدگی Exercism است، اما همچنین چون Exercism یک نرمافزار محدود و در خودبسته نیست، حال آنکه این مدل بهطور سنتی در چنین نرمافزارهایی کار میکند.
همهی اینها برای نگهدارندگان بهشدت دلسردکننده و برای Exercism زیانبخش است.
مسیرها متوقف شدهاند و داوطلبان اصلی ما که شوق ساختن داشتند، وقتی کارشان به بازبینی کار دیگران، چانهزنی بر سر اولویتهای رقیب و پاسخ دادن به درخواستهای پیشبینینشده تبدیل شد، تا حد زیادی آن شوق را از دست دادند. در طول ساخت v3، نگهدارندگان میتوانستند نسبتاً مستقل کار کنند، چون کارشان عمدتاً پشت صحنه بود؛ همین به بهرهوری بالایی منجر شد و باعث شد بیشتر افراد واقعاً از مشارکت لذت ببرند. از زمان عرضهی v3، با اینکه بسیاری از داوطلبان همان اندازه وقت به Exercism اختصاص دادهاند، دورهای بسیار کملذتتر و کمبازدهتر بوده است؛ عمدتاً به این دلیل که انرژی زیادی صرف پاسخ دادن به مشارکتها یا ایشوهای دیگران شده است. داوطلبان ما اکنون وقتشان را صرف نقش دروازهبانهای واکنشی میکنند، نه نوآوران، و این خیلی کمجذابتر است.
اینها چالشهایی است که باید حلشان کنیم و چالشهای دشواری هم هستند. باید راهی پیدا کنیم تا کسانی که میخواهند صدها ساعت صرف ساختن مسیرهای زبان Exercism کنند، بتوانند این کار را انجام دهند و عاشق انجامش باشند. باید راهی پیدا کنیم تا اصلاح باگها و مشارکتهای کوچک، بدون نیاز به توجه آن داوطلبان کلیدی، وارد کدبیس ما شوند. و باید راهی پیدا کنیم که داوطلبان تازه را به Exercism جذب کنیم و اگر تصمیم گرفتند به مشارکتهای پیوسته متعهد شوند، از آنها پشتیبانی کنیم. باید بهطور کلی دروازهبانی را کم کنیم و در همان حال بپذیریم کسانی که این همه تلاش برای مسیرها کردهاند، نظرهای قوی و بسیار سنجیدهای دارند. باید مدیریت و ادارهی کل این ساختار داوطلبی را لذتبخش کنیم. و باید مسائل بسیار دیگری را هم حل کنیم. این کار وقتگیر و چالشبرانگیز خواهد بود، اما وقتی از پسش بربیاییم، شگفتانگیز خواهد بود.