آشنایی با چالش‌های شرکت‌های نرم‌افزاری پس از ورود به دنیای اپن‌سورس

آشنایی با چالش‌های شرکت‌های نرم‌افزاری پس از ورود به دنیای اپن‌سورس

امروزه فرهنگ اپن‌سورسی (متن‌باز) جای خود را در صنعت تکنولوژی به‌ خوبی باز کرده است به طوری که تقریباً تمامی شرکت‌های بزرگ فناورانه به استفاده از تکنولوژی‌های اپن‌سورس در محصولات خود روی آورده‌اند و از سوی دیگر نیز بسیاری از این شرکت‌ها در پروژه‌های اپن‌سورس شرکت‌های دیگر نیز مشارکت دارند. در عین‌ حال، همواره تصورات نادرستی در این زمینه وجود دارد که موجب از دست رفتن فرصت‌های بسیاری می‌شود که البته این بدان معنا نیست که رویکرد اپن‌سورس شکست خورده است بلکه گرچه برخی محصولات و پروژه‌ها به صورت اپن‌سورس نوشته شده و در آینده هم این رویکرد ادامه خواهد داشت، اما اغلب شرکت‌ها به مزایای واقعی فرهنگ اپن‌سورس دست پیدا نمی‌کنند چرا که در مورد انتخاب‌های خود درست عمل نمی‌کنند و همین مسئله وجههٔ اپن‌سورس را تاحدودی تحت‌الشعاع قرار داده است.

اولین کسی باشید که به این سؤال پاسخ می‌دهید

اپن‌سورس چیزی بیش از تنها یک مجوز و یا یک ریپازیتوری عمومی گیت‌هاب یا گیت‌لب است. در واقع، اپن‌سورس یک فرهنگ است که اگر با تعهد و درک درست به آن ورود پیدا کنیم، آثار گسترده‌ای در بهبود کسب‌وکارها خواهد داشت. به عبارت دیگر، اگر اپن‌سورس به‌ درستی اجرا شود و همهٔ ارکان شرکت به آن متعهد و پایبند باشند، مسائلی همچون روابط درون سازمانی، مشتریان و حتی رقبا را به‌ طرز مثبتی تحت‌تأثیر خود قرار خواهد داد اما اگر قرار باشد اپن‌سورس تنها به‌ عنوان یکی از ویژگی‌هایی باشد که بالاجبار به یک محصول افزوده شده و مهندسان، برنامه‌نویسان، دولوپرها و به طور کلی تیم تولید محصول خود را مجبور به اجرای آن ببینند، چیزی جز آزردگی دوسویۀ مدیران و اعضای تیم اجرایی را در پی نخواهد داشت!

به طور کلی، در این مقاله به استراتژی‌هایی اشاره خواهیم نمود که در نظر گرفتن آن‌ها، راه را برای شرکت‌ها و دولوپرهایی که به تازگی به عرصۀ اپن‌سورس وارد شده‌اند، هموار خواهد کرد اما پیش از مطالعهٔ ادامهٔ مطلب، توصیه می‌کنیم تا با مراجعه به مقالهٔ اپن ‌سورس چیست؟، کمی بیشتر در مورد این کامیونتی اطلاعات کسب کنید.

اپن‌سورس مسیر است و نَه مقصد!
اپن‌سورس روابط و پویایی کسب‌وکارها را احیا نموده و مشتری‌ها و حتی رقبا را به همکاران شما تبدیل می‌کند. در واقع، وقتی که شرکت‌ها به برتری این رویکرد توسعهٔ نرم‌افزار نسبت به حالتی که خود به‌ تنهایی و با کدهای اختصاصی سعی در پیشرفت دارند پی ببرند، به استفاده از آن راغب‌تر می‌شوند؛ اما نکتۀ مهم در این زمینه این است که اپن‌سورس به خودی خود یک دستاورد نیست بلکه اپن‌سورس رویکرد و روشی است برای پی بردن به علائق مشترک شرکت‌ها و یافتن زمینه‌های همکاری با یکدیگر و کسی از مواهب این فرهنگ کاری بهره می‌برد که این مسیر را قدم‌به‌قدم پیموده باشد.

بسیاری از شرکت‌ها تمایل دارند تا بدون طی این مسیر و به یک‌باره به مقصد برسند و از همین روی خود نرم‌افزاری را تولید نموده و پس از تکمیل و درست اندکی قبل از عرضۀ آن به بازار، رویکردی اپن‌سورسی در پیش می‌گیرند! چنین روشی به ندرت اثربخش بوده و بسیار بعید به نظر می‌رسد که چنین پروژه‌ای مزایای یک پروژۀ اپن‌سورس واقعی را داشته باشد.

