نرمافزارهای آزاد پیروز شدند. پس از سالها متقاعد کردن مردم به استفاده از نرمافزارهای متن باز، مبارزه با دیکوتومی غلط بین نرمافزارهای آزاد و صنعتی، نرمافزارهای تجاری، و دفاع در برابر سوگیریهای منفی، موقعیت نرمافزارهای آزاد دیگر مورد مناقشه نیست — آنها توسط اکثریت قریب به اتفاق شرکتها در سرتاسر دنیا در حال استفاده هستند، انتخاب پیشفرض در حین انتخاب تکنولوژیها هستند، به اینترنت، کامپیوترهای شخصی ما، تلفنهای همراه، و بیشتر دستگاههایی که روزانه از آنها استفاده میکنیم قدرت میدهند، و توسط شرکتهایی بزرگ و محافظهکاری پذیرفته شدند که تا همین چندین سال قبل مخالف کلی این مفهوم بودند.
اما آیا ما واقعا برای آن آماده بودهایم؟ بیشتر تاریخچه اجتماع نرمافزارهای آزاد به مبارزه برای بقا خلاصه میشود. و ما استراتژیها، متدولوژیها، و نگرشهای روابط عمومیای خلق کردیم که به ما برای این بقا کمک میکردند. اما زمانه تغییر کرده است و اکنون ما با مجموعه مشکلات کاملا متفاوتی مواجهایم که باید رفع شوند.
۹۳٪ — درصد پکیجهای npm که تنها یک نگهدارنده دارند
درک عمومی از سازوکاری که اکوسیستم نرمافزارهای آزاد را حکمرانی میکند نسبتاً قدیمی است. همانطور که بالاتر نیز اشاره شد — دانش ما درباره بنیاد نرمافزارهای اجتماع-بنیان زمانی شکل گرفت که نرمافزارهای آزاد توسط جریانهای اصلی صنعت برنامهنویسی به چشم چیزهای بد و ناخوشایند دیده میشد. سازمانهایی مانند «بنیاد نرمافزارهای آزاد» و گواهینامههایی مانند GPL ریشه در دهههای ۸۰ و ۹۰ میلادی دارند. مقاله اعجابآور «کلیسای جامع و بازار [۱]» که فهم ما را از نرمافزارهای اجتماع-بنیان شکل داد در سال ۱۹۹۹ منتشر شد. در آن زمان اوضاع کاملا متفاوت بود — زمانی که بازار نرمافزار زیر سلطه شرکتهایی مانند IBM، Oracle و Microsoft بود که واضحاً بر علیه ایدههای نرمافزارهای آزاد بودند. و در آن زمان ما نیاز به روشهای متفاوتی برای صحبت در مورد این نرمافزارها داشتیم. تمثیل «بازار» طراحی شد تا دل توسعهدهندگان را بدست بیاورد و به آنها نشان دهد نباید از نرمافزارهای متنباز بترسند. این روش بسیار بسیار خوب عمل کرد. اگرچه نباید در سال ۲۰۱۸ به عنوان روشی برای توضیح اینکه نرمافزارهای آزاد چگونه کار میکنند به کار گرفته شود — ما اکنون با مجموعه جدیدتری از مسائل روبهرو هستیم.
در حالی که بسیاری از ایدههای «کلیسای جامع و بازار» به خوبی پیش رفتند، و هنوز هم برای هر نوعی از توسعه نرمافزار صدق میکنند، امروزه نرمافزارهای آزاد درباره ساخت اجتماعات بزرگ، اعمال قانون «هرچه چشمها بیشتر باشند حفرهها کم عمقترند[۲]»، و یا در اصل پیروی از مدل بازار نیست. بلکه برعکس، با توجه به تمام موفقیتهایی که نرمافزارهای آزاد کسب کردهاند، مدل بازار ناموفق بوده است — تنها ۳٪ از پروژههای محبوب متنباز از چنین مدل توسعهای تبعیت میکنند. البته آن ۳٪ شامل برخی از پروژههای متنباز بسیار محبوب و تاثیرگذار — مانند Rails روی لینوکس — هستند، اما میتوان چنین استدلال کرد که این پروژهها از این مدل در نتیجه موفقیت خود استفاده میکنند، نه برعکس آن. در آخر، هیچ پروژهای به شکل یک اجتماع شروع نمیشود، همواره شخص مسئولی وجود دارد، و اجتماعات دور یک پروژه تنها پس از موفق شدن آن به وجود میآیند.
۲۸ میلیون کاربر — تعداد کاربران ثبتنام شده در گیتهاب[۳]
هیچ شخصی در دهه ۹۰ میلادی نمیتوانست مقیاس موفقیت نرمافزارهای آزاد را پیشبینی کند. تعداد توسعهدهندگانی که در حال توسعه متنباز هستند، تعداد پروژهها، و تعداد کاربرانی که در ۲۰ سال گذشته چندین برابر شدهاند. مدل بازار زمانی خلق شد که درصد بزرگی از کسانی که از نرمافزارهای آزاد استفاده میکردند، خودشان توسعهدهندگان نرمافزارهای آزاد بودند. اما در حال حاضر وضعیت جهان کمی متفاوت است. بیایید کمی این اعداد را مقایسه کنیم:
تعداد دانلودها در دو هفته گذشته:
تعداد کاربران ثبت شده:
تعداد پروژههای فعال:
همانطور که میبینیم، نرمافزارهای آزاد امروزه عظیم، جهانی و محبوب هستند. اما در اینجا دو مسئله مهم وجود دارد. اولین مورد تکهتکه شدن افزایشی اکوسیستم است — خلاف آنچه منفعت بزرگ مدل بازار ارائه میشد، نرمافزار آزاد امروزی درباره ساخت نقطه تمرکزهای کانونی برای کامیونیتی نیست. ما به تعداد کافی «جفت چشمهای ناظر[۴]» نداریم، در عوض همه ما به پروژههایی اتکا کردهایم که اکثرا دارای یک نگهدارنده و یک الی دو نفر مشارکت کننده هستند. دومین مساله این است که رشد تعداد کابران منجر به رشد متناسب تعداد مشارکتکنندگان نشده است. و چیزی که مهمتر است این است که رشد تعداد مشارکتکنندگان نیز به رشد متناسب تعداد نگهدارندگان پروژهها نیافزوده است — این موجب ایجاد فشار بیشتر و بیشتر روی بخشهای کانونی جوامع ما میشود که مساله بزرگی است.
«هر چه موفقتر باشید، بیشتر توسط اعلانهای[۵] گیتهاب مجازات میشوید» — نگهدارنده متنباز بودن چه حسی دارد؟
نگهدارندگان نقاط کانونی اجتماعات هر پروژه متنبازی هستند. آنها نهتنها در اغلب مواقع توسعهدهندگان اصلی پشت پروژه هستند، بلکه مسئولیتهای دیگری هم دارند — باید کاربران را شاد نگه دارند، باید به مشارکتکنندگان رسیدگی کنند و یک جریان کار خوب را که به آنها قابلیت مشارکت میدهد ایجاد کنند، باید به کسانی که برای اولین بار است مشارکت میکنند راهنمایی بدهند، باید PR[۶] ها را بررسی کنند، به انتشارها رسیدگی کنند، و سو و جهت کلی پروژه را حفظ کنند.
«وضعیت فعلی — هر وقت که اعلانات[۵] گیتهابمو باز میکنم، افسرده و مضطرب میشم. برنامهنویسی خیلی فانه!»
با این حال، ما واقعا نگهدارندههای جدیدی دریافت نمیکنیم. تعداد کاربران بسیار سریع رشد میکند، تعداد توسعهدهندگان رشد میکند — و با اینکه این دو چیز بسیار عالی هستند، اما فشار زیادی را روی نگهدارندگان پروژهها ایجاد میکنند. و تمثیل «بازار» نیز اینجا بخشی از مشکل است — ما انتظار داریم که همواره شخصی پیش قدم شود، انتظار داریم که مشارکت کنندگان بیشتر و بیشتر درگیر پروژه شوند. اما واقعیت متفاوت است — نصف مشارکتکنندگان تنها یک بار مشارکت میکنند، و چیزی نزدیک به ۲٪ از کامیتها را تشکیل میدهند. و هر مشارکتی کار اضافهای را بردوش نگهدارنده اضافه میکند: یک PR جدید برای بررسی، و کد اضافهتری برای نگهداری است. البته که هر مشارکتی ارزشمند است و از آن استقبال میشود، اما در حالت کلی اجتماعات نرمافزار آزاد دارای مشکل جدی «دومین مشارکت» است — ما کار و تاکید زیادی برای بهینهبودن اولین تجربه مشارکت میکنیم — اما متاسفانه این منجر به ایجاد اعضایی که به طور طولانی با پروژه همراه باشند نمیشود.
$۱۴۳,۰۰۰,۰۰۰ — مقدار تخمین زده شده از ارزش نرمافزار متنباز در خرید یک بیلیون دلاری Instagram
جنبش نرمافزارهای آزاد زمانی شکل گرفت که بیشتر نرمافزارهای جریان اصلی[۷] انحصاری بودند، خیلی استفاده نمیشدند، و هیچ تجارتی برپایه آنها شکل نگرفته بود. اما امروزه، نرمافزارهای متنباز در همهجا دیده میشوند — به اینترنت، سیستمعاملها، و محصولات و نرمافزارهایی که روزانه از آن استفاده میکنیم قدرت میدهند. تصور ساخت نرمافزارهای جدید بدون استفاده کردن از هیچ نرمافزار متنبازی بسیار سخت است و نرمافزارهای متنباز توسط بزرگترین و محافظهکارترین شرکتهای جهان در انتخاب تکنولوژی نیز استفاده میشوند. ۱۰۰٪ از ۵۰۰ شرکت برتر Fortune از npm استفاده میکنند.
با این حال، حتی بعضی از محبوبترین پروژههای متنباز نیز در حال تقلا برای دریافت هرگونه بودجه، و ساخت هرگونه معنایی از پایداری هستند. اما ما به ساخت تجارت با استفاده از آن ابزارها و کتابخانهها ادامه میدهیم. میتوان امیدوار بود که در آینده به نرمافزارهای متنباز به عنوان زیرساختهای دیجیتال فکر کنیم — که در این حالت، دقیقا مانند زیرساختهای معمولی، نیاز به بودجههای مداوم برای عملکرد مناسب خود دارند.
«دقیقا همانند زیرساختهای فیزیکی، زیرساختهای دیجیتال نیز نیاز به تعمیر و نگهداری مداوم دارند.» - جادهها و پلها: کارهای دیده نشده پشت زیرساختهای دیجیتال ما
احتمالا برای حل برخی از آن مشکلات نیازداریم تا روشی که با آن درباره نرمافزارهای متنباز صحبت میکنیم را تغییر دهیم — برای متقاعد کردن مدیرانمان به جای اینکه بگوییم باید در متنباز مشارکت کنیم چون رفتار «خوبی» است، یا چون «روحیه» تیم را افزایش میدهد باید با اصطلاحات تجاری صحبت کنیم — ریسک و فرصت. مشارکت کردن در پروژهها ریسک پروژههای ما را به عنوان یک تجارت کاهش میدهد — ریسک اینکه نگهدارنده پروژه از پروژه خسته شود و ما با یک پروژه بدون نگهدارنده مواجه شویم را کاهش میدهد، ریسک نیازمند شدن به سایر افراد را در صورتی که در پروژه با مشکلی مواجه شویم را کاهش میدهد. مشارکت در پروژه همچنین یک فرصت است — ما میتوانیم پروژه را شکل دهیم، قابلیتهای جدیدی به آن اضافه کنیم که ما را قادر میسازد تا راه حل تجاری بهتری داشته باشیم.
و ارزش جالب دیگر مشارکت در نرمافزارهای آزاد، اهمیت خالص آن در بازاریابی است — مخصوصا اگر محصول شما یک جامعه فنی را هدف قرار میدهد. ما اکنون در عصر جنبش روابط توسعهدهندگان با یکدیگر زندگی میکنیم، جایی که هر شرکتی که در حال ساخت پروژههای نرمافزاری برای توسعهدهندگان است منابع زیادی را برای تبلیغات صرف میکند. مشارکت در متنباز یکی از بهترین روشهای تبلیغات است. و حتی اگر تجارت شما در حال ساخت ابزارهایی برای توسعهدهندگان نیست، جذب توسعهدهندگان با استعداد را برای شما راحتتر میکند.
من نمیدانم چطور میتوان مشکلات جهان فعلی نرمافزارهای آزاد را رفع کرد. اما کاملا آشکار است که نرمافزارهای آزاد نیاز به تکامل دارند — ما نیاز به تعاریف جدید، راه حلهای جدید و رهبرانی جدید برای جنبشی داریم که همین الان هم جهان را تغییر دادهاند. نرمافزارهای آزاد امروزه با مجموعه مشکلاتی بسیار متفاوتتر از ۲۰ سال گذشته دست و پنجه نرم میکنند، بنابراین استفاده از تمثیلهایی که ۲۰ سال قبل به وجود آمدهاند ممکن است مسیر رو به جلو نباشد. و من معتقدم که ما باید هرچه سریعتر آن راهحل ها را پیدا کنیم... و یا معلوم میشود که ما قصرهای باشکوه خود را روی شن ساخته ایم.
این پست انطباقی از ارائه «چالشهای پس از جهان متنباز» من است که در رویدادهای مختلفی ارائه کردهام. اگر دوست دارید که در کنفرانس و شرکت شما درباره نرمافزارهای متنباز صحبتی داشته باشم، میتوانید با خیال راحت از طریق این ایمیل با من در تماس باشید: krzysztof_cieslak@windowslive.com
این پست و ارائه آن هر دو به شدت تاثیر گرفته از کار نادیا اقبال هستند.
[۱]: The Cathedral and the Bazaar
[۲]: قانون لینوس. به عبارتی دیگر: «هرچه آزمایشکنندههای برنامه و برنامهنویسهای تیم نرمافزاری بیشتر باشند، تقریباً هر مشکلی سریع شناخته خواهد شد و اصلاح آن برای یک نفر مشخص و روشن خواهد بود.»
[۳]: این آمار مربوط به سال انتشار این پست یعنی سال ۲۰۱۸ است
[۴]: منظور چشمهای ناظر قانون لینوس است
[۵]: Notifications
[۶]: Pull Request, aka Merge Request
[۷]: Mainstram Software