Uploaded avatar of iHiD

আমাদের মেইনটেইনারদের একটু বিরতি

@iHiD
প্রায় 4 বছর আগে

গুরুত্বপূর্ণ: এই তথ্যটি এখন পুরোনো হয়ে গেছে। সর্বশেষ তথ্যের জন্য আমাদের নতুন ব্লগ পোস্টটি দেখুন।


TL;DR; আমরা কয়েক মাস আমাদের স্বেচ্ছাসেবক মডেলটি নতুন করে সাজাতে যাচ্ছি এবং আমাদের প্রধান স্বেচ্ছাসেবকদের কমিউনিটি কন্ট্রিবিউশন রিভিউ করার কাজ থেকে কিছুটা বিরতি দিচ্ছি। আপনি যদি শুধু শেখার বা মেন্টর করার জন্য Exercism ব্যবহার করেন, তাহলে এখানে এমন কিছু নেই যা আপনার জানা দরকার (তবে আগ্রহ থাকলে পড়ে ফেলুন!)। আপনি যদি কোনো ট্র্যাকের মেইনটেইনার হন, Exercism-এ কন্ট্রিবিউট করতে চান, বা কোনো বাগ/সমস্যা জানাতে চান, তাহলে এটাকে অপরিহার্য পড়া বলে ধরে নিন 🙂


গত ৬ মাসে আমরা Exercism-এর ভবিষ্যৎ নিয়ে অনেক ভেবেছি, কল্পনা করেছি প্রতিটি ভাষার ট্র্যাক কীভাবে সবচেয়ে ভালো হতে পারে। এখন পর্যন্ত আমরা যা গড়ে তুলেছি তা নিয়ে আমরা অবিশ্বাস্য রকমের গর্বিত। আমাদের কমিউনিটি যে ৮৫,০০০ টেস্টিমোনিয়াল দিয়েছে, তা-ই বলে দেয় ভাষার ট্র্যাক গড়ে তোলা এবং এত শিক্ষার্থীকে মেন্টরিং করার অসাধারণ কাজটি আমাদের কমিউনিটি করেছে। সবচেয়ে বড় কথা, যা সম্ভব তার সবটা আমরা এখনো ছুঁতেই পারিনি বলে আমরা মনে করি। Exercism কী হতে পারে তা নিয়ে আমাদের বিশাল পরিকল্পনা, আশা আর উত্তেজনা আছে। কিন্তু সেগুলো পূরণ করতে হলে প্রথমে আমাদের এমন কিছু মৌলিক সমস্যার সমাধান করতে হবে, যা এখনো পৃষ্ঠের নিচে লুকিয়ে আছে।

এর মধ্যে সবচেয়ে বড় হলো, আমাদের স্বেচ্ছাসেবক কমিউনিটিকে সুস্থ ও টেকসইভাবে বড় করার চ্যালেঞ্জটির সমাধান করা দরকার। Exercism গড়ে উঠেছে শত শত নিবেদিত স্বেচ্ছাসেবকের কাঁধে, কিন্তু তাঁদের অনেক বড় একটা অংশ এখন বার্নআউট বোধ করছেন এবং এর ফলে অনেকেই চলে গেছেন। এর পেছনে হাজারো কারণ আছে, কিছু সরাসরি Exercism-এর সাথে সম্পর্কিত, কিছু জীবনের সময়ের চাপের কারণে, আর কিছু এখন পৃথিবীতে যা যা ঘটছে তার প্রেক্ষাপটে। কিন্তু এটা আমাদের কাছে স্পষ্ট হয়ে গেছে যে আমাদের একসাথে প্ল্যাটফর্মটি গড়ে তোলার একটি ভালো উপায় ডিজাইন ও বিকশিত করতে হবে।

আমরা ঐতিহাসিকভাবে Exercism গড়ে তোলার চেষ্টা করেছি ওপেন সোর্স সফটওয়্যার (OSS) মডেলে, যেখানে মেইনটেইনাররা বৃহত্তর কমিউনিটি থেকে আসা কন্ট্রিবিউশন রিভিউ করেন। এতে আমাদের অনেক সমস্যা হয়েছে এবং মেইনটেইনার ও কন্ট্রিবিউটর উভয়ের মধ্যেই হতাশা তৈরি হয়েছে। বিস্তারিত চাইলে নিচে আমি এই নিয়ে আরও আলোচনা করেছি, তবে TL;DR; হলো এই যে আমাদের প্রধান স্বেচ্ছাসেবকরা এখন নতুন কিছু সৃষ্টি করার বদলে প্রতিক্রিয়াশীল গেটকিপার হিসেবে সময় কাটান। এটা তাঁদের জন্য অনেক কম আনন্দদায়ক, আর এর মানে হলো ওই মানুষগুলো আগে প্ল্যাটফর্মে যে জাদু নিয়ে এসেছিলেন, তা Exercism হারিয়ে ফেলছে।

