فناوری اطلاعات و ارتباطات امروزه تبدیل به عامل زیربنایی تحول و نوسازی صنایع، سازمانها و کسبوکارها شده است. آنچه انقلاب صنعتی چهارم از آن به «تحول دیجیتال» یاد میکند، به این معناست که سازمانها باید با تحول در شیوههای رهبری، تفکر راهبردی و فعالیتهای عملیاتی خود، از مزایای خلقشده توسط فناوریهای نوین به شکلی هوشمندانه و اثربخش برای افزایش بهرهوری سازمانی، کمک به تحقق اهداف سازمانی و بهبود تجربه کاری و تعاملی میان کارکنان، مشتریان، تأمینکنندگان، شرکا و ذینفعان با سازمان استفاده کنند.
اگرچه تحول دیجیتال، رویکردی راهبردی و کلان برای تحول و بازآفرینی کسبوکار و روشهای خلق ارزش آن برای ذینفعان و مشتریان سازمان است؛ اما عامل اصلی موفقیت، به چگونگی بهرهبرداری از فناوری دیجیتال در درون سازمان بازمیگردد. درواقع باید بگوییم اگرچه دیجیتالیکردن روشهای تعامل با مشتریان و خدمترسانی به آنها یک سرمایهگذاری کلیدی برای سازمانهاست؛ اما مدل کسبوکار هر سازمان، دارای ابعاد درون سازمانی است که بخش مهمی از آن به تحول معماری سازمانی (شامل معماری فرایندها، معماری داده و معماری سامانهها و نرمافزارهای کاربردی سازمان) بازمیگردد. بنابراین تحول دیجیتال تنها شامل تحول کانالهای ارتباطی سازمان با مشتریان از طریق فناوری دیجیتال (مثلا راهاندازی فروش اینترنتی یا پشتیبانی از طریق وبسایت) نیست؛ بلکه یک «سرمایهگذاری» روی تحول تمامی ابعاد سازمان است.
نگاهی به وضعیت موجود تعریف پروژههای نرمافزاری در سازمانها و چالشهای آن
طبیعتا وقتی از «سرمایهگذاری» سخن به میان میآید، فرایندی دقیق و موشکافانه برای تصمیمگیری تخصیص منابع محدود سازمانی (و بهصورت خاص منابع مالی) به ذهن متبادر میشود. با این حال همچنان نگاه بسیاری از سازمانهای ما چه در بخش دولتی و چه در بخش خصوصی به موضوع کاربرد فناوری اطلاعات، نه یک نگاه راهبردی و سرمایهگذاری، بلکه نگاهی عملیاتمحور و هزینهمحور است، به این معنا که چه فرایندهایی را باید الکترونیکی کنیم و برای این کار چقدر بودجه در اختیار داریم. اینکه «چرا باید فرایند (الف) یا (ب) را الکترونیکی کنیم» سؤالی است که در بسیاری از موارد جوابهایی اینچنینی را دریافت خواهد کرد:
واحد فناوری اطلاعات تنها مجری تصمیمات مدیران ارشد و واحدهای کسبوکاری است.
چون سازمانهای مشابه یا رقیب، این فرایند را الکترونیکی کردهاند.
چون در دنیای امروز باید فرایندهای سازمانی را الکترونیکی کرد و برای این فرایند هم نرمافزار (ج) در بازار وجود دارد.
پاسخهایی مانند گزارههای فوق، تبدیل به اصول موضوعه بسیاری از سازمانها در حوزه فناوری اطلاعات شدهاند.
بدین ترتیب معمولا فرایند تأمین نرمافزارهای مورد نیاز سازمان به شکل زیر است:
1. درخواستی برای تأمین راهکار نرمافزاری یا الکترونیکیکردن فرایندها از سوی مدیریت سازمان یا واحدهای کسبوکاری و عملیاتی به واحد فناوری اطلاعات ارسال میشود.
2. واحد فناوری اطلاعات درخواست مورد نظر را بررسی میکند و از تطبیق آن با اولویتهای سازمان و اولویتها و بودجه واحد فناوری اطلاعات اطمینان حاصل میکند.
3. با جستوجو در اینترنت یا انتشار فراخوان عمومی، تامینکنندگان احتمالی نرمافزار شناسایی میشوند. (اگر نرمافزار مورد نظر از نوع نرمافزارهای سفارش مشتری باشد و در بازار بهصورت آماده نباشد، از شرکتهای تولیدکننده نرمافزارهای سفارشی دعوت به عمل میآید.)
4. کلیات درخواست سازمان درمورد نرمافزار مورد نظر، اغلب در قالب شفاهی و در بعضی موارد (بهویژه در بخش دولتی که الزام قانونی وجود دارد) در قالب سند درخواست برای پیشنهاد (RFP2) مکتوب، در اختیار شرکتهای متقاضی قرار میگیرد. ممکن است روش دریافت پیشنهادات برگزاری مناقصه (که خودش انواع مختلفی دارد) یا استعلام (از چند شرکت محدود) باشد. سپس با دریافت پیشنهادات فنی و اجرایی و مالی آنها و درنظرداشتن رزومه و سوابق آنها با تصمیمگیری کمیسیون معاملات سازمان، پیمانکار برنده انتخاب میشود.
5. پیمانکار برنده پس از عقد قرارداد است که میتواند در جریان جزئیات پروژه قرار بگیرد. در این مرحله پیمانکار در ابتدا باید (حتی برای نرمافزارهای آماده از قبل)، تمامی جزئیات نرمافزار مورد نظر کارفرما را در قالب شناسایی نیازمندیهای کارکردی و نیازمندیهای غیر کارکردی مستندسازی کند و سپس پیشنهاد فنی ارائهشده در مرحله مناقصه/ استعلام را در قالب سند معماری فنی (SRS) دقیق کند تا دامنه فنی و اجرایی پروژه خود را مشخص سازد.
فرایند فوق یک فرایند معمول در سازمانهای دولتی است و شرکتهای خصوصی بزرگ که واحد فناوری اطلاعات مستقلی دارند هم عموما به همین روش عمل میکنند. اما این روش دارای چالشهای مختلفی است که به برخی از آنها اشاره میکنیم:
1. در بسیاری از مواقع، مرحله تعریف کلیات پروژه بدون تهیهی سند RFP طی میشود و درنتیجه کارفرما و پیمانکار هر دو در زمان آغاز پروژه درکی از دامنه پروژه ندارند. درنتیجه در زمان اجرا دچار اختلاف نظر جدی درمورد حجم کار و هزینه پروژه میشوند.
2. اضافهکردن یک سامانه و نرمافزار جدید به سازمان نمیتواند بدون درنظرداشتن معماری سازمانی بهویژه معماری نرمافزار و داده سازمان صورت بگیرد؛ چراکه در غیر این صورت، هماهنگسازی و اتصال فرایندهای مختلف که توسط نرمافزارهای مختلفی الکترونیکی شدهاند و همچنین یکپارچگی دادهها در سطح کل سازمان و بین سامانههای گوناگون، دچار چالش جدی خواهد شد. یکی از ریشههای ایجاد چالش جزیرهایبودن نرمافزارها و پایگاههای داده که بسیاری از سازمانهای ایرانی با آن دست و پنجه نرم میکنند، در همین شیوه تامین نرمافزار غیرسیستماتیک نهفته است.
3. درعین حال بدون وجود تفکر راهبردی فناوری اطلاعات در سازمان و مشخصنبودن سیاستهای کلان تأمین راهکارهای فناوری اطلاعات از جمله نرمافزار، حتی بدون درنظرداشتن دو چالش فوق هم اغلب پروژههای نرمافزاری در خطر شکست قرار دارند؛ چراکه طبیعتا هر پیمانکاری براساس رویکرد فنی و تواناییهای خود، از فناوریها و معماری و ابزارهای تولید متفاوتی استفاده میکند که لزوما در میدان عمل نمیتواند پاسخگوی نیازهای سازمان باشد. بهعنوان مثال نوع معماری زیرساختی انتخابی روی پیچیدگی پیادهسازی، زمان و هزینه پروژه تاثیرگذار است. از سوی دیگر همین نوع معماری روی زیرساخت سرور مورد نیاز سازمان، توان مقیاسپذیری و امنبودن سامانه هم تأثیرگذار است که لزوما تأمین هزینههای نگهداری سامانه ممکن است در توان سازمان نباشد.
4. چه در سطح بینالمللی و چه در سطح کشوری، استانداردها و قوانین و مقرراتی وجود دارند که رعایت شکلی آنها برای اجرای پروژههای نرمافزاری الزامی است. بهعنوان مثال قانون مناقصات در بخش دولتی. علاوه بر آن، با پیشرفت و تحول عمیق استانداردها و رویکردهای مدیریت پروژه تولید نرمافزار و فرایند توسعه نرمافزار در جهان در دو دهه اخیر، استفاده از رویکردهای مدرنتر که احتمال موفقیت پروژه نرمافزاری را افزایش میدهند هم ضروری است. با این حال همچنان رویکرد سنتی که به پروژه نرمافزاری نگاهی همچون پروژههای عمرانی دارد، باعث شده پروژههای نرمافزاری حتی پیش از آغازشدن هم در معرض ریسک شکست قرار داشته باشند!
5. نگاه مرکز هزینهمحور به فناوری اطلاعات و بهویژه نرمافزار در سازمانها باعث شده تا در اغلب پروژهها انتخاب پیشنهاددهنده با کمترین هزینه در اولویت قرار بگیرد. اگرچه روشهایی چون «انتخاب ترکیبی بر اساس کیفیت و هزینه (QCBS)» که در قانون مناقصات هم مورد تأکید قرار گرفته تا حدودی تلاش کردهاند تا از این مشکل جلوگیری کنند؛ اما تجربه دههها پروژه نرمافزاری شکستخورده در کشور نشان از آن دارد که باید طرحی نو در زمینه فرایند انتخاب پیمانکاران نرمافزاری درانداخت که در آن، خطر انتخاب مجریان با توان فنی پایینتر که به هر قیمتی بهدنبال جذب پروژهها هستند، کمتر شود.
مرور استانداردها و تجارب بینالمللی نشان از آن دارد که اگر به موضوع «سرمایهگذاری در حوزه فناوری اطلاعات»، با دیدی عمیقتر بنگریم و آن را مانند یک تصمیمگیری راهبردی در نظر بگیریم، میتوانیم برای چالشهای فوق تا حدود زیادی راهکارهایی منطقی بیندیشیم.
یک چارچوب فرایندی کلان برای تصمیمگیری درمورد برونسپاری و مدیریت پروژههای نرمافزاری در سازمانها
در ادامه این مقاله تلاش میشود یک رویکرد کاربردی دو مرحلهای برای «انتخاب پیمانکار نرمافزار» ارائه شود که منطبق با استانداردهای بینالمللی و مبتنی بر تجربه نگارنده شامل نزدیک به دو دهه فعالیت در صنعت فاوای کشور و همکاری با دهها سازمان دولتی و خصوصی در اندازههای مختلف اعم از بزرگ (Enterprise) و کوچک و متوسط (SME) است.
گام اول: تصمیمگیری درمورد سیاستهای کلان تأمین راهکارهای فناوری اطلاعات در سازمان
سیاستها یا خطمشیها (Policy) اصولی کلی است که راهنمای تصمیمگیری در سازمان محسوب میشود. تصمیمگیری در چارچوب خطمشیها صورت میگیرد و سیاستها، رهنمودها و قواعدی هستند که محدوده انجام کارها را در سازمان تعیین میکنند. این قواعد اغلب در زمان تصمیمات عملیاتی به کار مدیران سازمان میآیند. به همین ترتیب میتوانیم بگوییم که سیاستهای فناوری اطلاعات عبارتند از: «راهنمای کلی فعالیتهای عملیاتی در محدوده استراتژی IT سازمان.»
تعیین سیاستهای کلان فاوا در سازمان، موضوع بسیار پیچیدهای است؛ چراکه ملاحظات بسیار زیادی را باید در آن در نظر گرفت. بهعنوان مثال بسیاری از سازمانها و شرکتها در سالهای اخیر واحدهای نرمافزاری داخلی خود را شکل دادهاند؛ بنابراین باید در سیاستگذاریها به این توجه شود که عامل تصمیمگیری درمورد درونسپاری یا برونسپاری پروژههای توسعه نرمافزار چیست؟
همچنین در تعریف و ارجاع پروژههای نرمافزاری فقط تولید نرمافزار مطرح نیست و در بسیاری موارد لازم است یک نرمافزار آماده از بازار خریداری شود یا اینکه بسته نرمافزاری آماده خرید بر اساس نیازهای سازمان خریدار، سفارشیسازی شود؟
موضوع دیگری که لازم است به آن توجه شود این است که در تولید نرمافزار فقط با نرمافزارهای مورد نیاز برای مکانیزهسازی فرایندهای خدماتی در سازمانها مواجه نیستیم، بلکه بسیاری از حوزههای نرمافزاری تخصصی وجود دارد که روی موضوعات فرایندهای تولیدی یا اتصال به تجهیزات سختافزاری (بهویژه در حوزه IOT) متمرکز هستند و نیازمندیهای خاص خود را دارند. چگونه باید به این فناوریهای جدید و همچنین ملاحظات تحول دیجیتال در سازمان، حاکمیت فناوری اطلاعات (IT Governance)، عملیات فناوری اطلاعات در سازمان (ITOps)، امنیت تولید نرمافزار و همچنین ملاحظات مربوط به رویکردهای نوین زیرساخت فناوری بهویژه رایانش ابری نظیر: SaaS، PaaS، IaaS و… در زمان تصمیمگیری درمورد تعریف یک پروژه جدید نرمافزاری توجه کنیم؟
ملاحظات مربوط به لایسنس نرمافزار بهویژه در حوزه استفاده از نرمافزارهای متنباز (مانند ERPهای Open Source) و ابزارهای اوپن سورس تولید و توسعه نرمافزار (مانند دات نت کُر مایکروسافت) با درنظرداشتن ملاحظات امنیتی و اقتصادی فنی و همچنین چالشهای ناشی از تحریم، موضوع مهم دیگری است که لازم است مورد دقت کافی قرار بگیرند.
ضمنا تاثیرات ظهور فناوریهای نوین توسعه نرمافزار بدون نیاز به دانش برنامهنویسی نظیر BPMSها، Headless CMSها، ابزارهای Low Code و No Code از یک سو و درهم آمیختهشدن فناوریهای نوینی چون هوش مصنوعی، کلانداده و دادهکاوی، بلاکچین و… با صنعت نرمافزار هم موضوعات دیگری هستند که لازم است سازمان برای آنها سیاست مشخصی داشته باشد.
همانطور که مشاهده کردید، موضوعات بسیار متنوعی درمورد سیاستگذاری تامین راهکارهای فناوری اطلاعات در سازمان باید مورد توجه قرار بگیرند. با این حال نیازی نیست که تمام سازمانها درمورد تمامی موضوعات برای خود سیاست مشخصی را اتخاذ کنند. درواقع تجربه نشان میدهد که سه مجموعه سیاست کلی در حوزه تأمین راهکارهای فاوا میتواند تا حدود زیادی چارچوب تصمیمگیری کلان سازمان را در این حوزه شکل دهد که در ادامه به آنها اشاره میکنیم.
گفتنی است سه حوزه سیاستهای فاوای مورد اشاره هم میتواند بهصورت کلی توسط سازمان در چارچوب «استراتژی فناوری اطلاعات سازمان» شکل بگیرد و هم بهصورت اقتضایی و بهازای هر پروژه در مورد آن با توجه به مزایا و معایب هر گزینه تصمیمگیری شود.
الف ـ روش تامین راهحلهای فاوا
راهحلهای فاوا به دو صورت راهحلهای آماده و سفارشی تأمین میشوند. راهحلهای آماده بدون سفارش خاصی از جانب یک مشتری توسط شرکتهای فعال در زمینه تولید راهحلهای فاوا تهیه و در بازار عرضه میشوند.
گزینههای مطرح در زمینه روش تأمین راهحلهای فاوا بههمراه مزایا و معایب هر یک در شکل زیر ارائه شده است:
با توجه به مزایا و معایب مطرح درمورد هر یک از گزینهها، الگوی منتخب برای تامین راهحلهای فاوا را میتوان بهصورت موردی در هر پروژه انتخاب کرد.
ب ـ الگوی انتخاب فناوری
امروزه تصمیمگیری در زمینه استفاده از آخرین فناوریهای فناوری اطلاعات در سازمانها مباحث فراوانی را به همراه دارد. منظور از آخرین فناوریها، فناوریهایی است که بهتازگی به بازار عرضه شدهاند و هنوز نسبت به کاربرد مناسب و اثربخش آنها اطمینان وجود ندارد؛ با این حال درصورت کاربردیشدن این فناوریها بهرهبری از آنها برای شرکت مزیت ایجاد میکند. فناوریهای موجود قابل دسترسی نیز فناوریهایی هستند که در دورهای نسبتا طولانی در عمل مورد استفاده قرار گرفتهاند و اطمینانپذیری آنها اثبات شده است.
ج ـ فناوری پایه نرمافزاری
درحال حاضر فناوریهای اساسی در تهیه نرمافزارها بر دو گزینه جنبش نرمافزارهای متنباز و نرمافزارهای تجاری تمرکز یافته است. جنبش نرمافزارهای متنباز عبارت از سیستمهایی است که منابع آن (مانند کد منبع و سایر مستندات پشتیبان تولید نرمافزار) بهطور آزاد در اختیار همگان قرار گرفته است. درمقابل این نرمافزارها، منابع اطلاعاتی و فرایندی نرمافزارهای تجاری تنها در اختیار شرکت تولیدکننده نرمافزار است.
بر این اساس، گزینههای مطرح در زمینه فناوری پایه نرمافزاری به همراه مزایا و معایب هر یک در شکل زیر ارائه شده است:
با توجه به مزایا و معایب مطرح درمورد هر یک از گزینهها و با درنظرگرفتن این نکته که عملا راهحلهای متنباز هم برای استفاده تجاری نیز باید همراه با بستهای از خدمات پشتیبانیشان خریداری شوند و درعین حال این راهحلها معمولا از نظر امکانات در سطح پایینتری نسبت به راهحلهای تجاری هستند، الگوی منتخب سازمان، قابل انتخاب خواهد بود.
گام دوم: تعریف پروژه نرمافزاری و انتخاب پیمانکار
پس از تعیین سیاستهای کلی سازمان درمورد نحوه تامین راهکارهای فناوری اطلاعات، نوبت پرداختن به پروژه مورد نظر میرسد. اگرچه برای تعریف پروژه نرمافزاری و انتخاب پیمانکار رویکردهای گوناگونی مطرح است؛ اما پیشنهاد ما استفاده از الگویی بومیسازیشده برگرفته از چارچوب بینالمللی کوبیت6 است.
کوبیت برترین چارچوب بینالمللی راهبری مدیریت فاوا در سازمانهاست که به شکل گستردهای در جهان مورد پذیرش قرار گرفته است. کوبیت عبارت است از مدلی کنترلی برای درک و مدیریت ریسکهای مرتبط با IT و رفع مشکلات بین ریسکهای کسبوکار، نیازهای کنترلی و امور فنی.
جهتگیری کسبوکار در COBIT، شامل «برقراری ارتباط بین اهداف کسبوکار با اهداف فناوری اطلاعات»، «تدوین شاخصها و مدلهای بلوغ برای اندازهگیری میزان دستیابی به اهداف» و «شناسایی مسئولیتهای مرتبط متولیان فرایندهای کسبوکار و متولیان فرایندهای فناوری اطلاعات در سازمان» است.
در شکل زیر چرخه سرمایهگذاری روی توسعه داراییهای فناوری اطلاعات سازمانی (نرمافزار، سختافزار و زیرساخت) برگرفته از چارچوب کوبیت نشان داده شده است:
این چرخه به ما نشان میدهد که در هر گونه تصمیمگیری برای سرمایهگذاری در حوزه فناوری اطلاعات در سازمان، باید ابتدا نیازمندیهای کسبوکار بهصورت کامل مشخص شود، سپس منابع مورد نیاز فناوری اطلاعات برای اجرای آن نیازمندی کسبوکاری شناسایی و روی آن سرمایهگذاری صورت پذیرد و در مرحله بعدی فرایندهای نگهداری و پشتیبانی فناوری اطلاعات هم در سازمان برای دارایی فناوری اطلاعات ایجادشده، تعریف شود تا درنهایت امکان مدیریت یکپارچه اطلاعات برای سازمان فراهم و به این ترتیب به نیازهای کسبوکار هم پاسخ داده شود. این چرخه بهصورت مستمر باید در سازمان ادامه پیدا کند.
نرمافزار یکی از داراییهای فناوری اطلاعات سازمان است؛ بنابراین توسعه آن هم در چارچوب چرخه فوق قابل طرح است. با این حال با توجه به اینکه موضوع مقاله حاضر که «انتخاب پیمانکار نرمافزار» است، در اینجا به توضیح دو حوزه «مدیریت تعریف نیازمندیهای کسبوکار» و «تعریف و تولید راهکارهای فناوری اطلاعات» میپردازیم که در میان ابعاد فوق، بسیار کلیدی هستند.
چارچوب کوبیت برای اجراییسازی دو حوزه «مدیریت تعریف نیازمندیهای کسبوکار» و «تعریف و تولید راهکارهای فناوری اطلاعات» سه فرایند مهم را در حوزه مدیریت توسعه داراییهای فناوری اطلاعات ارائه میدهد که در سه مرحله، تعریف و مدیریت یک پروژه نرمافزاری را پیش میبرند. در ادامه این سه فرایند را بررسی خواهیم کرد.
در ابتدا باید نیازمندیهای کسبوکار در سازمان درمورد نرمافزار مورد نظر شناسایی شوند:
پس از این مرحله، سازمان به تعریف دقیقی درمورد پروژه نرمافزاری مورد نظر و دلیل اجرای آن رسیده و میتواند وارد مرحله بعدی شود که در آن، درمورد جزئیات پروژه و چگونگی اجرای آن تصمیمگیری میشود:
در این مرحله سازمان به تصمیم درمورد اینکه آیا میخواهد پروژه را برونسپاری کند یا خیر، رسیده است. درصورتی که تصمیم به برونسپاری پروژه باشد، فرایند زیر میتواند بهعنوان رویکرد انتخاب پیمانکار پروژه مورد توجه قرار بگیرد:
در این مقاله تلاش شد تا با بیان ساده یک الگوی کلان برای مدیران سازمانها بهویژه مدیران فناوری اطلاعات درخصوص تصمیمگیری درمورد چگونگی تعریف و اجرای پروژههای نرمافزاری ارائه شود. با این حال جزئیات فرایندهای فوق از جمله شرح زیرفرایندها، قالب استاندارد مستندات از جمله سند RFP و همچنین اصول کلیدی که باید در فرایندهای فوق در نظر گرفته شود (از جمله نکات مهم در زمان تعریف شرح پروژه و دامنه آن و شرایط قراردادی بین کارفرما و پیمانکار)، موضوعی است که در این مقاله نمیگنجند؛ اما با استفاده از خدمات مشاوران خبره و بهرهگیری از استانداردهایی چون «نماتن (نظام مهندسی و استانداردهای تولید و توسعه نرمافزار)» میتواند به سازمانها در این زمینه یاری برساند.
نویسنده: علی نعمتی شهاب، پژوهشگر تحول دیجیتال در صنعت بانکداری و پرداخت