بخشی از مقاله
خلاقيت در دنياى مجازى
برخى بر اين باورند كه توليد نرم افزار نوعى هنر است و همه با اين نكته موافق هستند كه «توليد نرم افزار كارى خلاق است». با اين همه در كشور ما ساخت نرم افزار حتى در زمره كارهاى توليدى نيز به شمار نمى رود. مهم ترين ويژگى توليد نرم افزار كه آن را از ديگر فعاليت هاى توليدى يا خدماتى متمايز مى كند، خلق و ايجاد دنيايى مجازى است كه از طريق واسطه هاى مناسبى با
دنياى واقعى مرتبط شده و بخشى از نيازهاى ما را برطرف مى سازد. گسترده شدن استفاده از فناورى اطلاعات تقريباً در تمامى عرصه هاى زندگى و حيات انسان، اهميت و نقش توليد كنندگان محصولات نرم افزارى را به شدت افزايش داده است. در اين جا لفظ توليدكنندگان به مجموعه افرادى اطلاق مى شود كه در طول چرخه حيات يك سيستم نرم افزارى در ساخت، توسعه و نگه دارى آن مشاركت دارند. كشور ما هنوز دوران اوليه بلو غ خود را در عرصهIT تجربه مى كند، دوره اى سرشار از مسائل و چالش هاى گوناگون. چالش هايى كه برخى از آنها به سياست هاى كلان كشور
مرتبط و برخى ديگر زائيده ويژگى هاى خاص نرم افزار و دست اندركاران توليد و توسعه آن است. اين چالش ها به اشكال مختلف در مقابل تمامى دست اندركاران اين حوزه و به ويژه مدير يك پروژه نرم افزارى عرض اندام مى كنند. عوامل زير را مى توان سرچشمه بخش بزرگى از مشكلات اين حوزه به شمار آورد:
- تكميل نكردن زير ساخت هاى ضرورى IT.
- فراگير نشدن فرهنگ استفاده از اين فناورى در بخش وسيعى از حوزه ها.
- ارزان بودن نرم افزار بر خلاف هزينه توليد بالاى آن و رعايت نكردن حقوق توليد كنندگان محصولات نرم افزار به شكلى كه بسيارى از نرم افزارها (چه نرم افزارهاى توليد داخل و چه توليد خارج) به راحتى و با قيمتى بسيار اندك در دسترس همگان است.
- نبود سرمايه گذارى مناسب براى پژوهش و تحقيق در حوزه نرم افزار. اگرچه مساعدت هايى در اختيار بخش هاى مختلف خصوصى و دولتى در چارچوب طرح هاى مختلف قرار گرفته است، عمده اين سرمايه ها اغلب به سمت بخش هاى سخت افزارى سرازير شده و در عمل سرمايه گذارى در عرصه توليد و به تناسب آن تحقيق و پژوهش كاربردى حوزه نرم افزار كه در زمره سودآورترين عرصه هاى اقتصادى در دنيا شناخته مى شود، بسيار اندك است.
- ناتوانى هاى شركت هاى توليد نرم افزار. دست اندركاران توليد نرم افزار در كشور ما بيش تر شركت هاى كوچك نرم افزارى با پشتوانه هاى مالى اندك هستند. شركت هايى كه هنوز بلوغ سازمانى كافى نيافته اند، قادر نيستند متناسب با متحول ترين عرصه تكنولوژيك رشد كنند.
- قراردادهاى ناپخته.
اكثريت مشتريان مهم حوزه نرم افزار را سازمان هاى دولتى و نيمه دولتى تشكيل مى دهند. قراردادهاى توليد نرم افزار، قراردادهايى ناپخته و يك طرفه هستند و مجريان چنين پروژه هايى، با وجود آگاهى نسبت به ضعف هاى آن بيشتر اوقات به دلايل اقتصادى مجبور به پذيرش آنها هستند.
در چنين فضايى مديران پروژه هاى نرم افزارى با چالش ها، مسائل و مشكلات بسيارى روبه رو هستند كه بخش عمده آن به ارتباط با سه گروه اصلى زير بازمى گردد: ۱- كارفرمايان (مشتريان)، ۲- اعضاى تيم يا كاركنان بخش هاى نرم افزار و ۳- مديران شركت هاى نرم افزارى.
كارفرمايان و مشتريان: گروه اصلى و ذى نفع مرتبط با يك محصول نرم افزارى را مشتريان يا كاربران آن تشكيل مى دهند. كسانى كه در حقيقت تامين كننده منابع مالى لازم براى توليد آن به شمار مى روند. شايد به جرات بتوان گفت كه بيشترين چالش ها در تقابل با اين گروه، كه عمده ترين تامين كننده منابع مالى بخش هاى توليد نرم افزار هم هستند نمايان مى شود. در عرصه ارتباط مديران پروژه با اين گروه مسائلى وجود دارد كه ريشه آن را مى توان در ميان موارد زير جست وجو كرد:
- بخش هاىIT همچنان در اغلب سازمان ها و مراكز صنعتى، خدماتى و بازرگانى سازمان ضعيفى دارند و از دانش و فناورى روز در عرصه اى كه تكامل و تحول در آن، ساعت به ساعت رخ مى نمايد، به دور هستند. كاربران، مديران و ذى نفعان يك سيستم نرم افزارى ديد روشنى از نرم افزار و قابليت هاى آن ندارند.
- نرم افزار هنوز به عنوان كالايى ارزشمند شناخته نشده و كارفرمايان و مشتريان نرم افزار اگرچه حاضر هستند بهاى بالايى را براى يك سخت افزار، براى مثال يك مانيتور، بپردازند، در صرف هزينه براى نرم افزار به شدت خوددار ند. در مزاياى خريد، توليد و استفاده از نرم افزار ترديد دارند و ديد
روشنى از نيازهاى خود و قابليت مكانيزاسيون آنها ندارند. ديد روشنى از حجم تلاش لازم براى توليد يك نرم افزار ندارند به همين علت در موازنه طرف هاى قرارداد ساخت و توليد نرم افزار، خود را طرف قدرتمند محسوب مى كنند. حاصل چنين موازنه اى قراردادهايى غير واقع بينانه و يك طرفه است. - به فرهنگ و دانش لازم براى استفاده از خدمات مكانيزه و الزامات، محدوديت ها و توانايى هاى آن كم بها مى دهند.
- از فناورى توليد نرم افزار، روش هاى توليد و توسعه، كيفيت در نرم افزار و به طور كلى مباحث تكنيكى و مديريتى اين حوزه كم تر آگاه هستند. هر مدير پروژه بسته به ويژگى هاى سازمان كارفرما يا مشتريان خود، مى تواند اقلام جديدى به فهرست بالا اضافه كند. ارائه راه حل هايى براى حل مسائل بالا در حوصله اين گفتار نيست. نگارنده اميدوار است بسيارى از اين مسائل به يمن الزامات تكنولوژيك و در گذر زمان حل شود.
كاركنان بخش نرم افزار: گروه دومى كه مدير يك پروژه با آنها روبه رو است، اعضاى بخش هاى توليد نرم افزار و كمى دقيق تر اعضاى تيم هاى نرم افزارى است. افرادى با تخصص ها و ويژگى هاى گوناگون كه به منظور توليد و ارائه يك محصول نرم افزارى سازمان يافته اند. سازمان دادن و هدايت چنين تيمى به منظور توليد محصولى باكيفيت در چارچوب زمان و هزينه پيش بينى شده كار ساده اى نيست. بخشى از مشكل همان طور كه پيش از اين نيز اشاره شد به ماهيت نرم افزار مرتبط
است. برخى از ويژگى هاى خاص نرم افزار كه آن را از ديگر محصولات تكنولوژيك متمايز مى كند، عبارت است از: - محصول نرم افزارى به طور كامل انتزاعى است. - توليد آن به خلاقيت نياز دارد. - گرايش به سمت پيچيدگى دارد. - برآورد زمان و هزينه توليد آن بحث انگيز و مشكل است.اولين
مشكل يك مدير پروژه ، فراهم آوردن نيروى انسانى مناسب براى تيم است؛ مهندسان نرم افزارى كه توانايى هاى آنها به تخصص هاى نرم افزارى صرف محدود نشده و از مهارت هاى فردى ديگرى چون برقرارى ارتباط، توانايى، انگيزه و روحيه خودآموزى و تحقيق برخوردار باشند. از آنجا كه فناورى توليد نرم افزار به سرعت رو به تكامل است، يك مدير باتجربه بر آن است كه دانش مجموعه تيم يا
شركت خود را افزايش داده و بسترى فراهم كند تا مجموعه تحت سرپرستى اش از آموزش كافى برخوردار باشند. در چنين حالتى كيفيت و كميت دانش و توانايى اعضاى تيم مضاعف مى شود. اگرچه چنين آموزش هايى هزينه دارد با اين همه سرمايه گذارى ارزشمندى محسوب مى شود. به نظر آموزش حين كار بايد به عنوان يك اصل در شركت ها و بخش هاى توليد نرم افزار پذيرفته شود. هدف اصلى اين آموزش بايد بر افزايش كارايى اعضاى تيم هاى نرم افزارى متمركز باشد. به راحتى مى توان ثابت كرد كه هزينه اى كه صرف آموزش تيم مى شود به سرعت با افزايش كارايى اعضاى تيم و رشد كيفيت نرم افزارهاى توليدى جبران مى شود.
توليد نرم افزار: برآورد تلاش هاى لازم براى توليد يك نرم افزار و برآورد زمان پروژه هاى نرم افزارى، يكى از بحث انگيز ترين مسائل مديريت در پروژه هاى نرم افزارى است. بسيارى از پروژه هاى نرم افزارى تنها به دليل خروج از برآوردهاى زمانى خود شكست خورده اند. بنابراين به وضوح بايد گفت كه برآورد واقعى هزينه اجراى يك پروژه نرم افزارى يكى از بنيانى ترين قدم هاى موفقيت يك پروژه نرم افزارى است. وقتى كه پروژه اى مى رود تا از زمان خود خارج شود، از مهندسان نرم افزار
خواسته مى شود (و يا انتظار مى رود) تا ساعات بيشترى را كار كنند تا پروژه بر مسير پيش بينى شده منطبق شود. نكته اينجا است كه فشار كارى بر تيم نمى تواند لزوماً نتايج قابل انتظار را برآورده سازد.به هر حال كار نرم افزارى يك كار خدماتى و توليدى محسوب نمى شود بلكه اين كار خلاقيتى در دنيايى مجازى است. يك سيستم نرم افزارى، موجودى مجازى است كه خلق مى شود، رشد مى كند و در نهايت از ميان مى رود. براى اين كه خلاقيت در اعضاى تيم وجود داشته و تقويت شود، ايجاد و تقويت انگيزه هاى آنان بسيار مهم است