এটা ঠিক করতে আমাদের দুটি কাজ করতে হবে:

  1. আমাদের স্বেচ্ছাসেবার একটি নতুন ব্যবস্থা ডিজাইন করতে হবে যা প্রচলিত OSS মডেলের চেয়ে Exercism-এর জন্য বেশি উপযোগী। এখন পর্যন্ত এটা করার চেষ্টায় আমরা যথেষ্ট শক্তি ব্যয় করেছি, কিন্তু ব্যর্থ হয়েছি। তাই আগামী কয়েক মাস আমরা কিছুটা সময় নিয়ে আমাদের স্বেচ্ছাসেবকদের সাথে কাজ করে এটা ঠিকভাবে ডিজাইন করব।
  2. আগামী কয়েক মাস আমরা বৃহত্তর কমিউনিটির কন্ট্রিবিউশন অনেকটা থামিয়ে রাখব, যাতে আমাদের প্রধান স্বেচ্ছাসেবকরা নিজেদের ইচ্ছেমতো ট্র্যাক গড়ে তোলা ও বিকশিত করার দিকে মনোযোগ দিতে পারেন (আর যদি শুধু একটু বিশ্রাম নিতে চান, তাহলে ছুটি নিতে পারেন!)

আমার আশা, একটু পিছিয়ে দাঁড়িয়ে এটা সত্যিকারভাবে ভালোভাবে ডিজাইন করার মাধ্যমে, আর আমাদের শিক্ষা টিম বড় করার জন্য তহবিল সংগ্রহের পাশাপাশি, আমরা Exercism-কে স্বেচ্ছাসেবার জন্য এক দুর্দান্ত জায়গা বানাতে পারব এবং এর ভবিষ্যৎ সুরক্ষিত করতে সাহায্য করতে পারব। এদিকে, এই পরিবর্তনগুলোর ফলে ট্র্যাকগুলো গত বছরের চেয়ে বেশি উন্নত ও বড় হতে পারবে এবং আমাদের মেইনটেইনাররা আর বার্নআউট না হয়ে বরং Exercism-এ কাজ করে আরও খুশি, আরও সক্রিয় এবং আরও সংযুক্ত বোধ করবেন।

দৃশ্যমান পরিবর্তন

আমরা তিনটি দৃশ্যমান পরিবর্তন আনছি।

GitHub Issues নয়, ফোরাম ব্যবহার করুন

আমরা GitHub সম্পূর্ণভাবে আমাদের মেইনটেইনারদের জন্য ছেড়ে দেব, যাতে তাঁরা নিজেরা যে ইস্যুগুলো নিয়ে কাজ করতে চান সেগুলোতে কাজ করতে পারেন। আমরা আগে কমিউনিটির কাজ করার জন্য যে বিপুল সংখ্যক ইস্যু তৈরি করেছিলাম সেগুলো বন্ধ করে দেব (এবং একটি ট্যাগ যোগ করব, যাতে ভবিষ্যতে চাইলে সহজেই আবার খোলা যায়), আর একইসাথে বেশিরভাগ রিপোজিটরিতে নতুন কোনো অযাচিত ইস্যু বা PR গ্রহণ করব না। কিছু আলোচনা করতে বা জানাতে চাইলে অনুগ্রহ করে বদলে ফোরাম ব্যবহার করুন। আপনি যদি অযাচিত কোনো ইস্যু বা PR খোলেন, তা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে এবং আপনাকে ফোরামের দিকে পাঠানো হবে।

বৃহত্তর কমিউনিটি কন্ট্রিবিউশন থামিয়ে রাখা

ট্র্যাকগুলোকে তিনটি শ্রেণিতে ভাগ করা হবে:

  • সক্রিয় মেইনটেইনার থাকা বেশিরভাগ ট্র্যাকে কমিউনিটি কন্ট্রিবিউশন থামিয়ে রাখা হবে, যাতে মেইনটেইনাররা স্বায়ত্তশাসিতভাবে কাজ করতে পারেন বা একটু বিরতি নিতে পারেন। (এই ট্র্যাকগুলোর মেইনটেইনাররা বাধ্যতামূলক এক-রিভিউ শর্তটি তুলে দেওয়ার অনুরোধ করতে পারেন। এজন্য Slack-এ Erik-এর সাথে কথা বলুন)
  • কিছু ট্র্যাক, যাদের সক্রিয় মেইনটেইনাররা সক্রিয়ভাবে কমিউনিটি কন্ট্রিবিউশন গ্রহণ চালিয়ে যেতে চান, খোলা থাকবে (আপনি যদি মেইনটেইনার হন এবং (1)-এর বদলে এই মোডে যেতে চান, তাহলে আলোচনার জন্য Slack-এ Jonathan Middleton-এর সাথে যোগাযোগ করুন)।
  • যেসব ট্র্যাকে সক্রিয় মেইনটেইনার নেই, সেই ট্র্যাকগুলোর উন্নয়ন কার্যত এই সময়ের জন্য থামিয়ে রাখা হবে।

সব ক্ষেত্রেই, Erik আর আমি মার্জ করার আগে Tooling রিপোজিটরিতে আসা PR-গুলো আগের মতোই নিশ্চিত করে যাচাই করব।

একমাত্র ব্যতিক্রম হলো, আমরা অ্যাপ্রোচ আর আর্টিকেলের জন্য PR গ্রহণ চালিয়ে যাব এবং পুরো org জুড়ে একটি আশাবাদী মার্জ নীতি চালু করব, যার লক্ষ্য হলো Exercism জুড়ে অ্যাপ্রোচের একটি ভিত্তি গড়ে তোলা এবং ধাপে ধাপে উন্নতির সুযোগ দেওয়া। এই নীতির নিয়মগুলো হলো:

  1. কোডটি যদি অনুশীলনীর সমাধান করে এবং সিনট্যাক্স ও সেমান্টিক্স উভয় দিক থেকেই আইডিওম্যাটিক হয় (অর্থাৎ, দেখতে $LANG কোডের মতো লাগে), তাহলে তা মার্জ করা উচিত। না হলে, PR-এর লেখককেই তা ঠিক করতে হবে।
  2. কোনো মেইনটেইনার যদি কনটেন্টে পরিবর্তন আনতে চান (যেমন পরামর্শ উন্নত করা, কিছু ঠিক করা, আরও ভালো বা বিকল্প বা বেশি আইডিওম্যাটিক অ্যাপ্রোচ তুলে ধরা), তাহলে তা একটি follow-up PR-এ করতে হবে।

নতুন স্বেচ্ছাসেবক ব্যবস্থা ডিজাইন করা

আমরা একটি কমিউনিটি বোর্ড গঠন করব, যারা আমাদের ভবিষ্যতের জন্য একটি টেকসই ও সুস্থ স্বেচ্ছাসেবক কাঠামো যৌথভাবে ডিজাইন করবে, যা Exercism-এর সম্ভাবনাকে উন্মুক্ত করবে। আপনি যদি Exercism-এর ভবিষ্যতের প্রতি প্রতিশ্রুতিবদ্ধ হন এবং এই প্রক্রিয়ার অংশ হতে চান, তাহলে অনুগ্রহ করে Jonathan-এর সাথে যোগাযোগ করুন।

আগামী কয়েক মাস আমরা এই পদক্ষেপগুলো নিয়েই এগিয়ে যাব। এই সময়জুড়ে আমরা সব কিছু বিবেচনা করব এবং ২০২৩ সালের জুনের মধ্যে কিছু নতুন সিদ্ধান্ত নেওয়ার পরিকল্পনা করছি। আপনার কোনো মতামত থাকলে, অনুগ্রহ করে ফোরামে একটি টপিক শুরু করুন!

পরিশিষ্ট: কেন আমাদের OSS মডেল ভেঙে পড়েছে

আমাদের ঐতিহাসিক মডেলটি OSS মডেলকে কেন্দ্র করে গড়ে উঠেছিল। এটি নির্ভর করত এমন স্বেচ্ছাসেবকদের উপর, যাঁরা Exercism-এ এসে ট্র্যাক গড়ে তোলার দুর্দান্ত কাজ করেছেন, তারপর মেইনটেইনার বিশেষাধিকার পেয়েছেন, যার মাধ্যমে তাঁরা ট্র্যাকগুলো উন্নত করতে আমাদের বৃহত্তর ব্যবহারকারী কমিউনিটির কন্ট্রিবিউশন গ্রহণ করতে পারেন।

