ایکون سایت امیر مهجوریان

الگوهای مدرن‌سازی و نوسازی نرم‌افزارهای موروثی در سازمان

1. چالش نرم‌افزارهای موروثی و فرسوده

مدرن‌سازی نرم‌افزارهای موروثی (Legacy Application Modernization) پروسه ارتقاء و بازسازی مولفه‌های نرم‌افزاری منسوخ و فرسوده در جهت تحقق اهداف کسب‌وکار سازمان است. این پروسه، پیچیده و هزینه‌بر است و نیازمند انتخاب استراتژی (سناریو) صحیح برای بازسازی و جایگزینی مولفه‌های فرسوده است.

سیستم‌های (نرم‌افزارهای) موروثی در ادبیات فناوری اطلاعات معادل آن‌ دسته از نرم‌افزارها یا سکوهای نرم‌افزاری هستند که باوجود اینکه متد، فناوری و معماری آن‌ها “منسوخ” شده است، همچنان در سازمان استفاده می‌شوند. ویژگی این سیستم‌ها لزوما “سن” بالا نیست، بلکه ممکن است یک نرم‌افزار نسبتا جدید نیز به‌دلیل کیفیت پایین طراحی و تولید، به سرعت به دسته نرم‌افزارهای موروثی بپیوندد. سیستم‌های موروثی معمولا چالش‌های مهمی برای سازمان به همراه دارند: از نظر سکوهای نرم‌افزاری و فناوری قابل ارتقاء نیستند و به همین جهت در معرض تهدیات امنیتی هستند، قابلیت توسعه کاکردی و به‌روزرسانی منطق کسب‌وکاری ندارند، هزینه نگهداشت و پشتیبانی آن‌ها بالا است و در نهایت کمتر متخصص آی‌تی برای پشتیبانی از آن‌ها وجود دارد. در سازمان‌های دیجیتال امروزی، نوسازی نرم‌افزارهای کاربردی و زیرساخت‌های آی‌تی برای سازمان‌هایی که به دنبال رقابت، چابکی و پاسخگویی به نیازهای در حال تغییر مشتریان هستند، حیاتی است.

براساس ارزیابی موسسه معتبر گارتنر، 90% نرم‌افزارهای کاربردی موجود تا سال 2025 فرسوده و ناکارمد خواهند شد، زیرا بودجه لازم برای مدرن‌سازی و ارتقاء آن‌ها متناسب با نیازهای کسب‌وکاری و فناوری روز اختصاص داده نخواهد شد. نرم‌افزارها و فناوری‌های قدیمی و فرسوده نه تنها حدود 40 درصد از بودجه آی‌تی را برای نگهداشت می‌بلعد، بلکه مانع اصلی در چابکی کسب‌وکار، تضمین امنیت سایبری و نوآوری فناوری هستند. گزارش‌های متعددی از جمله نظرسنجی معروف “وضعیت مدیران ارشد آی‌تی در سال 2022” بیان‌گر اهمیت رو به رشد چالش مدرن‌سازی نرم‌افزارهای کاربردی و زیرساخت‌های فناوری است(منبع).

2. سناریوهای مدرن‌سازی نرم‌افزارهای موروثی (5R)

براساس مدل 5R موسسه گارتنر، 5 الگوی اصلی برای مدرن‌سازی و نوسازی نرم‌افزارهای سازمان وجود دارد که عبارتند از “Rehost, Replatform, Rearchitect, Rebuild, Replace” که هر کدام از این 5 الگو، ریسک، هزینه، تبعات و پیچیدگی متفاوتی دارند و هنر معماران، هدایت صحیح آی‌تی براساس این الگوها (سناریوها) است.

سناریو /الگوهای مدرن‌سازی نرم‌افزارهای موروثی

دو الگوی اول (Rehost, Replatform) منجر به تغییر فناوری و زیرساخت نرم‌افزار می‌شوند و صرفا مشکلات حاصل از قدیمی‌شدن فناوری را برطرف می‌کنند. الگوی بازمعماری (Rearchitect)، منجر به تغییر در هر دوی پلتفرم فناوری و منطق یا کد نرم‌افزار می‌شود و مشکلات حاصل از معماری و کیفیت نرم‌افزار را اصلاح می‌کند دو الگوی تولید مجدد و جایگزینی (Rebuild, Replace)، فرصت تغییر در کارکردها و قابلیت‌های کسب‌وکاری نرم‌افزار یا گسترش تعریف نرم‌افزار را نیز می‌دهد و زمانی لازم است که هر سه عامل فناوری، معماری و کارکردهای نرم‌افزار باید تغییر کند.

