PDA

نسخه کامل مشاهده نسخه کامل : ارزيابي نرم‌افزارهای كدباز



Babak_King
06-12-2005, 23:34
نگاهي به آلترناتيوهاي OSS براي نرم‌افزارهاي تجاري

همچنان كه تعداد پروژه‌هاي نرم‌افزاري كدباز (OSS) افزايش مي‌يابد، آلترناتيوهاي OSS بيشتر و بيشتر در ارزيابي‌هاي نرم‌افزاري سازمان‌هاي بزرگ پديدار مي‌گردند. به هر حال، ارزيابي OSS به شكلي كارآمد نيازمند آن است كه متخصصان IT‌ در مقايسه با نرم‌افزارهاي تجاري از معيارهاي متفاوتي استفاده كنند. سازمان‌هايي كه اين كار را انجام داده‌اند تصميمات بهتري در زمينه كدباز اتخاذ نموده‌اند.

در طي سال‌ها، مديران ارشد اطلاعات و معماران سيستم در پيمودن دنياي نرم‌افزار تجاري با استفاده از تكنيك‌هاي ارزيابي متمركز بر مشخصه‌هاي محصول، سلامت فروشنده، سهم بازار و نيازهاي تجاري خبره گرديده‌اند. يك صنعت 2 بيليون دلاري از شركت‌هاي پژوهشي در طي 40 سال گذشته براي پشتيباني گزينش تكنولوژي پديدار گرديده است. به هر حال، اين تكنيك‌ها و ابزارها براي انجام انتخاب‌هاي آگاهانه در زمينه نرم‌افزار كدباز كافي نيستند: كدام پروژه‌هاي كدباز براي حل نمودن مشكلات خاص بهتر هستند و كدام‌ها پويا و رو به رشد مي‌باشند، هم براي كاربران نهايي و هم براي توسعه‌دهندگان جديد.

فرايند سنتي ارزيابي نرم‌افزار تجاري شامل مطالعه گزارش‌هاي تحليلگر، برپايي معيارهاي انتخاب مشخصه/تابع، ملاقات با فروشندگان و چانه زدن بر سر قيمت مجوز و پشتيباني مي‌باشد. يك ارزيابي كامل به معني بحث با تعدادي از مشتريان معرف (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 مناسب را برگزينند، تصميمي كه در مقايسه با نرم‌افزارهاي تجاري به مجموعه متفاوتي از معيارها نياز دارد.