گرچه ممکن است کدهای نوشته شده با لایسنس رایگان منتشر شده و در اختیار عموم قرار بگیرند، حتی ممکن است محصول تولید شده واقعاً با اقبال کاربران نیز روبه‌رو شود، اما نمی‌توان انتظار داشت که معجزه‌ای رخ دهد و سایر دولوپرها به سمت پروژه‌ای بیایند که از اپن‌سورس بودن فقط نام آن‌ را یدک می‌کشد (در ارتباط با لایسنس‌های نرم‌افزارهای اپن‌سورس می‌توانید با مراجعه به مقالهٔ بررسی و مقایسهٔ بین انواع مجوزهای اپن‌سورس، اطلاعات بیشتری کسب نمایید.)

بنابراین یک شرکت برای آنکه از مزایای رویکرد اپن‌سورس بهره‌مند شود، باید فرآیند طولانی ایجاد جامعۀ دولوپرها، دعوت از همکاران و شرکت‌هایی با منافع مشترک و کار بر روی نقاط مشترک را طی کند. در حقیقت، این فرآیند زمانی شروع می‌شود که سورس‌کد به معنای واقعی کلمه باز باشد. در یک کلام، ورود به کامیونتی (جامعه) اپن‌سورس در هر مقطعی از روند تولید محصول می‌تواند رخ دهد؛ اما قطعاً نَه در پایان مسیر!

آشنایی با نگرانی‌های رایج شرکت‌ها در مورد اپن‌سورس کردن پروژه‌های خود
اگر بخواهید تا زمان تکمیل پروژه صبر کنید و سپس رویکردی اپن‌سورسی در پیش بگیرید، فرصت را از دست داده و از مزیت اولین بودن بی‌بهره می‌مانید. هم‌زمان با تلاش مخفیانۀ شما برای تولید محصول، رقبای شما در حال ائتلاف، همکاری و سرمایه‌گذاری‌های مشترک هستند و این در حالی است که شما در تلاش هستید تا با همهٔ رقبای خود رقابت کنید در حالی که می‌توانستید با آن‌ها همکار باشید! شرکت‌ها معمولاً سه نگرانی مهم در مورد انتشار اپن‌سورس کدهای خود دارند که عبارتند از:

- ممکن است نیاز باشد تا دولوپرها با روش‌های متناسب با اپن‌سورس هماهنگ شوند و در نتیجه روش‌های توسعۀ فعلی شرکت با اختلال مواجه شود.
- اگر رقبا بدانند که ما چه نقشه‌ها و برنامه‌ریزی‌هایی برای آینده داریم، قدرت بالقوۀ خود را از دست خواهیم داد.
- ما از اینکه بگوییم برنامۀ ما هنوز آماده نیست، خجالت می‌کشیم و ممکن است دولوپرهای ما از اینکه دیگران کدهای تکمیل نشده و ناقص آن‌ها را ببینند، احساس خوبی پیدا نکنند!

البته هیچ‌‌یک از این نگرانی‌ها بی‌پایه و اساس نیست اما اجازه دهید برای روشن‌تر شدن مطلب، ابتدا به ساکن دو مورد اول را مورد بررسی قرار دهیم که به مراتب در میان شرکت‌های فناورانه رایج‌تر هستند.

در رویکرد اپن‌سورس ممکن است به تطابق با متدهای توسعۀ خاص و جدیدی نیاز باشد و همچنین این نگرانی درستی است که با اپن‌سورس کردن پروژه، رقبا اطلاعاتی را از برنامه‌ها و اهداف آیندۀ شما به دست می‌آورند (گاهی‌ اوقات نیز واقعاً شرایطی وجود دارد که این دو مورد را باید در تعیین زمان آغاز رویکرد اپن‌سورس در پروژۀ خود لحاظ نمایید اما این موارد بسیار نادر هستند.)

در هر صورت، اگر عادات و روش‌های تیم توسعۀ شما برای هماهنگ شدن با رویکرد اپن‌سورس نیاز به تغییر دارد، هرچه زودتر اقدام کنید، تغییر آن راحت‌تر خواهد بود و بهتر است در همان مراحل آغازین پروژه تیم خود را آموزش دهید تا متدهای قبلی خود را با رویکردهای خاص کامیونیتی اپن‌سورس ادغام کند.