در جدول زیر، تفاوت این 5 الگوی مدرن‌سازی نرم افزارهای مشخص شده است:

سناریو/الگواصطلاحات معادلتوضیحات
Rehost“Lift and shift,” redeployاستقرار نرم‌افزار بر روی یک زیرساخت جدید (فیزیکی، مجازی، کلود) و بدون هرگونه تغییر در کد و معماری نرم‌افزار یا بهبود قابلیت‌های کارکردی آن
Replatform“Lift and reshape,” reviseمهاجرت از یک پلتفرم نرم‌افزاری قدیمی به یک پلتفرم جدید (برای مثال از نسخه قدیمی زبان VB به پلتفرم جدید VB.Net، یا از یک پایگاه داده قدیمی به نسخه های جدید) که این شاید مستلزم تغییرات اندک در نرم‌افزار جهت انطباق با پلتفرم جدید باشد. در این حالت نیز معماری نرم‌افزار و قابلیت‌های کارکردی آن تغییر نمی‌کنند.
RearchitectRe-engineer, refactorبازمعماری نرم‌افزار می‌تواند در سطح refactoring  کد برنامه و الگوریتم‌ها باشد یا بازطراحی اساسی مولفه‌ها و منطق نرم‌افزار که در هر حالت منجر به تغییر اساسی در کارکرد و کیفیت نرم‌افزار ‌می‌شود، اما نباید هدف و ماموریت نرم‌افزار تغییر نماید.
RebuildRewrite, redesignتولید مجدد یا بازنویسی اساسی نرم‌افزار در یک پلتفرم و فناوری جدید و با معماری کاملا متفاوت اما با تاکید بر دامنه و نیازمندی‌های اولیه نرم‌افزار.
ReplaceRepurchasing, “drop and shop”کنارگذاشتن کامل نرم‌افزار قدیمی و خرید یک محصول آماده (پکیج) یا سیستم سفارشی جدید با ماموریت و نیازمندی جدید.

تمرکز هر یک از 5 سناریو بر یکی از لایه‌های “فناوری”، “معماری” و یا “عملکرد” است که در شکل زیر تبیین شده است.

سطح تغییرات در مدرن سازی نرم افزارها

3. پیشران‌های اصلی برای مدرن‌سازی و نوسازی نرم‌افزارهای سازمانی

از دیدگاه کسب‌وکاری سه پیشران اصلی برای مدرن‌سازی وجود دارد:

  • تناسب کسب‌وکاری (Business fit): نرم‌افزارهای موروثی براساس نیازمندی و صورت‌مساله گذشته تعریف و طراحی شده‌اند و لذا با نیاز امروز کسب‌وکار تطابق ندارند.
  • نوآوری (Innovation): نرم‌افزارهای قدیمی و فرسوده نسبتی با فناوری‌های مدرن و نوآوری‌های مدنظر کسب‌وکار ندارند.
  • چابکی(Agility): نرم‌افزارهای موروثی و زیرساخت‌های آن امکان تغییرات مداوم و سریع را متناسب با نیازمندی کسب‌وکار ندارند و یا این تغییرات با هزینه و ریسک غیرقابل قبول انجام می‌شود

از دیدگاه فناوری اطلاعات نیز می‌توان سه پیشران زیر را برای مدرن‌سازی برشمرد:

  • هزینه(Cost) : مجموع هزینه عملیاتی، نگهداشت و پشتیبانی نرم‌افزارهای موروثی بسیار بالا و غیرقابل توجیه است. گزارش شده که فقط در بخش دولتی آمریکا بیش از 100 بیلیون دلار هزینه سالانه برای نگهداشت نرم‌افزارها و زیرساخت‌های فرسوده (موروثی) هزینه می‌شود که این مبلغ بخش مهمی از کل بودجه آی‌تی است.
  • پیچیدگی (Complexity) : پیچیدگی نرم‌افزار خود منجر به مشکلات دیگری مانند هزینه و ریسک بالای تغییرات می‌شود.
  • ریسک (Risk): نرم‌افزارهای منسوخ عامل ریسک‌های امنیتی، عدم ‌مقیاس‌پذیری و عدم تطابق با مقررات هستند. از نظر نیروی انسانی نیز مهمترین ریسک، کمبود نیروی انسانی برای پشتیبانی از نرم‌افزارهای قدیمی (منسوخ) است.

