توليد نرمافزار و چالشهاى آن (بخش نخست)
نام نویسنده: حميد مشرف (h_moshref@yahoo.com)
همكاران سيستم – برخى بر اين باوراند که توليد نرمافزار نوعى هنر است و همه با اين نكته موافق هستند که “توليد نرمافزار کارى خلاق است” با اين همه در کشور ما ساخت نرمافزار حتا در زمرهى کارهاى توليدى نيز به شمار نمىرود. مهمترين ويژگى توليد نرمافزار که آن را از ديگر فعاليتهاى توليدى يا خدماتى متمايز مىکند، خلق و ايجاد دنيايى مجازى است که از طريق واسطههاى مناسبى با دنياى واقعى مرتبط شده و بخشى از نيازهاى ما را برطرف مىسازد.
گسترده شدن استفاده از فناورى اطلاعات تقريبا در تمامى عرصههاى زندگى و حيات انسان، اهميت و نقش توليد کنندگان محصولات نرمافزارى را به شدت افزايش داده ات. در اين جا لفظ توليدکنندگان به مجموعه افرادى اطلاق مىشود که درطول چرخه حيات يک سيستم نرمافزارى در ساخت، توسعه و نگهدارى آن مشارکت دارند.
کشور ما هنوز دوران اوليه بلو غ خود را در عرصهIT تجربه مىکند، دورهاى سرشار از مسايل و چالشهاى گوناگون. چالشهايى که برخى از آنها به سياستهاى کلان کشور مرتبط و برخى ديگر زاييده ويژگىهاى خاص نرمافزار و دستاندرکاران توليد و توسعهى آن است. اين چالشها به اشکال مختلف در مقابل تمامى دستاندرکاران اين حوزه و به ويژه مدير يک پروژهى نرمافزارى عرض اندام مىکنند. عوامل زير را مىتوان سرچشمه بخش بزرگى از مشکلات اين حوزه به شمار آورد:
– تکميل نكردن زير ساختهاى ضرورى IT
– فراگير نشدن فرهنگ استفاده از اين فناورى در بخش وسيعى از حوزهها
– ارزان بودن نرمافزار بر خلاف هزينهى توليد بالاى آن و رعايت نكردن حقوق توليد کنندگان محصولات نرمافزار به شکلى که بسيارى از نرمافزارها (چه نرمافزارهاى توليد داخل و چه توليد خارج) به راحتى و با قيمتى بسيار اندك در دسترس همگان است.
– نبود سرمايهگذارى مناسب براى پژوهش و تحقيق در حوزه نرمافزار. اگرچه مساعدتهايى در اختيار بخشهاى مختلف خصوصى و دولتى در چهارچوب طرحهاى مختلف قرار گرفته است، عمدهى اين سرماهها اغلب به سمت بخشهاى سختافزارى سرازير و در عمل سرمايهگذارى در عرصه توليد و به تناسب آن تحقيق و پژوهش کاربردى حوزهى نرم افزار که در زمرهى سود آورترين عرصههاى اقتصادى در دنيا شناخته مىشود، بسيار اندک است.
– ناتوانىهاى شرکتهاى توليد نرمافزار – دست اندر کاران توليد نرمافزار در کشور ما بيشتر شرکتهاى کوچک نرمافزارى با پشتوانههاى مالى اندک هستند. شرکتهايى که هنوز بلوغ سازمانى کافى نيافتهاند، قادر نيستند متناسب با متحولترين عرصهى تکنولوژيک رشد كنند.
– قراردادهاى ناپخته. بيشتريان مشتريان مهم حوزهى نرمافزار را سازماناى دولتى و نيمه دولتى تشکيل مىدهند. قراردادهاى توليد نرم افزار، قراردادهايى ناپخته و يک طرفه هستند و مجريان چنين پروژههايى، با وجود آگاهى نسبت به ضعفهاى آن بيشتر اوقات به دلايل اقتصادى مجبور به پذيرش آنها هستند.
مدير پروژه و چالشهاى پيش رو
در چنين فضايى مديران پروژههاى نرمافزارى با چالشها، مسايل و مشکلات بسيارى رو بهرو هستند که بخش عمدهى آن به ارتباط با سه گروه اصلى زير بازمىگردد:
* کارفرمايان (مشتريان)
* اعضاى تيم يا کارکنان بخشهاى نرمافزار
* مديران شركتهاى نرمافزارى
1- کارفرمايان و مشتريان
گروه اصلى و ذىنفع مرتبط با يک محصول نرمافزارى را مشتريان يا کاربران آن تشکيل مىدهند. کسانى که در حقيقت تامينکنندهى منابع مالى لازم براى توليد آن به شمار مىروند. شايد به جرات بتوان گفت که بيشترين چالشها در تقابل با اين گروه – که عمدهترين تامين کنندهى منابع مالى بخشهاى توليد نرمافزار هم هستند- رخ مىنمايد. در عرصهى ارتباط مديران پروژه با اين گروه مسايلى وجود دارد که ريشهى آن را مىتوان در ميان موارد زير جستوجو کرد:
– بخشهايIT همچنان در اغلب سازمانها و مراکز صنعتى، خدماتى و بازرگانى سازمان ضعيفى دارند و از دانش و فناورى روز، در عرصهاى که تکامل و تحول در آن، ساعت به ساعت رخ مىنمايد، به دور هستند.
– کاربران، مديران و دىنفعان يک سيستم نرمافزارى ديد روشنى از نرمافزار و قابليتهاى آن ندارند.
– نرمافزار هنوز به عنوان کالايى ارزشمند شناخته نشده و کارفرمايان و مشتريان نرمافزار اگر چه حاضر هستند بهاى بالايى را براى يک سختافزار، براى مثال يک مانيتور، بپردازند، در صرف هزينه براى نرمافزار به شدت خوددار اند.
– در مزاياى خريد، توليد و استفاده از نرمافزار ترديد دارند.
– ديد روشنى از نيازهاى خود و قابليت مکانيزاسيون آنها ندارند.
– ديد روشنى از حجم تلاش لازم براى توليد يک نرمافزر ندارند.
– به ويژه در موازنه طرفهاى قرارداد ساخت و توليد نرمافزار، خود را طرف قدرتمند محسوب مىکنند. حاصل چنين موازنهاى قراردادهايى غير واقع بينانه و يک طرفه است.
– به فرهنگ و دانش لازم براى استفاده از خدمات مکانيزه و الزامات، محدوديتها و توانايىهاى آن کم بها مىدهند .
– از فناورى توليد نرمافزار، روشهاى توليد و توسعه، کيفيت در نرمافزار و به طور کلى مباحث تکنيکى و مديريتى اين حوزه کمتر آگاه هستند. براى نمونه در بسيارى از پروژهها در حالى که براى مثال فرآيندى تکرارپذير مانند RUP را به عنوان روش توليد نرمافزار در متن قرارداد بيان مىکنند، مراحل تحويل فرآوردههاى پروژه را آبشارى مشخص مىكنند.
هر مدير پروژه بسته به ويژگىهاى سازمان کارفرما يا مشتريان خود، مىتواند اقلام جديدى به فهرست بالا اضافه کند. ارايهى راه حلهايى براى حل مسايل بالا در حوصلهى اين گفتار نيست. نگارنده اميدوار است بسيارى از اين مسايل به يمن الزامات تکنولوژيک و در گذر زمان حل شود.