توسعه نرمافزاری سازگار (ASD)
این تکنیک را جیمز های اسمیت معرفی کرد. نسخه اصلاح شده و توسعه یافته آن در سال ۲۰۰۰ ارائه شد. ASD اساساً بر توسعه سیستمهای پیچیده و بزرگ تمرکز دارد. این روش بر توسعه افزایشی-تکراری همراه با نمونهسازی مداوم تاکید دارد. هدف ASD بر ایجاد تعادل و ارائه یک چارچوب با رهنمودهای کافی است که از افتادن پروژهها در هرج و مرج جلوگیری کند اما نه به اندازهای که مانع خلاقیت و نوآوری شود.
فرایندهای روش ASD
ASD فراتر از فقط تعیین چارچوب است. ASD مراحل ملموسی را تعیین می کند که شامل چرخه عمر است. فرایند ASD از چرخههایی با 3 مرحله تشکیل شدهاست. این مراحل در شکل زیر نشان داده شده است. این سه مرحله شامل: تفکر، همکاری و یادگیری میشود. مرحله تفکر بر نقش تغییرات در فرآیند تاکید داشته و در واقع به جای برنامهریزی در محیطی با عدم قطعیت است. مرحله همکاری نشاندهنده اهمیت کار تیمی برای توسعه سیستمهایی با تغییرات بالا است. یادگیری بر نیاز به توجه و پاسخ به اشتباهات تاکید دارد و در واقع نشاندهنده این حقیقت است که نیازها ممکن است در طول توسعه تماماً تغییر کنند.
شکل 1: چرخه حیات ASD
شکل پایین مراحل ASD را با جزئیات بیشتر نمایش میدهد که در واقع میتوان گفت ASD از 5 مرحله تشکیل شده است که سه مرحله میانی موتورهای توسعههای تکراری این متد را شکل میدهند.
شکل 2: فازهای چرخه حیات ASD
مراحل ASD و فعالیتهایی که در هر یک انجام میشوند در ادامه شرح داده شده اند.
- آغاز پروژه: فعالیتهایی که در این مرحله انجام میشوند عبارتند از::
- تعیین مأموریت پروژه، اهدافی را که باید به آنها رسید و نیازهایی که پروژه باید تأمین کند، را تعریف میکند.
- شناسایی تیم پروژه.
- ایجاد ابزارهای مأموریت با در نظر گرفتن موارد زیر:
- چشم انداز (منشور) پروژه که حدود موارد زیر را تعیین میکند:
- گستره، اندازه و محتوای پروژه
- منابع تخصیص داده شده به پروژه
- کارکنان پروژه، تعیین مهارتها، دانش و اختیار مورد نیاز برای اجرای موفق پروژه.
- ارتباطات میان افراد درگیر یا متأثر از پروژه که “جامعه پروژه” نامیده میشود.
- نمودار مأموریت محصول، که عوامل اولیه موفقیت محصول را شناسایی میکند. بخش اصلی این نمودار ماتریسی است که اولویتهای واگذار شده به چهار متغیر پروژه (گستره، کیفیت، زمانبندی و منابع) را به منظور هدایت پروژه به سوی محصول موفق نشان میدهد. این ماتریس همچنین ارزشهای هدف هر متغیر و درجه موازنه مجاز را نشان میدهد.
- مشخصات محصول که شامل نتایج تحلیلها و مدلسازی سیستم است تا در عمق و پهنا در مراحل بعدی غنی شود. در این مرحله، فهرستی از خواستههای عمومی وجود دارد همچنین اولویتها و وابستگیهای درونی و ریسکهایی را که در توسعهشان وجود دارد را نشان میدهد، همچنین مدلهای سیستم که قابلیت کلی، گروههای هدف عمده و تعاملهای درگیر را نشان میدهد.
- جدول اطلاعات پروژه، که سندی یک صفحهای است، دانشی کلی جمعآوری شده درباره پروژه را به اختصار بیان میکند. این جدول عموماً شامل اهداف پروژه، کارفرمایان و حامیان، تیم توسعه، ویژگیهای(قابلیتهای) اصلی سیستم، گستره کلی (به شکل نمودار)، منابع، منافع، مفاهیم، مایلستونها، محدودیتها، اولویتها و ریسکهای کلیدی است.
- چشم انداز (منشور) پروژه که حدود موارد زیر را تعیین میکند:
- دریافت تأییدیه از کارفرمایان یا حامیان و اخذ مجوز برای پیش بردن پروژه.
- تقسیم ارزشهای مأموریت میان جامعه پروژه، از طریق بحث و توافق روی کیفیت اهداف و معیارهای ارزیابی.
پیشنهاد مطالعه: چارچوب توسعه ویژگی محور (FDD) در مدیریت چابک
- برنامه ریزی چرخه سازگار: فعالیتهایی که در مرحله اول بخش توسعه تکراری چرخه ASD انجام میشوند عبارتاند از:
- تعیین تایم باکسها برای کل پروژه و هر یک از چرخههای پروژه. قبل از مشخص کردن تایم باکسها برای چرخههای توسعه، تعدادی از چرخههای ضروری برای توسعه سیستم باید برآورد شوند. تایم باکسهای چرخه در ASD معمولاً دو تا هشت هفته طول میکشند.
- نگارش بیانیههای هدف برای چرخههای توسعه. این بیانیهها به تیم توسعه کمک میکنند تا تلاش خود را حین چرخه متمرکز کند.
- تعریف اجزای محصول. اجزای به دست آمده از سیستم نهایی که خواستهها را اجرا میکنند و سه نوع اند: اجزای ویژگی که ویژگی دامنه هستند، اجزای تحلیل که منطق تجاری سیستم را اجرا میکنند و اجزای تکنولوژی و اجزای پشتیبان که وابسته به دامنه هستند و اجزای طراحی که نقش زیربنای فنی را دارند.
- تخصیص اجزا به چرخهها، براساس ریسکهای توسعه و بررسیهای دقیق وابستگیهای داخلی آنها.
- برنامهریزی پروژه، فعالیتی است که معمولاً شامل طرح جداول زمانی احتیاطی برای چرخههای توسعه است(بررسی ریسکهای درون هر یک و منابعای که نیاز دارند) و استقرار ابزار مناسب (متدها، ابزارها و رویهها) برای توانمند کردن و ارتقا دادن همکاری و تعاون میان اعضای جامعه پروژه.
- تهیه فهرست کارهای پروژه شامل کارهایی است که باید حین مراحل باقی مانده پروژه انجام شوند. بیشتر کارها مستقیماً به توسعه اجزا مرتبطاند.
به دلیل طبیعت تکراری این مرحله، برنامههای فرض شده که حین اولین تکرار ایجاد شدند و در تکرارهای بعدی اصلاح و بهروز میشوند درسهای آموخته شده را منعکس میکنند.
- مهندسی هم زمان اجزا: فعالیتهایی که در این مرحله انجام میشوند و بخش اصلی توسعه تکراری چرخه ASD را تشکیل میدهند عبارتاند از:
- ایجاد اجزایی که به چرخهها محول شدند. اجزای کار معمولاً به صورت همزمان توسط تیم های توسعه که به صورت موازی کار میکنند ایجاد میشوند و بر مبنای هفتگی یا روزانه تحویل میشوند. اجزای ایجاد شده به سرعت وارد فرایند یکپارچهسازی میشوند. آزمون و دوباره سازی ، فرایندهای جاری و جزء این فعالیت هستند.
- مدیریت پروژه از طریق نظارت و کنترل پیوسته. حفظ همکاری درون و بین تیم و حفظ چرخه در مسیر درست، نگرانیهای اصلی هستند.
- آماده شدن برای تضمین کیفیت نهایی، از طریق ایجاد برنامههای آزمون در سطح سیستم و آزمونهای موردی.
- تدارک برای بازنگری کیفیت، با برنامهریزی برای جلسات بازنگری در مرحله بازنگری کیفیت.
- بازنگری کیفیت: فعالیتهایی که در آخرین مرحله تکرار انجام میشوند عبارتاند از:
- بازنگری چرخه اجرا، با برگزاری جلسات متمزکز و تسهیلشده برای مشتری. نتیجه این چرخه به مشتریها ارائه میشود. بازخورد درخواستهای تغییر به دقت ثبت میشوند تا در تکرارهای بعدی در نظر گرفته شوند.
- تعیین گام بعدی: تصمیم گرفته میشود که آیا چرخه تکرار دیگری باید آغاز شود یا سیستم باید برای عرضه محصول آماده شود.
- اجرای چرخه پس از مرگ، که معمولاً شامل بازنگری عملکرد تیمها و کارایی متدهای استفاده شده است. سپس مشکلات اصلاح میشوند؛ برای اینکه تأثیر معکوسی روی تکرارهای بعدی نداشته باشند.
- تضمین کیفیت نهایی و عرضه: فعالیتهایی که در این مرحله انجام میشوند عبارتاند از:
- اجرای آزمونها، با هدف اصلی اعتبار سنجی در سطح سیستم.
- ارزیابی نتایج آزمون.
- رفع مشکلات.
- گرفتن تصمیم بر مبنای نتایج آزمون که آیا سیستم نشر شود یا چرخه توسعه جدیدی آغاز شود.
- انتقال به مرحله تولید. معمولاً شامل توسعه فعالیتهایی است که شامل تبدیل سیستم ، آموزش، و تدارک مستندات میشود.
- پایان دادن به پروژه که علاوه بر خاتمه دادن به رویههای معمولی، شامل خلاصه کردن درسهای آموختهشده از اجزای پروژه است.
نقشها و مسئولیتها
در روش ASD جزئیات ساختار تیم ارائه نشدهاست. همچنین از نقشها و مسئولیتهای اندکی نام برده شدهاست که عبارتند از:
- پشتیبان اجرایی: که دارای اختیار همهجانبه در توسعه محصول است.
- و مشارکتکنندگان در جلسه توسعه محصول شامل: تسهیلگر( برنامهریزی و رهبری جلسه)، منشی(برای گرفتن زمان)، مدیر پروژه و مشتریان، و نماینده تیم توسعه.
همچنین مطالعه کنید: چارچوب XP در مدیریت چابک
جمع بندی
این متد روشهای کار بسیار معدودی را ارائه میکند که اساساً در سه دسته جای میگیرند: توسعه تکراری، برنامهریزی ویژگی محور، و بازنگریهای گروهی با تمرکز مشتری. همانطور پیشتر گفته شد تیم روش کار خود را از روشها کار سایر متدها متناسب با کار خود انتخاب میکند. در حقیقت، شاید مشکل عمدهای که با این متد وجود دارد، این است که روشهای کار آن به سختی شناسایی میشوند و بیشتر مسائلی که هایاسمیت در کتابش مطرح کردهاست مثالهایی هستند از آنچه میتواند انجام شود.
نازنین سحری ۲۳ خرداد ۱۴۰۱
توسعه نرم افزار تطبیقی (ASD) نتیجه مستقیم یک چارچوب چابک قبلی، توسعه سریع برنامه (RAD) است. هدف آن این است که تیم ها را قادر سازد تا با توسعه محصولات خود با برنامه ریزی سبک وزن و یادگیری مستمر، به سرعت و به طور موثر با نیازهای در حال تغییر یا نیازهای بازار سازگار شوند.
علی ۲۳ خرداد ۱۴۰۱
ویژگی های چرخه زندگی ASD این است که بر ماموریت متمرکز است، بر اساس ویژگی ها، تکرار شونده، زمان بندی شده، ریسک محور و تحمل کننده تغییر است. همانند RAD، ASD نیز مقدمه ای برای توسعه نرم افزار چابک است.
علی مصفا ۲۳ خرداد ۱۴۰۱
ASD یک رویکرد انعطاف پذیر برای توسعه Agile سیستم های نرم افزاری پیچیده است که ظهور، آزمایش مداوم و بازخورد و همکاری عمیق کاربر را تشویق می کند.
توسعه نرم افزار تطبیقی (ASD) یک چارچوب توسعه نرم افزار چابک است که توسط مدیران پروژه John Highsmith و Sam Bayer در اوایل دهه ۹۰ طراحی شد. این یک تکامل تکراری تر از چارچوب توسعه سریع برنامه چابک است که پروژه های حدوداً ۱ ماهه را به دوره های تکرار یک هفته ای (مقایسه با اسپرینت های اسکرام) طراحی کرده است.
محمد ناصری ۵ تیر ۱۴۰۱
مقاله فوق العاده ای بود ممنون از آکادمی احمدزاده