কাগজে-কলমে এটা দারুণ মনে হলেও, এতে কিছু বড় সমস্যা আছে। এর মধ্যে সবচেয়ে বড় সমস্যা হলো, যাঁরা Exercism-এ সবচেয়ে বেশি জাদু যোগ করেন, তাঁদের শেষ পর্যন্ত Exercism-এর জন্য কোড লেখার বা কিছু সৃষ্টি করার কোনো সময়ই থাকে না, কারণ তাঁদের সময় চলে যায় কমিউনিটির কন্ট্রিবিউশনের জবাব দিতে। মেইনটেইনাররা সাধারণত এই কারণে Exercism-এ যুক্ত হননি, আর এটা এমন কাজও নয় যা তাঁরা উপভোগ করেন। এটা অনেকটা এমন, যেন ডেভেলপিং ভালোবাসা একজন মানুষকে "পদোন্নতি" দিয়ে টিম-লিডার বানানো হলো, যেখানে তাঁকে কোড লেখার বদলে মানুষ সামলাতে হয়। সেই মুহূর্তে এটা ভালো পদোন্নতির মতো মনে হতে পারে, কিন্তু প্রায়ই দেখা যায়, মানুষ ম্যানেজার হওয়াটা কোড লেখার অর্ধেকও উপভোগ করেন না।

এটি এই ধারণার উপরও নির্ভর করে যে বৃহত্তর কমিউনিটির সব কন্ট্রিবিউশন মিলিয়ে যে যোগফল হয়, তা একজন নির্দিষ্ট মেইনটেইনার নিজে যতটুকু অবদান রাখতে পারতেন তার চেয়ে বেশি। কিন্তু Exercism-এ প্রায় কখনোই তেমন হয় না। Exercism জটিল, আর শিক্ষাদান কঠিন, আর এই দুটো একসাথে Exercism-এ কন্ট্রিবিউট করাকে একটি জটিল ও কঠিন কাজ বানিয়ে দেয়। Exercism কারিগরিভাবে কীভাবে কাজ করে এবং শিক্ষাদানে তার দৃষ্টিভঙ্গি কী, এই দুই বিষয়ে শেখার ও বোঝার আছে প্রচুর। ফলে বেশিরভাগ প্রথম কন্ট্রিবিউশনে মানুষ কেবল নিজের পথ খুঁজে বের করতে থাকে। এর মানে হলো তাঁদের শুরুর কন্ট্রিবিউশন তুলনামূলকভাবে ছোট, আবার এটাও যে প্রায় সব ক্ষেত্রেই সেগুলো রিভিউ ও ঠিকঠাক করতে অনেক কাজ লাগে। মেইনটেইনারদের জন্য এটি সময়সাপেক্ষ কাজ। আসলে, রিভিউ করতে মোট যে সময় লাগে (তার সাথে প্রয়োজনীয় কনটেক্সট-শিফটিংও), তার মানে হলো মেইনটেইনার সাধারণত নিজে PR-টি বানালে যতটুকু পরিশ্রম লাগত, তার চেয়ে বেশি পরিশ্রম রিভিউ করাতেই করছেন। অবশ্যই এর কিছু ব্যতিক্রম আছে, তবে ৯৯% ক্ষেত্রেই এটা সত্য। আর প্রায়ই এটা মেইনটেইনারের জন্য আরও যন্ত্রণাদায়ক হয়, কারণ PR যে সমস্যাটি সমাধান করে তা তাঁর অগ্রাধিকার তালিকার একেবারে উপরে ছিল না, ফলে তিনি জানেন যে যে কাজগুলো সত্যিই জরুরি, সেগুলো হয়ে ওঠে না।