در مورد نگرانی از اطلاع یافتن رقبا از استراتژی‌های شما، دو نکته را مد نظر داشته باشید؛ نخست اینکه، چه پروژۀ اپن‌سورسی را شروع کنید و چه نکنید، بخش گسترده‌ای از استراتژی شما به خودی‌خود و صرفاً به‌ خاطر ماهیت کسب‌و‌کار شما و مشابهت آن با کسب‌وکار رقبا، برای آن‌ها آشکار است. نکتهٔ بعدی اینکه اگر رقبا با دیدن پروژۀ اپن‌سورس شما رفتار خود را تغییر دهند، یعنی دارند در جهت دلخواه شما حرکت می‌کنند! به‌ عبارت دیگر، وقتی رقبا سیاست‌ها و روش‌های شما را جایگزین سیاست‌ها و روش‌های خود می‌کنند، این بدان معنا است که آ‌ن‌ها به چشم یک لیدر (رهبر) به شما نگاه می‌کنند و در واقع ابتکارعمل در دست شما است.

در مورد خجالت‌زدگی از اینکه دیگران کدهای کامل نشدۀ شما را ببینند، اصلاً نگران نباشید و فقط این کار را انجام دهید و باور داشته باشید که هرچه زودتر این کار را انجام دهید، نگرانی شما کمتر و کمتر می‌شود زیرا همه می‌دانند که هیچ کدی از همان ابتدا کامل و بی‌نقص نیست و اصولاً هیچ‌کس از پروژه‌ای که تازه شروع شده، انتظارات عجیب و غریبی ندارد.

لزوم حمایت لایهٔ مدیریت میانی از رویکرد اپن‌سورس در شرکت‌ها
اپن‌سورس یا از بالا به پایین و یا از پایین به بالا در شرکت‌ها ریشه می‌دواند به طوری که گاهی‌ اوقات مدیران ارشد شرکت‌ها منافع رویکرد اپن‌سورس را تشخیص داده و استراتژی‌های کلان شرکت را با آن هماهنگ می‌کنند، سپس در هر بخشی که فکر می‌کنند موجب پیشرفت شرکت می‌شود از آن استفاده می‌کنند. گاهی‌ اوقات هم مهندسان نرم‌افزار خود به این رویکرد گرایش پیدا کرده و به‌ صورت خودجوش در کار خود از آن بهره می‌برند. اما صرف‌نظر از اینکه این رویکرد چگونه به شرکتی وارد شود، این مدیریت میانی است که بیشترین تأثیر را بر تحقق مزایای اپن‌سورس دارد.

مدیریت میانی مجرایی است که پیام‌های مرتبط با مشکلات و اولویت‌ها را بین سطوح پایین و بالا در شرکت انتقال می‌دهد. در واقع، هنگامی که مدیریت میانی به مزایای اپن‌سورس توجه کند، رویکرد اپن‌سورس به یک فرهنگ سازمانی تبدیل خواهد شد (برای آشنایی بیشتر با این مقوله، می‌توانید به مقالهٔ رفتار سازمانی (Organizational Behavior) چیست؟ مراجعه نمایید.) به طور کلی، مزایای رویکرد اپن‌سورس هنگامی به‌ دست می‌آید که حمایت نَه فقط از بالا و نَه فقط از پایین صورت گیرد؛ بلکه مدیریت میانی شرکت باید از آن پشتیبانی کند که جهت آشنایی بیشتر با اهمیت مدیران میانی، می‌توانید به پُست اهمیت مدیران میانی در موفقیت سازمان‌ها و استارتاپ‌ها مراجعه نمایید.

انتظار مقاومت در برابر این فرهنگ سازمانی را داشته باشید!
رویکرد اپن‌سورس در نهایت سراسر شرکت را فرا گرفته و نه‌ تنها مسائل فنی، بلکه فرهنگ سازمانی آن‌ را تحت‌تأثیر قرار می‌دهد و اگر بخواهید رویکرد اپن‌سورس را تنها در حد کدنویسی نگاه داشته و از گسترش آن به فرهنگ سازمانی جلوگیری کنید، بهرۀ زیادی از مزیت‌های این رویکرد نخواهید برد.

هنگامی که دولوپرهای اپن‌سورس باتجربه با هم کار می‌کنند، از الگوهای مشخصی پیروی می‌کنند؛ مثلاً اینکه همۀ ایشان از مجموعه‌ای از ابزارهای رایج در این روش مانند Version Control Repositories ،Bug Trackers ،Automated Testing Systems و ... استفاده نموده و روش‌های یکسانی را در استفاده از این ابزارها به کار می‌گیرند. سایر افراد، مانند مؤلفین و کپی‌رایترها، نیز روشی مشابه روش تیم کدنویسی را دنبال می‌کنند بدین صورت که ایشان هم برای کار بر روی یک موضوع خاص از ابزارها، روش‌ها و دیدگاه‌های مشترک و مشخصی بهره می‌برند و به این ترتیب کار خود را با یکدیگر هماهنگ می‌کنند. به طور خلاصه، همکاری به‌ صورت اپن‌سورس فقط زیرساخت تکنیکی و فنی شرکت را در بر نگرفته بلکه کل فرآیند انجام کار را شامل می‌شود.

