پس بیایید نگاه دقیقتری به این موضوع داشته باشیم که منبع باز یا همان open source به چه معناست و جوانب مثبت و منفی آن برای کار با پروژههای open source چیست؟
Open Source چیست؟
تیم " open source" در صنعت توسعهنرمافزار ابداع شده است و به چیزی اطلاق میشود که هر کسی بتواند آن را بررسی کرده، اصلاح کند و به اشتراک بگذارد. این روند رویکرد خاصی را برای ایجاد برنامههای کامپیوتری نشان میدهد که به ارزشهای همکاری و توسعه جامعهمحور ارج مینهد.
برای محافطت از کلیه بخشهای درگیر در open source، صاحب پروژه میتواند از لایسنس Creative Commons استفاده کند. مجوز Creative Commons (CC) همه را قادر میسازد تا کارهای خود را به اشتراک گذاشته، از آن استفاده کنند و چیزی را بر روی آن بسازند.
نرمافزار منبع باز معمولا یک محصول نرمافزاری رایگان است، جایی که توسعهدهندگان به سورس کد دسترسی دارند. آنها میتوانند کارایی برنامه را ارتقاء دهند، برخی از ویژگیها را اضافه کرده، و خطاها را برطرف کنند. نمونههایی از این نرمافزارها شامل LibreOffice، Mozilla Firefox و Chromium است.
در عوض، یک نرمافزار اختصاصی وجود دارد که به آن "نرمافزار منبع بسته" (close source) نیز میگویند . سورس کد چنین برنامهای میتواند فقط توسط خود صاحبان کد بررسی شده یا تغییر یابد. برخی از نمونههای نرمافزر اختصاصی شامل برخی از محصولات Microsoft، Adobe یا Apple است.
برخی شرکتها نرمافزار open source را به عنوان یک معیار خوب میشناسند، در حالی که برخی دیگر توسعه نرمافزار close source را ترجیح میدهند. و مطمئنا مدل منبع باز دارای جوانب مثبت و منفی است.
چه چیزی در توسعه نرمافزار منبع باز خوب است؟
مزایای شخصی
اگر بگوییم که توسعهدهندگان منبع باز تمایل به نوع دوستی و کمک به دیگران دارند، بسیاری از افرادی که این مقاله را میخوانند ممکن است خندیده و به این گفته باور نداشته باشند. اما این انگیزه ذاتی اصلیترین دلیلی است که بیشتر مردم بر روی پروژههای منبع باز کار میکنند.
اهمیت مزایای شخصی را دست کم نگیرید. این افراد احساس مفید بودن و خودکفایی دارند.
شناخت جامعه
دانشمندان و پزشکان با نوشتن مقالات علمی و شرکت در کنفرانسهای علمی، تجربه خود را به اشتراک میگذارند. طراحان UI/UX تجربه خود را در Behance و Dribbble به اشتراک میگذارند. نویسندگان کتابهای خود را چاپ کرده یا آنها را از طریق پلتفرمهای آنلاین به اشتراک میگذارند. پس چرا توسعهدهندگان این کار را نکنند؟ آنها میخواهند فرصتهای خود را برای به رسمیت شناخته شدن از دست ندهند.
هنگام کار یا اجرای پروژههای منبع باز شما میتوانید این به رسمیت شناخته شدن را به چند طریق از جامعه توسعهدهندگان دریافت کنید، مثل ایجاد پروفایل عالی گیتهاب و شرکت در برنامههایی مثل Hacktoberfest.
تبلیغات
اگر شما یا شرکتتان به طور فعالانه در جامعه منبع باز شرکت میکنید، میتوانید شهرت خوبی کسب کنید. به این ترتیب اگر شما توسعهدهندهای هستید که برای خود کار میکنید، پیدا کردن شغلی به عنوان فریلنسر یا کارمند تمام وقت میتواند برای شما آسانتر باشد. اگر نماینده یک شرکت توسعه نرمافزار هستید، پیدا کردن افرادی که مایل هستند برای شما کار کنند یا مشتریانی که مایل به درخواست خدمات حرفهای به شما هستند آسانتر میشود. از این رو توسعه نرمافزار منبع باز فرصت تبلیغاتی خوبی ایجاد میکند.
حس ارزش
نیازی به پنهان کردن حقیقت نیست. فرسودگی شغلی در کار توسعهدهندگان وجود دارد. اگر صاحب شرکت هستید، با ایجاد انگیزه در کارمندانتان برای مشارکت در توسعه منبع باز، به آنها نشان میدهید که کارشان دارای ارزش است. آنها نه تنها بر روی پروژههای تجاری شما کار میکنند، بلکه با کار بر روی پروژههای منبع باز، ارزشی برای جامعه گسترده توسعهدهندگان فراهم میکنند.
کیفیت نرمافزار
کد منبع باز اغلب از کیفیت بالاتری برخوردار است. یک قطعه از نرمافزار ایجادشده توسط تیمی از توسعهدهندگان میتواند از کیفیت پایینتری نسبت به توسعه توسط هزاران نفر از توسعهدهندگان با تجربه در استراتژیهای مختلف در سراسر جهان برخوردار باشد. همچنین مشکلات موجود در نرمافزار منبع باز خیلی سریعتر شناسایی میشوند، زیرا کد به طور مداوم توسط چندین توسعهدهنده مورد بررسی قرار میگیرد.
امنیت دادهها
برای توسعه برنامه خوب است از نرمافزار منبع باز استفاده کنید زیرا امنیت بیشتری دارد. جامعه نرمافزاری به سرعت نقصهای امنیتی را پیدا کرده و گزارش میدهد که معمولا بلافاصله صاحب نرم افزار آن را برطرف میکند.
اگر یک نقص امنیتی در محصول نرمافزاری اختصاصی وجود داشته باشد، هیچ کس متوجه آن نمیشود تا زمانی که کسی قربانی این تهدید امنیتی شود.
همچنین محصولات منبع باز نمیتوانند عمدا از دادههای کاربران همانند برخی شرکتهای نرمافزاری اختصاصی سوءاستفاده کنند. جامعه متوجه این سوءاستفاده میشود، در این صورت اعتبار نرمافزار و صاحب آن خراب میشود.
قابلیت سفارشیسازی
توسعه نرمافزار منبع باز معمولا به این معناست که شما در حال توسعه نرمافزاری هستید که به راحتی قابل سفارشیسازی است. از آنجا که سورس کد این محصول باز است، یک توسعهدهنده میتواند به راحتی تغییراتی را در عملکرد رابط اضافه کند.
چه چیزی در توسعه نرمافزار منبع باز خوب نیست؟
سوءتفاهمها و عدم برقراری ارتباط مناسب
میتوانید انتظار داشته باشید محصولات خود را بهبود بخشید یا در موضوعی کمککننده باشید، اما ممکن است مجبور شوید با افراد مخلتفی برخورد داشته باشید. بعضیها ممکن است از شما انتظار داشته باشند به درخواستهای آنان پاسخ دهید. برخی دیگر ممکن است PRها را برای بهبود محصول شما باز کنند، اما شما باید قوانینی را درمورد چگونگی موارد و نحوه ادغام آنها توضیح دهید.
در پایان، هیچ تضمینی وجود ندارد که کمک جامعه باعث پایین آمدن کیفیت نشود. به همین دلیل بسیار امکان دارد شما در نهایت کد کسی را ریفکتور کنید و با ادغام نکردن این تغییرات مردم را ناامید کنید.
تهدید برای ارزش اصلی تجارت
شما هرگز نباید چیزی را که دارای ارزش اصلی در تجارتتان است را با توسعه منبع باز انجام دهید. اگر یک راز تجاری در کار شما وجود دارد، برای ایده یا راهی که پیادهسازی تجارت شما را منحصربهفرد ساخته است نباید از منبع باز استفاده کنید تا در دسترس رقبا قرار نگیرد. با این حال، اگر ایده یا ابزاری دارید که میتواند بدون هیچ ضرر و زیانی به تجارتتان توسط عموم استفاده شود، برای توسعه آنها از منبع باز استفاد کنید.
نتیجهگیری
پروژههای منبع باز فواید بسیاری دارد که میتواند به شما کمکهای زیادی کند. شما میتوانید در پروژههای منبع باز همکاری کنید. برای این کار ابتدا ریپازیتوریهای گیتهاب خود را برای عموم باز کنید و آنها را از طریق رسانههای اجتماعی، بلاگ یا انجمنهای توسعهدهندگان به دیگران معرفی کنید.
منبع باز باعث رشد سریع شما به عنوان توسعهدهنده میشود و نتیجه سودمندی را برای کل جامعه به ارمغان میآورد. در عین حال، سعی نکنید تا به چنین جامعه باارزشی که این همه پروژه منبع باز عالی را در اختیار شما میگذارد آسیب بزنید.
نظرات کاربران در رابطه با این دوره