افزایش سطح آگاهی متخصصان عرصه فناوری اطلاعات با تکنولوژی روز، استفاده از استانداردهای منسجم و یک دست، رعایت قانون کپی رایت و در نظر گرفتن یک نهاد متمرکز ناظر بر کلیه نهادهای مختلف در برنامهریزی و مدیریت، هم چنین قانونگذاری در زمینه IT راهکارهایی مناسب برای کاهش مشکلات IT در کشور به حساب میآیند.
فرایند تولید نرمافزار یا به طور محدودتر متدولوژی تولید نرم افزار، منحنی شناخته شده برای متخصصین و دست اندرکاران است. در ایران بسیاری از افراد در این زمینه اطلاعات کافی دارند و در جریان آخرین دست آوردها و مقالات روز هستند، اما در پیاده سازی سیستمهای در داخل ایران، ردپای این صحبتها کمتر دیده می شود. چرا؟
عده ای معتقدند کارفرما این اصول را نمی پذیرد یا هزینه اش را پرداخت نمی کند! آیا ممکن است کارفرما در اجرای روش اصولی رسیدن به هدف خویش کوتاهی کند؟ خوشبختانه هم کارفرمایان و هم مجریان پروژههای نرم افزاری متوجه این واقعیت بزرگ شدهاند که امروزه ما نیازمند سرمایه گذاری روی روشهای تولید نرم افزار هستیم.
به گفته کارشناسان، صنعت نرمافزار در ایران با مشکلات زیرساختی عدیدهای روبروست، اما تلاشهای بسیاری برای رفع این مشکلات و رسیدن به ایدهآلها صورت گرفته است. ازمشکلات پیش روی شرکتهای تولید کننده نرم افزار در ایران می توان مشکلاتی همچون بالا بودن هزینههای تولید نرم افزار، به طول انجامیدن مدت زمان تولید، عدم حمایتهای دولتی، عدم ارتباط با تولیدکنندگان خارجی، تولیدات سفارشی، خدمات و پشتیبانی پس از فروش، عدم رعایت قانون کپی رایت، کمبود نیروهای متخصص، نبود پشتیبانی های لازم را نام برد که باعث شده صنعت نرم افزار ایران نتواند به جایگاه واقعی خود دست پیدا کند.
کشور ما هنوز دوران اولیه بلوغ خود را در عرصه IT تجربه میکند، دورهای سرشار از مسایل و چالشهای گوناگون. چالشهایی که برخی از آنها به سیاستهای کلان کشور مرتبط و برخی دیگر زاییده ویژگیهای خاص نرم افزار و دستاندرکاران تولید و توسعه آن است.
یکی از کارشناسان در این ارتباط می گوید: تولید نرم افزار به دلیل عدم استفاده از ابزار و انرژی فیزیکی قابل لمس نیست و از این رو، تولید آن از نگاه عام سهل به نظر می رسد اما در واقعیت تولید یک نرم افزار که حجمی کمتر از یک CD را به خود اختصاص می دهد، بعضاً ماه ها کار یا سال کار کارشناسان را به خود اختصاص داده است.
شکست در پروژههای نرم افزاری در هر یک از چهار مورد «هزینه»، «زمان»، «کیفیت» و «دستیابی به اهداف» مطرح می شود؛ بدین معنا که اگر پروژهای با صرف هزینه بیشتر یا زمان بیشتر یا با کیفیت پایین تر انجام شود، علیرغم به پایان رسیدن پروژه، آن را توأم با شکست میدانیم.
به طور کلی دلایل اصلی شکست پروژههای IT در ایران را می توان به دو دسته عوامل داخلی و خارجی تقسیم کرد:
عوامل داخلی: مدیران پروژه کم تجربه، ناتوانیهای شرکتهای تولید نرم افزار، قراردادهای ناپخته، کمبود نیروی انسانی متخصص، مقاومتهای کاربران و سازمانها در پذیرش سیستمهای جدید، ارتباط با مشتریان و کاربران و عدم درگیر کردن کاربران در پروژه
عوامل خارجی: نبود سرمایه گذاری مناسب برای پژوهش و تحقیق در حوزه نرم افزار، سرمایه گذاری کم در بخش خصوصی و عدم حمایت دولت، عدم استفاده از یک استاندارد واحد، مشکلات حضور در مناقصات بین المللی، ارزان بودن نرم افزار و عدم در نظر گرفتن آن بصورت یک کالا،ماههای سال، تعطیلات رسمی و برنامه ریزی زمانی، ادغام شوراها، عدم شناسایی حقوق مولفین و قانون کپی رایت و…
فرآیندهای مدیریت پروژه با 9 توانمندی تعریف می شود که این توانمندیها عبارتند از مدیریت یکپارچگی پروژه، محدوده، زمان، هزینه، کیفیت، منابع انسانی، ارتباطات، ریسک و برون سپاری و از آنجایی که نقش هر یک از عوامل فوق در تولید یک محصول نرم افزاری کلیدی است توانمندی یک مدیر پروژه در تولید نرم افزار یکی از عوامل مهم و حیاتی در موفقیت پروژه به شمار میرود.
اکثر مدیران پروژه نرم افزاری در ایران، برنامه نویسان قدیمیتر و یا قویتر گروه هستند و همین یک نفر در تولید یک نرم افزار نقشهای زیادی از جمله تحلیل، طراحی و برنامه نویسی و …را برعهده دارد در حالیکه فرآیند مدیریت دانش و توانایی خاص خود را می خواهد و توانمندی های خاص خود را می طلبد.
ناتوانیهای شرکتهای تولید نرم افزار
دست اندرکاران تولید نرم افزار در کشور ما بیشتر شرکتهای کوچک نرم افزاری با پشتوانههای مالی اندک هستند. این شرکتها عمدتا به دلیل محدودیت منابع از رویکرد توسعه تکنولوژی به منظور آشنایی با ابزار و روشهای نوین تولید نرم افزار غافل می شوند.
قراردادهای ناپخته
بیشترین مشتریان مهم حوزه نرم افزاردر کشور ما را سازمانهای دولتی و نیمه دولتی تشکیل می دهند. قراردادهای تولید نرم افزار، قراردادهایی ناپخته و یک طرفه هستند و مجریان چنین پروژههایی، با وجود آگاهی نسبت به ضعفهای آن بیشتر اوقات به دلایل اقتصادی مجبور به پذیرش آنها هستند.
تجربه های ناکافی تیم پروژه
چالش دیگری نیز پیش روی مدیران شرکتهای کوچک و متوسط وجود دارد، برای تمامی مدیرعاملان مهم است که کارمندانی تیزهوش، خلاق و مستعد استخدام کنند. شاید یکی از مهم ترین عوامل موفقیت پروژههای نرم افزاری را افراد نام برد. متاسفانه در کشور ما کمبود نیروی متخصص یکی از چالشهای عمده است. عمدتا می توان عدم بهروز بودن و دسترسی به تکنولوژی روز و اینکه نیروی کار روی تکنولوژی قدیمی با برنامه های آموزشی نامناسب و ناکافی پیوند خورده است را یکی از عوامل ضعف تیم نرم افزاری دانست.
متاسفانه ضعف نظام آموزشی در دانشگاهها و اینکه محتوی آموزشی اکثر دروس دانشگاهی کاربردی و عملی نبوده و صرفا تئوری است و در بازار کار کاربردی ندارد را می توان یکی از عوامل ضعف متخصصین ایرانی نام برد.
مقاومتهای کاربران و سازمانها در پذیرش سیستمهای جدید
بخشهای IT همچنان در اغلب سازمانها و مراکز صنعتی، خدماتی و بازرگانی سازمان ضعیفی دارند و از دانش و فناوری روز، در عرصههایی که تکامل و تحول در آن، ساعت به ساعت رخ می دهد، به دور هستند. چون پروژه های IT به منظور برآورده ساختن اهداف کلان سازمان آغاز می شوند، نهایتا باید در سطح عملیاتی پاسخگوی نیازهای کاربران باشند.
عدم سرمایه گذاری مناسب برای پژوهش و تحقیق در حوزه نرم افزار
بر اساس این گزارش که اطلاعات آن از پایگاه مقالات علمی مدیریت برگفته شده است اگرچه مساعدت هایی در اختیار بخشهای مختلف خصوصی و دولتی در چارچوب طرحهای مختلف قرار گرفته است، عمده این سرمایهها اغلب به سمت بخشهای سخت افزاری سرازیر و در عمل سرمایه گذاری در عرصه تولید و به تناسب آن تحقیق و پژوهش کاربردی حوزه نرم افزار که در زمره سود آورترین عرصههای اقتصادی در دنیا شناخته می شود، بسیار اندک است.
در کشور ما حمایت کافی از بخش خصوصی در زمینه ی IT بعمل نمی آید. برخی مشکلاتی که این گروه با ان روبه روهستند عبارتند از:
روند طولانی پیشرفت کار در ادارات دولتی، عدم استفاده از یک استاندارد واحد، یکی از ضعفهای شرکت های تولیدکننده نرم افزاری این است که تولیدات آنها از استانداردهای لازم برخوردار نیست.
شرکتهای نرم افزاری و مشکلات حضور در مناقصات بین المللی
در حال حاضر مشکلات اجرایی بسیاری بر سر راه حضور شرکت های نرم افزاری جهت حضور در مناقصات بین المللی وجود دارد که بخشی از آن به دولت و بخش دیگری از آن به خود شرکتهای نرم افزاری برمیگردد. این مشکلات عبارتند از نبود امکان صدور آسان ضمانت نامههای مختلف ارزی نظیر شرکت در مناقصه، پیش پرداخت و حسن انجام کار برای شرکت های نرم افزاری، عدم حمایت مناسب بانکها، مشکلات شرکتهای نرم افزاری، عدم شناسایی حقوق مولفین وقانون کپی رایت
محدودیت استفاده افراد از خطوط پرفشار یا اینترنت پرسرعت را می توان یکی دیگر از مشکلات نام برد. منظور از اینترنت پرسرعت، پهنای باند حداقل 1 مگابیت در ثانیه است. بسیاری از مفاهیم فن آوریهای نو در حوزه اینترنت و تجربه واقعی از اینترنت متناسب به فهم جهانی ازوضعیت فعلی سرویس های اینترنتی، تنها زمانی به دست میاد که شما هم همانند پیشتازان این علم، دارای یک حداقلی از پهنای باند که گفتیم باشید.
کسانی که این نوع اینترنت را تجربه کرده اند حتما منظور بحث را به خوبی درک می کنند ممکن است نگرانیهایی در زمینه دسترسی به سایت های ناسازگار با فرهنگ ما وجود داشته باشد، اما راه چاره، محدود کردن دسترسی نیست، همانطور که تجربههای گذشته در برخورد منفی با پدیده های تکنولوژیک مانند فکس و ویدئو و ماهواره و… همگی ناموفق بودهاند.
استانداردها
استاندارد کردن و استاندارد از پایههای علم و فناوری است که در پیشرفت صنعت و اقتصاد نقشی به سزا دارد و باید در جهت افزایش سطح کیفیتها تلاش کرد تا به فناوری پیشرفته تولید هر محصول نایل آمد.
یکی از مشکلات شرکتهای نرمافزار ایرانی در بازارهای جهانی عدم آشنایی با استاندارد نرم افزار است، متاسفانه استاندارد نرمافزار هنوز در ایران به درستی تدوین و یا تعریف نشده است و تاکنون هیچ اقدام منسجمی در کشور ما برای تعیین استاندارد تولید نرمافزار صورت نگرفته و هیچ اجباری برای ارایه شناسنامه نرمافزارها وجود نداشته است.
از آنجا که تنوع حوزه عملکرد در زمینه نرم افزار بسیار زیاد است، ادامه حیات این صنعت نمیتواند بینیاز از وجود استانداردهای منسجم و یک دست باشد. با توجه به اینکه هر تولید کننده نرمافزاری یک روش تولید خاص خود اتخاذ میکند و در مراحل ساخت از متدولوژیهای متفاوت استفاده می کند، نتیجه کار شرکتهای مختلف به لحاظ روند کیفی و اجرایی شکل و شمایلی گوناگون خواهد داشت و این امر اصولا یکپارچگی در این بازار را فدای خود خواهد کرد.
اینجاست که لزوم وجود استاندارد نرم افزار به وضوح حس می شود. کارشناسان نرم افزار معتقدند که پشتیبانی قدرتمند محصولات و همچنین مستندسازی و تخمین کیفیت تنها با وجود یک استاندارد منظم مقدور است، وقتی استاندارد صحیح وجود داشته باشد کار گروهی بیشتر معنا پیدا می کند. هم اکنون استانداردهای جهانی زیادی مانند IEEE و ایزو وجود کیفیت و پشتیبانی مناسب در صنعت نرم افزار دنیا را تضمین می کنند.
متأسفانه به علت فقدان استاندارد یا لااقل توصیه ای واحد برای مستندسازی محصولات نرم افزاری و بی توجهی سازندگان نرم افزار و کارفرمایان، نرم افزارهای تولید شده در ایران اکثراً فاقد حداقل مستندات لازم هستند. البته فشار کارفرمایان به پیمانکاران برای کاهش هزینه تولید نرم افزار عموماً منجر به حذف و یا کم رنگ شدن بخش مستندات سیستمهای نرم افزاری شده است.
برای توسعه صنعت نرمافزار باید برروی فرایند و مهندسی کار انرژی زیادی گذاشته شود. تولید نرم افزار بزرگ یک کار گروهی است، یک صنعت است اجرای این کار بدون فرایند ممکن نیست براساس آمارهای موجود عوامل ریسک در یک پروژه نرمافزاری بزرگ و سهم هر یک از آنها عبارتند از نیروی انسانی، فرایند کار و فناوری و ابزار روز.
قسمت عمده از عوامل ریسک در نظر گرفته شده در عامل نیروی انسانی ما فرایند کار قابل کنترل است. بنابراین دیده می شود که نقش فرایند تولید نرم افزار در موفقیت یک پروژه بزرگ نرم افزاری تا چه حد تعیین کننده است.
نکته پایانی که از این اطلاعات استنباط می شود این است که عامل فناوری و ابزار درصد به مراتب پایین تری را به خود اختصاص داده است. بنابراین در آموزشها و برنامهریزیهای کار باید توجه بیشتری به فرایند کار کرد تا به ابزار پیاده سازی؛ متاسفانه این امر در بسیاری از اوقات فراموش میشود.