فناوری اطلاعات و ارتباطات امروزه تبدیل به عامل زیربنایی تحول و نوسازی صنایع و سازمانها و کسبوکارها شده است. آنچه انقلاب صنعتی چهارم از آن به «تحول دیجیتال»[1] یاد میکند، به این معناست که سازمانها باید با تحول در شیوههای رهبری و تفکر راهبردی و فعالیتهای عملیاتی خود، به شکلی هوشمندانه و اثربخش از مزایای خلقشده توسط فناوریهای نوین از جمله فناوری اطلاعات و ارتباطات و فناوری دیجیتال برای افزایش بهرهوری سازمانی، کمک به تحقق اهداف سازمانی و بهبود تجربه کاری و تعاملی میان کارکنان، مشتریان، تأمینکنندگان، شرکا و ذینفعان با سازمان استفاده کنند.
اگرچه تحول دیجیتال، رویکردی راهبردی و کلان برای تحول و بازآفرینی کسبوکار و روشهای خلق ارزش آن برای ذینفعان و مشتریان سازمان است؛ اما عامل اصلی در موفقیت در آن، به چگونگی بهرهبرداری از فناوری دیجیتال در درون سازمان بازمیگردد. درواقع باید بگوییم اگرچه دیجیتالیکردن روشهای تعامل با مشتریان و خدمترسانی به آنها یک سرمایهگذاری کلیدی در دنیای امروز برای سازمانهاست؛ اما درواقع مدل کسبوکار هر سازمان، دارای ابعاد درون سازمانی نیز هست که بخش مهمی از آن به تحول معماری سازمانی (شامل معماری فرایندها، معماری داده و معماری سامانهها و نرمافزارهای کاربردی سازمان) بازمیگردد. بنابراین تحول دیجیتال تنها شامل تحول کانالهای ارتباطی سازمان با مشتریان از طریق فناوری دیجیتال (مثلا راهاندازی فروش اینترنتی یا پشتیبانی از طریق وبسایت) نیست؛ بلکه یک «سرمایهگذاری» روی تحول تمامی ابعاد سازمان محسوب میشود.
نگاهی به وضعیت موجود تعریف پروژههای نرمافزاری در سازمانها و چالشهای آن
طبیعتا وقتی از «سرمایهگذاری» سخن به میان میآید، فرایندی دقیق و موشکافانه برای تصمیمگیری تخصیص منابع محدود سازمانی (و بهصورت خاص منابع مالی) به ذهن متبادر میشود. با این حال همچنان نگاه بسیاری از سازمانهای ما چه در بخش دولتی و چه در بخش خصوصی به موضوع کاربرد فناوری اطلاعات در سازمان، نه یک نگاه راهبردی و سرمایهگذاری، بلکه نگاهی عملیاتمحور و هزینهمحور است، به این معنا که چه فرایندهایی را باید الکترونیکی کنیم و برای این کار چقدر بودجه در اختیار داریم. اینکه «چرا باید فرایند (الف) یا (ب) را الکترونیکی کنیم» سؤالی است که در بسیاری از موارد جوابهایی این چنینی را دریافت خواهد کرد:
پاسخهایی مانند گزارههای فوق، تبدیل به اصول موضوعه بسیاری از سازمانها در حوزه فناوری اطلاعات شدهاند.
بدین ترتیب معمولا فرایند تأمین نرمافزارهای مورد نیاز سازمان به شکل زیر است:
فرایند فوق یک فرایند معمول در سازمانهای دولتی است و شرکتهای خصوصی بزرگ که واحد فناوری اطلاعات مستقلی دارند هم عموما به همین روش عمل میکنند. اما این روش دارای چالشهای مختلفی است که به برخی از آنها اشاره میکنیم:
مرور استانداردها و تجارب بینالمللی نشان از آن دارد که اگر به موضوع «سرمایهگذاری در حوزه فناوری اطلاعات»، با دیدی عمیقتر بنگریم و آن را مانند یک تصمیمگیری راهبردی در نظر بگیریم، میتوانیم برای چالشهای فوق تا حدود زیادی راهکارهایی منطقی بیندیشیم.
یک چارچوب فرایندی کلان برای تصمیمگیری درمورد برونسپاری و مدیریت پروژههای نرمافزاری در سازمانها
در ادامه این مقاله تلاش میشود یک رویکرد کاربردی دو مرحلهای برای «انتخاب پیمانکار نرمافزار» که منطبق با استانداردهای بینالمللی و نزدیک به دو دهه فعالیت نگارنده مقاله حاضر در صنعت فاوای کشور و همکاری با دهها سازمان دولتی و خصوصی در اندازههای مختلف اعم از بزرگ (Enterprise) و کوچک و متوسط (SME) است، ارائه شود.
گام اول: تصمیمگیری درمورد سیاستهای کلان تأمین راهکارهای فناوری اطلاعات در سازمان
سياستها يا خطمشيها (Policy) اصولی کلي هستند که راهنماي تصميمگيري در سازمان محسوب میشوند. تصميمگيري در چارچوب خطمشيها صورت ميگيرد. سياستها رهنمودها و قواعدي هستند که محدوده انجام کارها را در سازمان تعيين ميکنند. اين قواعد اغلب در زمان تصميمات عملیاتی به کار مدیران سازمان ميآيند. به همین ترتیب میتوانیم بگوییم که سياستهاي فناوري اطلاعات عبارتند از: «راهنماي کلي فعاليتهاي عملياتي در محدوده استراتژي IT سازمان.»
تعیین سیاستهای کلان فاوا در سازمان موضوع بسیار پیچیدهای است؛ چراکه ملاحظات بسیار زیادی را باید در آن در نظر گرفت.
بهعنوان مثال بسیاری از سازمانها و شرکتها در سالهای اخیر واحدهای نرمافزاری داخلی خود را شکل دادهاند؛ بنابراین باید در سیاستگذاریها به این توجه شود که عامل تصمیمگیری درمورد درونسپاری یا برونسپاری پروژههای توسعه نرمافزار چیست؟
همچنین در تعریف و ارجاع پروژههای نرمافزاری فقط تولید نرمافزار مطرح نیست و در بسیاری موارد لازم است یک نرمافزار آماده از بازار خریداری شود یا اینکه بسته نرمافزاری آماده خرید بر اساس نیازهای سازمان خریدار، سفارشیسازی شود؟
موضوع دیگری که لازم است به آن توجه شود این است که در تولید نرمافزار فقط با نرمافزارهای مورد نیاز برای مکانیزهسازی فرایندهای خدماتی در سازمانها مواجه نیستیم، بلکه بسیاری از حوزههای نرمافزاری تخصصی وجود دارد که روی موضوعات فرایندهای تولیدی یا اتصال به تجهیزات سختافزاری (بهویژه در حوزه IoT) متمرکز هستند و نیازمندیهای خاص خود را دارند. چگونه باید این فناوریهای جدید و همچنین ملاحظات تحول دیجیتال در سازمان، حاکمیت فناوری اطلاعات (IT Governance)، عملیات فناوری اطلاعات در سازمان (ITOps)، امنیت تولید نرمافزار و همچنین ملاحظات مربوط به رویکردهای نوین زیرساخت فناوری بهویژه رایانش ابری نظیر: SaaS، PaaS، IaaS و… در زمان تصمیمگیری درمورد تعریف یک پروژه جدید نرمافزاری توجه کنیم؟
ملاحظات مربوط به لایسنس نرمافزار بهویژه در حوزه استفاده از نرمافزارهای متنباز (مانند ERPهای Open Source) و ابزارهای اوپن سورس تولید و توسعه نرمافزار (مانند دات نت کُر مایکروسافت) با درنظرداشتن ملاحظات امنیتی و اقتصادی فنی و همچنین چالشهای ناشی از تحریم، موضوع مهم دیگری است که لازم است مورد دقت کافی قرار بگیرند.
ضمنا تاثیرات ظهور فناوریهای نوین توسعه نرمافزار بدون نیاز به دانش برنامهنویسی نظیر BPMSها، Headless CMSها، ابزارهای Low Code و No Code از یک سو و درهم آمیختهشدن فناوریهای نوینی چون هوش مصنوعی، کلانداده و دادهکاوی، بلاکچین و… با صنعت نرمافزار هم موضوعات دیگری هستند که لازم است سازمان برای آنها سیاست مشخصی داشته باشد.
همانطور که ملاحظه میفرمایید موضوعات بسیار متنوعی درمورد سیاستگذاری تامین راهکارهای فناوری اطلاعات در سازمان باید مورد توجه قرار بگیرند. با این حال نیازی نیست که تمام سازمانها درمورد تمامی موضوعات برای خود سیاست مشخصی را اتخاذ کنند. درواقع تجربه نشان میدهد که سه مجموعه سیاست کلی در حوزه تأمین راهکارهای فاوا میتواند تا حدود زیادی چارچوب تصمیمگیری کلان سازمان را در این حوزه شکل دهد که در ادامه به آنها اشاره میکنیم.
گفتنی است سه حوزه سیاستهای فاوای مورد اشاره هم میتواند بهصورت کلی توسط سازمان در چارچوب «استراتژی فناوری اطلاعات سازمان» شکل بگیرد و هم بهصورت اقتضایی و بهازای هر پروژه در مورد آن با توجه به مزایا و معایب هر گزینه تصمیمگیری شود.
راهحلهاي فاوا به دو صورت راهحلهاي آماده و سفارشي تأمين ميشوند. راهحلهاي آماده بدون سفارش خاصي از جانب يک مشتري توسط شرکتهاي فعال در زمينه توليد راهحلهاي فاوا تهيه و در بازار عرضه ميشوند.
گزينههاي مطرح در زمينه روش تأمين راهحلهاي فاوا بههمراه مزايا و معايب هر يک در شکل زیر ارائه شده است:
با توجه به مزايا و معايب مطرح درمورد هر يک از گزينهها، الگوي منتخب براي تامين راهحلهاي فاوا را میتوان بهصورت موردی درمورد هر پروژه انتخاب کرد.
امروزه تصميمگيري در زمينه استفاده از آخرين فناوریهاي فناوري اطلاعات در سازمانها مباحث فراواني را به همراه دارد. منظور از آخرين فناوریها، فناوریهايي است كه بهتازگي به بازار عرضه شدهاند و هنوز نسبت به كاربرد مناسب و اثربخش آنها اطمينان وجود ندارد؛ با اين حال درصورت كاربرديشدن اين فناوریها بهرهبري از آنها براي شرکت مزيت ايجاد ميکند. فناوریهاي موجود قابل دسترسي نيز فناوریهايي هستند كه در دورهاي نسبتا طولاني در عمل مورد استفاده قرار گرفتهاند و اطمينانپذيري آنها اثبات شده است.
بر اين اساس گزينههاي مطرح در زمينه الگوی انتخاب فناوری به همراه مزايا و معايب هر يک در شکل زیر ارائه شده است:
با توجه به مزايا و معايب مطرح درمورد هر يک از گزينهها، الگوي منتخب درمورد هر پروژه قابل انتخاب است.
درحال حاضر فناوریهای اساسي در تهيه نرمافزارها بر دو گزينه جنبش نرمافزارهاي متنباز و نرمافزارهای تجاري تمركز يافته است. جنبش نرمافزارهای متنباز عبارت از سيستمهايي است كه منابع آن (مانند کد منبع و ساير مستندات پشتيبان توليد نرمافزار) بهطور آزاد در اختيار همگان قرار گرفته است. درمقابل اين نرمافزارها، منابع اطلاعاتي و فرايندي نرمافزارهاي تجاري تنها در اختيار شركت توليدكننده نرمافزار است.
بر اين اساس گزينههاي مطرح در زمينه فناوری پايه نرمافزاري به همراه مزايا و معايب هر يک در شکل زیر ارائه شده است:
با توجه به مزايا و معايب مطرح درمورد هر يک از گزينهها و با درنظرگرفتن اين نکته که عملا راهحلهاي متنباز هم برای استفاده تجاری نيز بايد همراه با بستهاي از خدمات پشتيبانيشان خريداري شوند و درعین حال این راهحلها معمولا از نظر امکانات در سطح پایینتری نسبت به راهحلهای تجاری هستند، الگوي منتخب سازمان، قابل انتخاب خواهد بود.
پس از تعیین سیاستهای کلی سازمان درمورد نحوه تامین راهکارهای فناوری اطلاعات، نوبت پرداختن به پروژه مورد نظر میرسد. اگرچه برای تعریف پروژه نرمافزاری و انتخاب پیمانکار رویکردهای گوناگونی مطرح است؛ اما پیشنهاد ما استفاده از الگویی بومیسازیشده برگرفته از چارچوب بینالمللی کوبیت[5] است.
کوبیت برترین چارچوب بینالمللی راهبری مدیریت فاوا در سازمانهاست که به شکل گستردهای در جهان مورد پذیرش قرار گرفته است. کوبیت عبارت است از مدلي كنترلي براي درك و مديريت ريسكهاي مرتبط با IT و رفع مشكلات بين ريسكهاي كسبوكار، نيازهاي كنترلي و امور فني.
جهتگيري كسبوكار در COBIT، شامل «برقراري ارتباط بين اهداف كسبوكار با اهداف فناوري اطلاعات»، «تدوين شاخصها و مدلهاي بلوغ براي اندازهگيري ميزان دستيابي به اهداف» و «شناسايي مسئوليتهاي مرتبط متوليان فرايندهاي كسبوكار و متوليان فرايندهاي فناوري اطلاعات در سازمان» است.
در شکل زیر چرخه سرمایهگذاری روی توسعه داراییهای فناوری اطلاعات سازمانی (نرمافزار و سختافزار و زیرساخت) برگرفته از چارچوب کوبیت نشان داده شده است:
این چرخه به ما نشان میدهد که برای هر گونه تصمیمگیری برای سرمایهگذاری در حوزه فناوری اطلاعات در سازمان، باید ابتدا نیازمندیهای کسبوکار از آن، بهصورت کامل مشخص شود، سپس منابع مورد نیاز فناوری اطلاعات برای اجرای آن نیازمندی کسبوکاری شناسایی و روی آن سرمایهگذاری صورت پذیرد و در مرحله بعدی فرایندهای نگهداری و پشتیبانی فناوری اطلاعات هم در سازمان برای دارایی فناوری اطلاعات ایجادشده تعریف شوند تا درنهایت امکان مدیریت یکپارچه اطلاعات برای سازمان فراهم شود و به این ترتیب به نیازهای کسبوکار هم پاسخ داده شود. این چرخه بهصورت مستمر باید در سازمان ادامه پیدا کند.
نرمافزار یکی از داراییهای فناوری اطلاعات سازمان است؛ بنابراین توسعه آن هم در چارچوب چرخه فوق قابل طرح است. با این حال با توجه به اینکه موضوع مقاله حاضر که «انتخاب پیمانکار نرمافزار» است، در اینجا به توضیح دو حوزه «مدیریت تعریف نیازمندیهای کسبوکار» و «تعریف و تولید راهکارهای فناوری اطلاعات» میپردازیم که در میان ابعاد فوق، بسیار کلیدی هستند.
چارچوب کوبیت برای اجراییسازی دو حوزه «مدیریت تعریف نیازمندیهای کسبوکار» و «تعریف و تولید راهکارهای فناوری اطلاعات» سه فرایند مهم را در حوزه مدیریت توسعه داراییهای فناوری اطلاعات ارائه میدهد که در سه مرحله، تعریف و مدیریت یک پروژه نرمافزاری را پیش میبرند. در ادامه این سه فرایند را بررسی خواهیم کرد.
در ابتدا باید نیازمندیهای کسبوکار در سازمان در مورد نرمافزار مورد نظر شناسایی شوند:
پس از این مرحله سازمان به تعریف دقیقی درمورد پروژه نرمافزاری مورد نظر و دلیل اجرای آن رسیده و میتواند وارد مرحلهی بعدی شود که در آن در مورد جزئیات پروژه و چگونگی اجرای آن تصمیمگیری میشود:
در این مرحله سازمان به تصمیم درمورد اینکه آیا میخواهد پروژه را برونسپاری کند یا خیر، رسیده است. درصورتی که تصمیم به برونسپاری پروژه باشد فرایند زیر میتواند بهعنوان رویکرد انتخاب پیمانکار پروژه مورد توجه قرار بگیرد:
در این مقاله تلاش شد تا با بیان ساده یک الگوی کلان برای مدیران سازمانها بهویژه مدیران فناوری اطلاعات برای تصمیمگیری درمورد چگونگی تعریف و اجرای پروژههای نرمافزاری ارائه شود. با این حال جزئیات فرایندهای فوق از جمله شرح زیرفرایندها و قالب استاندارد مستندات از جمله سند RFP و همچنین اصول کلیدی که باید در فرایندهای فوق در نظر گرفته شود (از جمله نکات مهم در زمان تعریف شرح پروژه و دامنه آن و شرایط قراردادی بین کارفرما و پیمانکار)، موضوعی است که در این مقاله نمیگنجند؛ اما با استفاده از خدمات مشاوران خبره و بهرهگیری از استانداردهایی چون «نماتن (نظام مهندسی و استانداردهای تولید و توسعه نرمافزار)» میتواند به سازمانها در این زمینه یاری برساند.
[1] Digital Transformation
[2] Request For Proposal
[3] Functional Requirements
[4] Non Functional Requirements
[5]COBIT( Control Objectives for information and related Technology)