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