সবশেষে, OSS মডেলটি এই ধারণার উপর নির্ভর করে যে কন্ট্রিবিউটররা ছোট থেকে শুরু করে শেষে যথেষ্ট জ্ঞানী ও নিয়মিত হয়ে মেইনটেইনার হতে পারবেন। সফটওয়্যার লাইব্রেরির মতো OSS প্রকল্পে এটি তুলনামূলকভাবে ভালো কাজ করে (যেমন, কেউ প্রোডাকশনে একটি লাইব্রেরি ব্যবহার করেন এবং তাতে একের পর এক উন্নতি যোগ করতে থাকেন, শেষে তাঁর জ্ঞান মূল স্রষ্টার সমান হয়ে যায়)। তবে Exercism-এর ক্ষেত্রে এমনটা হয়নি। গত ১২ মাসে হাজার হাজার কন্ট্রিবিউটরের PR মার্জ করা সত্ত্বেও, কেবল হাতে গোনা কয়েকজন নিয়মিত কন্ট্রিবিউটর হয়েছেন এবং আরও কম মানুষ মেইনটেইনার হয়েছেন। এর মূল কারণ আবারও Exercism-এর জটিলতা, কিন্তু আরও একটি কারণ হলো এটি একটি সীমিত পরিসরের সফটওয়্যার নয়, যেখানে এই মডেলটি ঐতিহ্যগতভাবে কাজ করে। এই সব কিছু মেইনটেইনারদের জন্য অত্যন্ত হতাশাজনক এবং Exercism-এর জন্য ক্ষতিকর।

ট্র্যাকগুলো থমকে গেছে, আর যাঁদের গড়ে তোলার প্রতি ভালোবাসা ছিল, সেই মূল স্বেচ্ছাসেবকরা অনেকাংশে সেই ভালোবাসা হারিয়ে ফেলেছেন, কারণ তাঁদের কাজ হয়ে দাঁড়িয়েছে অন্যের কাজ রিভিউ করা, প্রতিযোগী অগ্রাধিকার নিয়ে দরকষাকষি করা, আর অপ্রত্যাশিত অনুরোধের মোকাবিলা করা। v3 তৈরির সময় মেইনটেইনাররা তুলনামূলক স্বায়ত্তশাসন নিয়ে কাজ করতে পারতেন, কারণ তাঁদের কাজ বেশিরভাগই পর্দার আড়ালে ছিল, যা বিশাল উৎপাদনশীলতা এনেছিল এবং বেশিরভাগ মানুষ সত্যিই কন্ট্রিবিউট করা উপভোগ করতেন। v3 চালু হওয়ার পর থেকে, অনেক স্বেচ্ছাসেবক সমান সময় দিলেও, এই সময়টা অনেক কম উপভোগ্য ও কম উৎপাদনশীল হয়েছে, মূলত অন্যের কন্ট্রিবিউশন বা ইস্যুর জবাব দিতে যে বিপুল শক্তি ব্যয় হয়েছে তার কারণে। আমাদের স্বেচ্ছাসেবকরা এখন নতুন কিছু উদ্ভাবনের বদলে প্রতিক্রিয়াশীল গেটকিপার হিসেবে সময় কাটান, আর এটা অনেক কম আনন্দদায়ক।

এই চ্যালেঞ্জগুলোই আমাদের সমাধান করতে হবে, আর এগুলো কঠিন। Exercism-এর ভাষার ট্র্যাক গড়তে যাঁরা শত শত ঘণ্টা দিতে চান, তাঁরা যেন তা করতে পারেন এবং তা করতে ভালোবাসেন, তার একটি উপায় আমাদের খুঁজে বের করতে হবে। আমাদের একটি উপায় খুঁজে বের করতে হবে যাতে বাগ ফিক্স আর ছোট কন্ট্রিবিউশন ওই প্রধান স্বেচ্ছাসেবকদের মনোযোগ ছাড়াই আমাদের কোডবেসে ঢুকতে পারে। আর আমাদের একটি উপায় খুঁজে বের করতে হবে নতুন স্বেচ্ছাসেবকদের Exercism-এ আকৃষ্ট করার, এবং তাঁরা যদি নিয়মিত কন্ট্রিবিউশনে প্রতিশ্রুতিবদ্ধ হতে চান তাহলে তাঁদের সাপোর্ট দেওয়ার। আমাদের সামগ্রিকভাবে গেটকিপিং কমাতে হবে, একইসাথে এটাও সম্মান করতে হবে যে যাঁরা ট্র্যাকে এত পরিশ্রম ঢেলেছেন, তাঁদের মতামত দৃঢ় এবং খুব ভালোভাবে ভেবে গঠিত। আমাদের পুরো স্বেচ্ছাসেবক ব্যবস্থাটি পরিচালনা ও চালানো আনন্দদায়ক করে তুলতে হবে। আর আমাদের আরও অনেক কিছু সমাধান করতে হবে। এতে সময় লাগবে, আর এটা একটা চ্যালেঞ্জ, কিন্তু আমরা একবার এটা করে দেখাতে পারলে, তা দুর্দান্ত হবে।

23 নভেম্বর 2022 · কাজে লেগেছে?