انتخاب رویکرد توسعه (قسمت چهارم)
در قسمت قبلی مقالۀ انتخاب رویکرد توسعه، روشگانِ خطی-تکرارشوندۀ افزایشی یا Incremental را بررسی کردیم. در این بخش نیز به بررسی روش خطی-تکرارشوندۀ دیگری میپردازیم: روش مارپیچی یا Spiral .
روش مارپیچی (اسپیرال) (Spiral)
نوع چارچوب: ترکیبی از خطی و تکرارشونده
اصول پایه:
- تمرکز بر ارزیابی ریسک و بهحداقل رساندن ریسک با تقسیم پروژه به بخشهای کوچکتر و تسهیل تغییرات در فرایند توسعه و ایجاد فرصت برای ارزیابی ریسکها و سنجیدن ملاحظات لازم برای استمرار پروژه در طی چرخۀ حیات است.
- «پیشروی در هر سیکل شامل توالی یکسانی از مراحل است؛ چه برای هر بخشی از محصول و چه هر سطحی از مهارت؛ از یک مستند کلی مفهوم عملیات [۱] گرفته تا کدنویسی هرکدام از برنامهها.» (بوهم، ۱۹۸۶) [۲]
- هر گردش/سفر در مارپیچ از ۴ تقاطع ربع اصلی میگذرد: (۱) تعیین اهداف، راههای جایگزین، و محدودیتهای تکرار؛ (۲) ارزیابی راههای جایگزین؛ شناسایی و حلوفصل ریسکها؛ (۳) توسعه و بررسی اقلام قابلتحویل در تکرار؛ و (۴) برنامهریزی تکرار بعدی (بوهم، ۱۹۸۶ و ۱۹۸۸) [۳].
- هر سیکل با شناسایی ذینفعان و شرایط بُرد آنها آغاز میشود و با بازبینی و تعهد به پایان میپذیرد. (بوهم، ۲۰۰۰) [۴].
نقاط قوت:
- اجتناب از ریسک را افزایش میدهد.
- انتخاب بهترین روشگان برای توسعۀ تکرارشوندۀ نرمافزاری [۵] موردنظر را بر مبنای ریسک پروژه آسان میکند.
- میتواند همراه با روشگانهای واترفال، پیشنمونهسازی و افزایشی، بهعنوان یک مورد ویژه به کار گرفته شود و برحسب نوع ریسک پروژه، مناسبترین ترکیب این مدلها برای تکرار نرمافزاری موردنظر حاصل شود. مثلاً در یک پروژه که خطر برآورده نشدن نیازمندیهای کاربران در آن کم است اما خطر از دست رفتن بودجه و عقب افتادن از زمانبندی بالا است، اساساً بهتر است از یک رویکرد خطی واترفال برای تکرار نرمافزاری موردنیاز استفاده شود. برعکس، اگر عوامل ریسک معکوس شوند، روشگانِ مارپیچی میتواند به یک رویکرد پیشنمونهسازی تکرارشونده منجر شود.
نقاط ضعف:
- چالشانگیز بودن تعیین ترکیب دقیق روشگانِ توسعه برای هر تکرار مارپیچ (اسپیرال).
- بیشازحد سفارشی بودن برای هر پروژه و درنتیجه پیچیدگی و محدود بودن قابلیت استفاده مجدد.
- نیاز به یک مدیر پروژۀ باتجربه و بامهارت برای اعمال آن به پروژۀ موردنظر.
- فقدان کنترل معین برای رفتن از یک چرخه به چرخۀ دیگر. بدون اعمال کنترل، ممکن است هر چرخه موجب کار بیشتری برای چرخۀ بعدی شود.
- قطعی نبودن زمان تحویل؛ چرخهها بدون هیچ وضعیت نهاییِ مشخصی ادامه مییابند، بنابراین ازلحاظ بیتوجهی به بودجه یا زمانبندی، یک ریسک ذاتی وجود دارد.
- امکان ختم شدن پروژه به پیادهسازی چارچوب واترفال.
موقعیتهایی که بیشتر برای آن مناسب است:
- سیستمهای بلادرنگ و سیستمهایی که امنیت برای آنها ضروری باشد.
- اجتناب از ریسک، اولویت داشته باشد.
- به حداقل رساندن مصرف منابع الزاماً اولویت نداشته نباشد.
- مدیر پروژه بسیار بامهارت و باتجربه باشد.
- کنترل مستندات و تائید شدیدی برای نیازمندیها موجود باشد.
- ممکن است پروژه ترکیبی از دیگر روشگانها باشد.
- درجه بالایی از دقت لازم باشد.
- پیادهسازی نسبت به کارکردی که میتوان در نسخههای بعدی اضافه شوند اولویت داشته باشد.
موقعیتهایی که کمتر برای آن مناسب است:
- اجتناب از ریسک اولویت کمی داشته باشد.
- درجۀ بالایی از دقت ضرورت نداشته باشد.
- کارکرد بر پیادهسازی اولویت داشته باشد.
- به حداقل رساندن مصرف منابع جداً اولویت داشته باشد.
برای آشنایی با توسعۀ سریع نرمافزار (RAD) با ما در قسمت پایانیِ این مقاله (قسمت پنجم) همراه باشید.
آنچه بررسی کردیم:
روشگان (متدولوژی) آبشاری یا Waterfall (قسمت اول)
روشگان پیشنمونهسازی یا Prototyping (قسمت دوم)
روشگان افزایشی یا Incremental (قسمت سوم)
[۱] Concept of operation document
[۲] (Boehm, 1986)
[۳] (Boehm, 1986 and 1988)
[۴] (Boehm, 2000)
[۵] Software iteration