دوشنبه, ۱ بهمن, ۱۴۰۳ / 20 January, 2025
ارزیابی نرم افزارهای کدباز
همچنان که تعداد پروژههای نرمافزاری کدباز (OSS) افزایش مییابد، آلترناتیوهای OSS بیشتر و بیشتر در ارزیابیهای نرمافزاری سازمانهای بزرگ پدیدار میگردند. به هر حال، ارزیابی OSS به شکلی کارآمد نیازمند آن است که متخصصان IT در مقایسه با نرمافزارهای تجاری از معیارهای متفاوتی استفاده کنند. سازمانهایی که این کار را انجام دادهاند تصمیمات بهتری در زمینه کدباز اتخاذ نمودهاند.
در طی سالها، مدیران ارشد اطلاعات و معماران سیستم در پیمودن دنیای نرمافزار تجاری با استفاده از تکنیکهای ارزیابی متمرکز بر مشخصههای محصول، سلامت فروشنده، سهم بازار و نیازهای تجاری خبره گردیدهاند. یک صنعت ۲ بیلیون دلاری از شرکتهای پژوهشی در طی ۴۰ سال گذشته برای پشتیبانی گزینش تکنولوژی پدیدار گردیده است. به هر حال، این تکنیکها و ابزارها برای انجام انتخابهای آگاهانه در زمینه نرمافزار کدباز کافی نیستند: کدام پروژههای کدباز برای حل نمودن مشکلات خاص بهتر هستند و کدامها پویا و رو به رشد میباشند، هم برای کاربران نهایی و هم برای توسعهدهندگان جدید.
فرایند سنتی ارزیابی نرمافزار تجاری شامل مطالعه گزارشهای تحلیلگر، برپایی معیارهای انتخاب مشخصه/تابع، ملاقات با فروشندگان و چانه زدن بر سر قیمت مجوز و پشتیبانی میباشد. یک ارزیابی کامل به معنی بحث با تعدادی از مشتریان معرف (reference) و ارزیابی قدرت مالی فروشنده است. تحلیلگران یا تیم فروش فروشنده معمولا اغلب اطلاعات مورد نیاز یک خریدار برای ارزیابی یک محصول را فراهم مینمایند.
انتخاب نرمافزار OSS مناسب، نیازمند کار بیشتر و نوع متفاوتی از ارزیابی است. در حال حاضر پژوهش تحلیلگر بر روی پروژههای OSS ضعیف است و تنها بر روی پروژههای بزرگتر از قبیل Jboss و MySQL متمرکز میباشد. پروژههای OSS دارای تیمهای بازاریابی که demo های موجود بر روی سایت را به شما ارائه دهند و مشخصههای پروژه را به شما معرفی نمایند، نیستند. موردپژوهیهای محصولات از لحاظ کاربرد محصول و رجوع به مشتریانی که سودمندی آنها را مورد تایید قرار میدهند به ندرت پیش میآید.
اگر چه شما برای ارزیابی یک پروژه OSS نیازمند انجام کار بیشتری هستید، اما نسبت به آنچه که میتوانید درباره نرمافزار تجاری انجام دهید شما در واقع قادرید یک ارزیابی عمیقتر صورت بدهید. در اینجا معیارهای اساسی که ما نقش آنها را در انتخاب انواع OSS برای استفاده کلیدی یافتیم مشاهده میکنید.
● قابلیتهای پروژه
درک مشخصههای یک پروژه کدباز معمولا ساده است. در اغلب موارد، تیمهای پروژه آن دسته از مشخصههایی که وجود دارند و آن گروه که موجود نیستند را آشکارا از یکدیگر متمایز میسازند. ادعاهای اغراقآمیز به سادگی قابل تشخیص هستند و تنها به پرسشهای پشتیبانی منجر میگردند.
بنابراین تیمهای پروژه OSS معمولا در مورد چیزهایی که به درستی کار میکنند و مواردی که کار نمیکنند در خط مقدم قرار دارند. آنها همچنین خواهان همکاری افراد برای افزودن یا بهبود بخشیدن مشخصههایی که در حال حاضر تحت گسترش قرار دارند، هستند.
لیست پستی یا mail list کاربران مکان بسیار خوبی برای یافتن اطلاعات در مورد نحوهی استفاده سایر افراد از نرمافزار است. اگر شما در یک تابلوی پیام (message board) یا لیست کاربر به دنبال یک توصیه هستید، حتما در مورد اندازه و حوزه نیازمندیهایتان به سایرین توضیح دهید.
در هر صورت، مهمتر از مشخصههای پروژه، یافتن پروژهای است که سعی در حل نمودن همان مشکل شما دارد. پروژهها در طی زمان رشد مینمایند، درست مانند محصولات. شما خواهان انتخاب پروژهای هستید که در جهاتی مشابه با نیازهای فعلی و آیندهی شما رشد کند.
بسیاری از تیمهای پروژه دارای راهکاری هستند که مشخصههایی را که برای عرضههای آینده در نظر گرفته شدهاند طرحریزی مینماید. راهکارها جهت یک پروژه را به خوبی مشخص مینمایند، اما در مورد زمانبندی آن لزوما این گونه نیست. شما همچنین باید در لیستهای پستی به دنبال آن نوع از پیشنهاداتی که مورد موافقت قرار گرفته و رد شدهاند باشید. مباحثات تیم توسعه در مورد بسطهای پیشنهادی یک روش عالی برای درک سمت و سوی یک پروژه است.
اگر مشخصههای یک پروژه OSS پاسخگوی نیازهای شما نباشد، میزان تلاش لازم برای پیشرفت یا بسط پروژه به منظور پوشش دادن نیازهایتان را مد نظر قرار دهید. اما اطمینان حاصل نمایید که توسعههای شما همسو با جهت پروژه باشند. استفاده از نرمافزار به شکلی متفاوت از اغلب کاربران دیگر میتواند به معنی مشکلات سازگاری در آینده باشد.
● یکپارچگی
شرکتهای نرمافزاری غالبا نرمافزارهای واسطی (third-party) که با نرمافزارهای خودشان یکپارچه میگردند را لیست میکنند. همچنین، بسیاری از پروژههای OSS به خوبی با سایر نرمافزارهای OSS و تجاری یکپارچه میگردند. یک شاخص خوب برای تعیین این که چگونه یک پروژه OSS میتواند با سایر نرمافزارها یکپارچه گردد، یافتن پروژههای دیگری است که تا به حال با آن یکپارچه گردیدهاند.
شما همچنین باید به وابستگیهای پروژه دقت کنید. ممکن است وابستگیها مستند شده باشند یا ممکن است برای یافتن آنها نیازمند تحقیق بر روی اسکریپتهای ساخت باشید. یک پروژه که سایر پروژهها را به خوبی مورد استفاده قرار میدهد احتمالا با در نظر گرفتن استفاده مجدد و یکپارچگی، معماری شده است.
● تعویضپذیری
یک مزیت عمدهی OSS کاهش محدودیت فروشنده است. همچنان که پروژههای OSS را مورد بررسی قرار میدهید، میزان محدودیتی را که آنها به وجود میآورند مد نظر قرار دهید. به دنبال پروژههایی باشید که استانداردهای صنعتی را همانند نرمافزار تجاری پیادهسازی میکنند.
اطمینان یابید که دادهها به شیوههای دسترسپذیر ذخیره و مبادله شوند، و از زبانهای برنامهنویسی منحصر به فرد اجتناب نمایید. اگر شما تعویضپذیری را نادیده بگیرید، یکی از مزایای اصلی استفاده از OSS را از دست دادهاید.
● تیم پروژه
تیمهای پروژهی OSS میتوانند محدودهای شامل یک توسعهگر واحد تا یک گروه گسترده از اعضای یک تیم توسعه را در بر گیرند. شما باید اندازه، ساختار و انگیزهی گروه توسعه را درک نمایید. چه در مورد نرمافزارهای کدباز و چه در مورد نرمافزارهای تجاری، قدرت و دید تیم توسعه از اهمیت بسیار بالایی برخوردار است. اما در مورد نرمافزارهای تجاری، تیم توسعه پنهان است. شما باید به اعتبار شرکت و وعده آنها مبنی بر تداوم یافتن پیشرفت نرمافزار تکیه کنید.
در مورد کدباز، شما میتوانید در تیم توسعه نرمافزار پیشروی عمیقتری نمایید. با بررسی لیست پستی توسعهدهندگان پروژه و log های تغییر سورس کد، شما میتوانید اندازه، وسعت و فرهنگ گروه توسعه را شناسایی نمایید. یک پروژهی قوی نباید بیش از حد به شخص خاصی متکی باشد. اما تیمی که بیش از حد بزرگ یا زودگذر است نمیتواند دارای کانون منسجمی باشد.
● فرایند توسعه
نکته دیگری که باید مورد توجه قرار گیرد چگونگی به اجرا در آمدن فرایند توسعه است. به دنبال بهترین شیوهها از قبیل تست یونیت و سبک کدنویسی سازگار باشید. پروژه باید دارای رویههای ساخت خوب-مستندسازیشده باشد. شما باید اطمینان حاصل نمایید که توانایی ساختن نرمافزار و در صورت یافتن یک خطا یا نیاز به یک بسط، توانایی ایجاد تغییر را دارید. بهترین معیار برای ارزیابی یک پروژه مقایسه آن با فرایندهای توسعه در سازمان خودتان است. آیا در سازمان شما کد یک مرحله بازبینی را پشت سر میگذارد؟
شما همچنین باید این امر را مد نظر قرار دهید که به چه سادگی میتوانید همکاری خود با تیم پروژه را عملی نمایید. آیا آنها به سهولت ورودی و patch ها را میپذیرند؟ چه مقدار شفافیت در فرایند توسعه وجود دارد؟ شما میتوانید با این افراد همکاری داشته باشید؟
مدیریت عرضه یک هنر دشوار است. فرایند توسعهای که به خوبی اجرا شده، شامل شیوههای مدیریت عرضه سازگار است.
به تاریخچه عرضه تیم پروژه یا مخزن سورس کد نگاه کنید. آیا عرضهها بیش از حد معمول یا کمتر از حد کافی هستند؟ آیا توضیحات عرضه به میزان کافی مفصل هستند تا به شما در مورد چگونگی و زمان ارتقا یاری رسانند؟ آیا تیم پروژه، سازگاری با موارد قدیمیتر را در هنگام ایجاد تغییرات مد نظر قرار دادهاند؟
● خود-پشتیبانی
با فراهم ساختن امکان دسترسی به سورس کد، نرمافزارهای کدباز یک مزیت قابل توجه را در مقایسه با نرمافزارهای تجاری برای عیبیابی و اصلاح خطاها به ارمغان میآورند.
اما برای بهرهگیری از این مزیت، شما باید کد و نحوه کار آن را درک کنید. حداقل، سورسکد باید شامل توضیحات مناسب و سازماندهی منطقی باشد. مستندسازی میتواند در فرمهای بسیاری شامل مستندسازی آنلاین، کد توضیح نویسی شده، wiki ها، تابلوهای پیام و کتابها ظاهر گردد. این شمایید که باید تصمیم بگیرید که آیا کیفیت و کمال مستندسازی برای شما و سازمان شما جهت پشتیبانی نرمافزار کافی است.
● پشتیبانی انجمنی
سودمندی و قدرت پشتیبانی انجمن کاربر برای OSS در مقایسه با نرمافزارهای اختصاصی حیرتآور است. لیست پستی کاربر بهترین مکان برای ارزیابی چگونگی پشتیبانی انجمن از سوی خودش است. با بررسی لیست پستی شما میتوانید در یابید که حل مشکلاتی که در مستندات ذکر نشدهاند تا چه حد ساده است. به چه سرعتی سوالات پاسخ داده میشوند؟ چه کسانی به آنها جواب میدهند؟ آیا بسیاری از سوالهای خوب مطرح شده بدون جواب باقی میمانند؟
● پشتیبانی پولی
در برخی موارد این احتمال وجود دارد که شما نیازمند جستجو برای پشتیبانی خارجی باشید یا ممکن است با تکیهی محض بر خود-پشتیبانی راحت نباشید. بنابراین، شما باید اطمینان حاصل نمایید که یک سری گزینههای پشتیبانی را در اختیار دارید. فروشندگان نرمافزارهای تجاری معمولا گزینههای پشتیبانی را فراهم میآورند و شرکایی دارند که خدمات آموزشی یا مشاورهای را ارائه میدهند.
اغلب پروژههای کدباز کاملتر گزینههایی را برای پشتیبانی پولی شامل محدودهای از قراردادهای نگهداری سنتی تا موارد خاص مشخص میسازند. پشتیبانی غالبا از سوی مشاورانی که در پروژهی OSS تخصص دارند و احتمالا با آن همکاری میکنند ارائه میگردد. شما باید محدودهی گزینههای پشتیبانی را شناسایی نمایید و ببینید چگونه انتظارات شما را برآورده میسازند.
یک گزینه برای پشتیبانی پولی به خدمت گرفتن پیمانکاران است. اغلب اوقات بررسی تابلوهای شغلی (job boards) برای یافتن توسعهگران دارای تجربه استفاده از نرمافزار، مفید است.
● خلاصه
استفاده از معیارها و تکنیکهای شرح داده شده در این مقاله به شما در ارزیابی آلترناتیوهای کدباز کمک خواهد کرد. نرمافزار کدباز دارای یک پتانسیل عظیم برای کاهش هزینه نرمافزار، افزایش امنیت کامپیوتر، ساختن سیستمهای انعطافپذیرتر و توسعه سریعتر سیستمها است. به هر حال، بهرهبرداری از این پتانسیل نیازمند آن است که سازمانها پروژههای OSS مناسب را برگزینند، تصمیمی که در مقایسه با نرمافزارهای تجاری به مجموعه متفاوتی از معیارها نیاز دارد
نویسنده: Dave Gynn
مترجم: امین ایزدپناه
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست