رضا دانش، مدير عامل شرکت آرمان سامانه نوين و عضو هيات مديره سازمان نظام صنفي رايانهاي استان تهران است. او كه در زمان انتخابات سازمان از ناشناخته ترين كانديداها بود، توانست با ارايه برنامههاي عملي راي اعتماد صنف را كسب كند.
وي اكنون با عضويت در كميسيون نرمافزار در پي اجراي وعدههايش است. او البته منش عملگرايياش را از دست نداده و در يادداشت زير، ضمن بررسي نرمافزار به عنوان صنعت، پيشنهادهاي جالبي را براي بهبود اين صنعت داده است. او همچنين در اين يادداشت ريسكهاي موجود در پروژههاي نرمافزاري را بررسي كرده و راه حلهايي را هم پيشنهاد داده است.
1- نرمافزار يک صنعت است
اگر صنعت را تلفيق سرمايهگذاري، مديريت، مهندسي و نيروي کار درنظر بگيريم که منجر به توليد محصول مشخصي ميشود به راحتي ميتوان استنتاج كرد که نرمافزار يک صنعت است ليکن جايگاه اين صنعت در ايران به دليل نقصانهايي که در هر يک از ارکان فوق وجود دارد، مطلوب نيست.
- ميزان سرمايه گذاري انجام شده براي صنعت نرمافزار در مقايسه با ساير صنايع در حد صفر است که علت اصلي آن را ميتوان در ناشناخته بودن صنعت براي سرمايه گذاران و نيز حاشيه سود بسيار پايين آن در کشور که در بسياري از موارد زيان ده نيز ميباشد جستوجو کرد.
- مديريت جايگاه ويژهاي در پيشبرد اهداف هر صنعتي دارد با توجه به اينکه در بحث مديريت موضوع منابع و مديريت آنها نقش بسزايي در توسعه کارها دارد باز هم به دليل نوپا بودن صنعت نرمافزار و عدم آشنايي مديران با منابع ذيربط و نيز تعداد بسيار پايين متخصصان نرمافزار که داراي توان مديريتي مناسب باشند اين رکن توسعه صنعت نيز غالبا در کشور مشکلات متعددي داشته است. اين مطلب که مدير يک مجموعه لزوما نبايد متخصص زمينه فعاليت باشد صحيح است اما نميتوان انکار كرد که داشتن مديراني متخصص در حوزه اين صنعت موهبتي بزرگ محسوب ميشود. ضمن اينکه همانطور که اشاره خواهد شد مهندسي نرمافزار، مديريت را در بطن خود دارد.
- در تعريف مهندسي نرمافزار چنين آمده است: مهندسي نرمافزار علاوه بر جنبههاي فني خود که از علم کامپيوتر منشعب ميشود نکات مديريتي مانند هدايت تيمهاي برنامهنويسي، زمانبندي و بودجهريزي را نيز شامل ميشود.
حال نکته اينجا است که چرا عموما مهندسان نرمافزار ما با ابعاد مديريتي رشته تحصيلي خود بيگانهاند که به نظر من بخش عمدهاي از آن را بايد در سيلابس درسهاي دانشگاهي جستجو کرد که فهرستوار به بخشي از آنها اشاره ميشود:
- توان هدايت تيمي، بودجه ريزي و زمانبندي همگي مهارتهايي هستند که ذيل سر فصل مبحث مديريت پروژه مطرح ميگردند. در حالي که چنين واحد درسي در رشته نرمافزار وجود ندارد.
- خلا بسياري از دروس در دوره مهندسي نرمافزار بسيار محسوس است که از متوليان امور درخواست ميشود نسبت به بازبيني اين رشته مهندسي توجه ويژهاي مبذول دارند که موارد زيربه نظر من اهميت بسياري دارند:
- درس تحقيق در عمليات به صورت اجباري
- جايگزيني مباحث بيشتر در آناليز عددي و آمار به جاي دروسي نظير رياضيات مهندسي يا معادلات ديفرانسيل که کاربرد اصلي آنها در رشتههاي مهندسي گرايش برق و مکانيک است.
- توسعه زبان انگليسي تخصصي و تشويق دانشجويان به مطالعه منابع اصلي.
- توجه ويژه به درس مهندسي نرمافزار و توسعه آن.
- توجه ويژه به درس پايگاه دادهها و مديريت آنها و نيز ارايه واحدهاي عملي بر روي يکي از بانکهاي اطلاعاتي رايج در کشور.
- توجه ويژه به بحث مديريت پروژه.
- توجه ويژه به بحث برنامه نويسي تحت وب و ارايه واحدهاي درسي متناسب در آن حوزه.
- توجه خاص به بحث سيستمهاي عامل روز دنيا و تدريس معماري يک سيستم عامل پر کاربرد در کشور مانند Windows و لينوکس پس از درس اصول سيستمهاي عامل.
- توجه ويژه به درس شيوه ارايه مطالب و گسترش آن و نيز مجبور كردن دانشجويان به ارايه مستندات پروژههاي ساير دروس بر اساس اصول آموخته شده در اين درس.
بسياري مطالب ديگر نيز وجود دارند که نيازمند توجه ويژه اساتيد محترم دانشکدههاي مهندسي نرمافزار ميباشند و اميد است به اين موضوع به طور ويژه توجه كنند.
2- لازم است تعريف صحيحي از پروژههاي ملي نرمافزاري ارايه شود
قرار گرفتن واژه ملي در کنار يک پروژه اهميتي صد چندان به آن ميدهد. بنابراين در تعريف پروژههاي ملي ميبايست به اين نکته مهم توجه شود که پروژه ملي پروژهاي است که پس از انجام آن عامه ملت و کشور از نتايج آن بهرهمند شوند. بنابراين در حوزه چنين پروژههايي لازم است به اين نکته توجه شود که تعريف نادرست باعث زيان ملي خواهد بود براي مثال اگر بياييم پروژهاي با اين عنوان تعريف کنيم که ميخواهيم يک RDBMS ملي تهيه کنيم و بودجه کلاني نيز براي آن در نظر بگيريم چه اتفاقي خواهد افتاد؟ به نظر من که يک نظر شخصي است چنين پروژهاي يعني اتلاف بودجه، انرژي و زمان و به نحوي اختراع چرخ. لذا شايسته است چنين مقولههايي به عنوان تحقيقات دانشگاهي مطرح شوند و بودجههاي مناسبي به طرحهاي ملي نظير سيستم جامع و Online تامين اجتماعي (مثلا هر بيمه شده بتواند با مراجعه به هر يک از شعب تامين اجتماعي در سراسر کشور دفترچه خود را تعويض کند و يا درخواست انتقال سوابق قديم به شعب جديد از طريق اين سيستم انجام شود)، سيستم جامع سازمان امور مالياتي و... تخصيص داده شده و در اجراي آنها با کيفيت مناسب تعجيل شود.
3- ريسکهاي موجود در پروژههاي نرمافزاري
برحسب تجربه خود موارد زير را به عنوان مهمترين ريسکهاي پروژههاي نرمافزاري در ايران مطرح ميكنم:
- کارفرما تعريف دقيق و کاملي از پروژه ندارد و به عبارتي RFPها دقيق، جامع و مانع نيستند که عدم تخصيص بودجه کافي به RFP نويسي يکي از عوامل اين مشکل است.
- پيمانکاران در تخمين زمان و هزينه پروژهها دقيق عمل نميکنند. بخشي از اين موضوع مربوط به ضعف RFPها و برخي ديگر به اشتياق پيمانکاران براي برنده شدن در مناقصات و گرفتن کار تحت هر شرايطي بر ميگردد که ناشي از شرايط بد اقتصادي بوده اما اثرات منفي خود را در مراحل بعدي پروژه نشان ميدهد.
- پرداخت نشدن به موقع مطالبات پيمانکاران از سوي کارفرمايان.
- تغيير مديريت در سازمان کارفرما و تبعات وخيم ناشي از آن.
- تغييرات مکرر قوانين، مقررات، آيين نامهها و روشهاي اجرايي بدون هماهنگي با توانمنديهاي نرمافزار.
- از دست دادن افراد کليدي پروژهها در شرکتهاي پيمانکار به دليل تغيير محل کار، مهاجرت و...
- نداشتن مستندات کاربردي مناسب از پروژهها که تاثيرات آن بالاخص به هنگام پشتيباني و توسعه امکانات سيستمها بروز ميكند.
- مديريت نكردن صحيح زمان، تغييرات، کارتيمي و هزينهها از سوي مديران پروژه در شرکتهاي پيمانکار.
- ايده آل گرايي غير عملي کارفرما يا پيمانکار.
- ضعف تخصصي کارشناسان کارفرما يا پيمانکار.
يادآور ميشوم که به نظر بنده کليد اصلي بقا و پويايي شرکتهاي نرمافزاري در عصر حاضر حرکت کردن با تکنولوژي روز دنيا و توجه به امر مهم R&D است.