پاسخ کوتاه
اگر نرمافزار فعلی اجرا میشود، داده قابل اتکا دارد و بخشهایی از آن قابل نگهداریاند، اصلاح تدریجی معمولاً گزینه کمریسکتری است. بازنویسی کامل زمانی توجیه دارد که معماری یا فناوری فعلی مانع جدی تغییر، امنیت یا پایداری باشد و برنامه انتقال داده و همزیستی دو نسخه از ابتدا تعریف شود.
مقایسه اصلاح تدریجی و بازنویسی کامل
زمان رسیدن به نتیجه
- اصلاح تدریجی
- رفع مرحلهای مشکلات مهم
- بازنویسی کامل
- دیرتر؛ تا آمادهشدن نسخه جایگزین
ریسک عملیات
- اصلاح تدریجی
- کمتر اگر تغییرها کوچک باشند
- بازنویسی کامل
- بالاتر هنگام انتقال و تعویض نسخه
حفظ قواعد موجود
- اصلاح تدریجی
- بیشتر
- بازنویسی کامل
- نیازمند کشف و بازپیادهسازی
آزادی معماری
- اصلاح تدریجی
- محدود به ساختار قابل حفظ
- بازنویسی کامل
- بیشتر، اما پرهزینهتر
بازگشت از تغییر
- اصلاح تدریجی
- سادهتر در انتشارهای کوچک
- بازنویسی کامل
- پیچیدهتر در مهاجرت نهایی
چه زمانی اصلاح مرحلهای منطقیتر است؟
- سامانه در حال استفاده و توقف طولانی آن غیرممکن است.
- مشکل اصلی به چند ماژول یا گلوگاه قابل تفکیک محدود است.
- داده و قواعد کسبوکار فعلی ارزشمند و نسبتاً قابل اعتمادند.
- میتوان تست یا لاگ کافی برای کنترل تغییرها اضافه کرد.
- ارزش تجاری اصلاحهای کوچک سریعتر از نسخه کاملاً جدید آزاد میشود.
چه زمانی بازنویسی کامل قابل دفاع است؟
- فناوری فعلی دیگر پشتیبانی امنیتی یا نیروی متخصص در دسترس ندارد.
- مرز ماژولها از بین رفته و هر تغییر چند بخش نامرتبط را خراب میکند.
- نیازهای جدید با مدل داده و معماری فعلی سازگار نیستند.
- هزینه نگهداری مستمر از هزینه ساخت و انتقال کنترلشده بیشتر شده است.
- نسخه جدید میتواند مرحلهای کنار نسخه قبلی اجرا و راستیآزمایی شود.
خروجی ممیزی پیش از تصمیم باید چه باشد؟
ممیزی خوب فقط فهرست ایرادهای کد نیست. باید گزینههای تصمیم را با اثر تجاری، ریسک، پیشنیاز و ترتیب اجرا ارائه کند.
- نقشه اجزای سامانه، دیتابیس و وابستگیها
- فهرست ریسکهای بحرانی امنیت، داده و پایداری
- بخشهای قابل حفظ، قابل اصلاح و نیازمند جایگزینی
- برنامه پیشنهادی مرحلهها و معیار موفقیت هر مرحله
- فرضها، دسترسیهای لازم و موارد خارج از برآورد
پرسشهای متداول
آیا بازنویسی نرمافزار قدیمی همیشه کیفیت را بهتر میکند؟
خیر. اگر قواعد محصول، تست و برنامه انتقال روشن نباشند، نسخه جدید میتواند همان مشکلات را با فناوری تازه تکرار کند.
آیا میتوان یک ماژول را جداگانه بازنویسی کرد؟
بله، اگر مرز داده و ارتباط آن با بخشهای دیگر قابل تعریف باشد. این روش معمولاً امکان تحویل مرحلهای و بازگشت امنتری ایجاد میکند.
برای تصمیم اصلاح یا بازنویسی چه دسترسیهایی لازم است؟
معمولاً مخزن کد، روش اجرا، ساختار دیتابیس، زیرساخت، لاگها و گفتوگو با کاربرانی که فرایند واقعی را میشناسند لازم است.
خدمت و راهنماهای مرتبط
برای ادامه مسیر، صفحه خدمت مرتبط، نمونهکار و راهنماهای مکمل را ببینید.
منابع و مبنای تدوین
این راهنما با استفاده از مستندات فنی و منابع تخصصی زیر تدوین شده است. تصمیم نهایی هر پروژه باید با دادهها، قرارداد و شرایط واقعی همان سازمان تطبیق داده شود.