فرهنگ اپن‌سورس بر رفتار و عادات کارکنان نیز تأثیرگذار است. به‌ عنوان مثال، افرادی که به همکاری به‌ صورت اپن‌سورس عادت کرده‌اند، در سایر جنبه‌ها نیز رفتار مشابهی خواهند داشت (مثلاً این افراد زیاد اهل بسته نگاه داشتن درب اتاق خود نیستند، درایوهای مشترک دارند و غیره.) بنابراین از آنجا که جاری شدن رویکرد اپن‌سورس در یک بیزینس نیازمند تغییر دیدگاه همۀ اَرکان شرکت است، عدم پذیرش و مقاومت در برابر آن در شرکت‌هایی که به‌ تازگی به این روش روی آورده‌اند کاملاً طبیعی است.

جامعۀ اپن‌سورس هیچ‌وقت نمی‌تواند جایگزین دولوپرهای شرکت شود
مدیران بعضی از شرکت‌ها به اپن‌سورس به‌ عنوان روشی برای دستیابی به منابع ارزان توسعهٔ نرم‌افزار نگاه می‌کنند و منتظرند تا روزی برسد که بتوانند دولوپرهای اپن‌سورس را جایگزین دولوپرهای شرکت نموده و پروژه‌های دیگری را به دولوپرهای شرکت واگذار نمایند و البته چنین روزی هیچ وقت فرا نمی‌رسد!

کمک‌های جامعۀ اپن‌سورس به پروژه‌های شما واقعاً ارزشمند است و حتی ممکن است بتوانید آن‌ را جایگزین بخش‌هایی از کار تیم توسعهٔ نرم‌افزار شرکت نمایید؛ اما نکتۀ مهمی که در این زمینه نباید مورد غفلت قرار گیرد این است که دولوپرهای اپن‌سورس علائق خود را در نظر می‌گیرند در‌ حالی‌ که دولوپرهای شرکت بر اساس یکسری اولویت‌ پیش می‌روند که مطابق با سیاست‌های کلان کسب‌وکار شما است! درست است که در این حالت شما بیش از گذشته بر روی پروژۀ اپن‌سورس خود سرمایه‌گذاری می‌کنید، اما این موضوع نباید نقش دولوپر‌های شرکت را تحت‌تأثیر قرار داده و آن‌ را کم‌رنگ کند؛ بلکه برعکس، گاهی موفقیت بیشتر در پروژۀ اپن‌سورس نیازمند این است که سرمایه‌گذاری بیشتری بر روی دولوپرهای شرکت خود انجام دهید.

گاهی نیز شرایط طوری تغییر می‌کند که پروژۀ اپن‌سورس خاصی که قبلاً اهمیت زیادی برای شما داشت، اهمیت خود را از دست می‌دهد که در این صورت دیگر نیازی نیست به اندازۀ قبل بر روی آن سرمایه‌گذاری کنید. اصلی وجود دارد با این مضمون که می‌گوید میزان سرمایه‌گذاری بر روی پروژه‌ای اپن‌سورس باید با سودتان از آن پروژه متناسب باشد که به نظر می‌رسد چنین گزاره‌ای نیاز به تفسیر چندانی نداشته باشد چرا که ماهیت آن کاملاً گویا است.

سخن پایانی
هنگامی که پروژۀ اپن‌سورسی را شروع می‌کنید و یا در پروژۀ اپن‌سورس سایر شرکت‌ها مشارکت می‌کنید، این نکته را حتماً به‌ خاطر داشته باشید که اپن‌سورس یک مسیر است؛ مسیری که شرکت باید آن را طی کند، از آن درس بگیرد و تجربیات حاصل از آن‌ را نه‌ تنها در کدنویسی بلکه در تمام جنبه‌ها به‌ کار ببندد و این در حالی است که چنین مسیری مقصد معینی ندارد بلکه هرچه بیشتر در آن پیش بروید و بیشتر سرمایه‌گذاری کنید، منافع بیشتری به‌ دست خواهید آورد.

شما چه تجربه‌ و دیدگاهی در این زمینه دارید و آیا طرفدار رویکرد اپن‌سورس بوده و به آیندهٔ آن امیدوارید؟ آیا این رویکرد، علاوه بر کدنویسی، در سایر جنبه‌های زندگی شما نیز تأثیرگذار بوده است؟ نظرات، دیدگاه‌ها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.

منبع