کسانی که حداقل یک پروژه نرم افزاری تولید و عرضه کرده باشند، احتمالاً با مصیبتهای «تغییر یا کشف دیرهنگام نیازها» آشنا هستند!
تصور کنید شما فاز «تحلیل نیازها» یا «مهندسی نیازها» را طی کردهاید و در حال کدنویسی و یا شاید در حال تست نهایی پروژه هستید و مشتری یک دفعه نیاز جدیدی را مطرح میکند یا تغییری در نیازهایش میدهد! این گاهی یک فاجعه را تشکیل میدهد! گاهی تغییر یک نیاز، کل ساختار پروژه را به هم میریزد! یعنی انگار که پروژه را از صفر شروع کردهاید!
آقای بری بوهم (Boehm) که ایده «مدل حلزونی» نیز از ایشان است، جدول بسیار جالبی دارد که نسبت هزینه و فازی که خطا (یعنی نیاز جدید یا تغییر در نیازها) کشف میشود را به خوبی مشخص میکند:
بر اساس این جدول، اگر یک نیاز در فاز تحلیل سیستم و تحلیل نیازمندیها کشف شود، خوب، خیلی بهموقع کشف شده و هزینه خاصی ندارد! اما اگر بعد از تحلیل، در فاز طراحی سیستم (یعنی فازی که شروع به رسم دیاگرامها بر اساس نیازها میکنیم) کشف شود، ۳ تا ۶ برابر فاز تحلیل هزینه در بر خواهد داشت! اگر کشف خطا در مرحله پیادهسازی (یعنی زمانی که برنامهنویس پروژه مشغول کدنویسی بر اساس دیاگرامها است) رخ دهد، ممکن است ۱۰ برابر نسبت به فاز تحلیل هزینه در بر داشته باشد... و به همین صورت جلو بروید...
و واقعاً درست است که اگر این کشف خطا در فاز «نگهداری» (یعنی زمانی که شما پروژه را تحویل دادهاید و مثلاً چند ماه یا سال هم از تولید پروژه گذشته) کشف شود، گاهی اصلاح آن خطا یا تغییر کدها بر اساس تغییر نیازها، تا ۱۰۰۰ برابر هزینه دارد!!
منظور از هزینه چیست؟
دقت کنید که در رشته کامپیوتر، هر گاه گفته میشود «هزینه» منظور، فقط پول نیست! علاوه بر بحث مادی، منظور «زمانبر بودن» و در اینجا «خستهکنندهتر بودن» کار نیز هست.
موفق باشید؛
حمید رضا نیرومند