لازم به ذکر است، یکی از موضوعات مهم درباره سیستم‌های موروثی عدم امکان پشتیبانی آن‌ها در سازمان است، ازآنجا که دانش فناوری اطلاعات دایم درحال دگرگونی است، طبیعتا تیم‌های جدید و جوان آی‌تی در سازمان با فناوری‌ها و ابزارهای قدیمی و موروثی (مربوط به دهه‌های قبل) آشنایی ندارند و تمایلی نیز برای یادگیری فناوری‌های ازرده خارج نباید داشته باشند!، لذا به تدریج تعداد افراد آی‌تی سازمان که دانش نگهداشت و پشتیبانی ابزارهای از رده خارج‌شده را داشته باشند، کم و کمتر می‌شود که متعاقبا ریسک‌های متعددی را به همراه دارد .

4. انتخاب بهترین سناریو برای مدرن‌سازی

با توجه به توضیحات بالا، 5 سناریوی اصلی مدرن‌سازی (5R) تبیین شد که تمرکز این سناریوها یکی از سه موضوع اصلی  “فناوری”، “معماری” و یا “عملکرد” است، از طرف دیگر پیشران‌های تغییر و مدرن‌سازی در سازمان نیز در قالب 6 عامل کلیدی (سه عامل کسب‌وکاری و سه عامل فناوری اطلاعات) طبقه‌بندی شدند.

با توجه به نکات فوق برای انتخاب سناریو مدرن‌سازی باید مطابق با شکل زیر ابتدا ریشه مشکل (صورت مساله) را از یکی از 6 عامل اصلی (پیشران مدرن‌سازی) انتخاب نمود، سپس مشخص می‌شود که این عوامل بر کدامیک از سه محور اصلی “معماری”، “فناوری” و یا “عملکرد” موثر است. نهایتا سناریوی مدرن‌سازی استخراج می‌شود.

انتخاب سناریوی مدرن‌سازی نرم افزارها

البته باید تاکید داشت همه این الگوها و مثال‌ها، در حد راهنمای کلان موثر است و هر سازمان باید با ارزیابی فنی و دقیق، نسبت به برنامه‌ریزی مدرن‌سازی نرم‌افزارهای موروثی در سازمان خود اقدام نماید.

5. جمع‌بندی

سیستم‌های موروثی آن دسته از نرم‌افزارهای کهنه و ازرده خارج در سازمان هستند که مدرن‌سازی (نوسازی) برای آن‌ها ضروری است. در اینجا صرفا موضوع مدت عمر سیستم نیست، بلکه درجه فرسودگی کارکردی-فناوری مهم است. نرم افزارهای قدیمی و موروثی، بیشترین ریسک نشت اطلاعات و آسیب‌پذیری دربرابر حملات سایبری را دارند و نکته مهم اینکه هرگونه هزینه برای امن‌سازی این محصولات فرسوده و ازرده‌خارج نه‌تنها توجیه اقتصادی ندارد بلکه موثر نیز نخواهد بود. تنها راهکار، مدرن‌سازی و نوسازی این نرم‌افزارهای کاربردی است بگونه‌ای که هم با نیازهای نوین کسب‌وکار انطباق داشته باشند و هم به فناوری‌های روز و قابل توسعه مجهز شوند.

اگرچه مدرن‌سازی آی‌تی پروسه‌ای است که مربوط به امروز و دیروز نیست ولی ویژگی‌های عصر دیجیتال در تغییر شتابان فناوری‌ها، ضرورت چابکی معماری، هایپر اتوماسیون و پیش‌نیازهای تحول دیجیتال، موضوع مدرن‌سازی را به عنوان یکی از مهمترین پیش‌نیازهای تحول کسب‌وکار (و دیجیتال) معرفی می‌کند.

الگوی 5R موسسه گارتنر یک نمونه کاربردی برای طبقه‌بندی سناریوها و گزینه‌های مدرن‌سازی نرم‌افزارهای موروثی و انتخاب گزینه بهینه برای هر سازمان است که در این یاداشت به آن پرداختیم. البته موضوع مدرن‌سازی آی‌تی مبحثی گسترده است که در آن به تحول در مدل عملیاتی آی‌تی، خط‌مشی دیجیتال و مدرن سازی سیستم‌های قدیمی می‌پردازد و در این نوشته صرفا به دسته سوم اشاره شد.

اشتراک‌گذاری پست: