توسعهٔ طراحی محور یا توسعهٔ چابک؛ ۱۰ سؤال یان سامرویل

رویکردهای چابک در توسعهٔ نرم‌افزار،‌طراحی و پیاده‌سازی را به عنوان فعالیت‌های مرکزی فرایند نرم‌افزار می‌دانند. این رویکردها بقیه فعالیت‌ها از قبیل استخراج نیازمندی‌ها و تست را با طراحی و پیاده‌سازی ترکیب می‌کنند. در حالی که رویکرد طراحی-محور به گام‌های مشخص و خروجی‌های مربوط با همان گام تقسیم می‌شود.خروجی هر گام به عنوان ورودی گام بعدی استفاده می‌شود.توسعهٔ طراحی محور یا توسعهٔ چابکی در رویکرد طراحی-محور، تکرارها در داخل فعالیت‌ها اتفاق می‌افتد. مستندات رسمی پروژه برای ارتباط بین گام‌های مختلف پروژه استفاده می‌شود. به عنوان مثال در فاز نیازمندی‌ها، خروجی فاز مشخصات نیازمندی‌هاست که به عنوان ورودی برای فاز طراحی و پیاده‌سازی استفاده می‌شوند. در رویکرد چابک، تکرار مابین فعالیت‌ها اتفاق می‌افتد. بنابراین فاز نیازمندی‌ها و طراحی با هم توسعه می‌یابند.۱۰ سؤال یان سامرویل در واقع، بیشتر پروژه‌های نرم‌افزاری هر دو رویکرد چابک و طراحی-محور را شامل می‌شوند. برای انتخاب بین دو رویکرد یاد شده، لازم است به مجموعه‌ای از سؤالات سازمانی، مرتبط با منابع انسانی و تکنیکال پاسخ داده شود: ۱. آیا لازم است که مشخصات و طراحی پروژه به صورت جزئی قبل از شروع به اجرای آن مشخص باشد؟ اگر پاسخ مثبت است، رویکرد طراحی-محور مناسب است.۲. آیا بازخورد سریع گرفتن از مشتری پس از هر بار تحویل دادن محصول به آن‌ها اتفاق می‌افتد؟ در این صورت از استفاده از روش‌های چابک مناسب است.۳. پروژه چقدر بزرگ است؟ رویکردهای چابک مناسب برای پروژه‌هایی هستند که توسط یک تیم هم‌مکان کوچک که می‌توانند به صورت غیررسمی با یکدیگر ارتباط برقرار کنند،‌ انجام می‌شوند. رویکرد طراحی-محور برای سیستم‌های بزرگی که نیاز به تیم بزرگتری برای توسعه دارند، پیشنهاد می‌شود.۴. چه نوع سیستمی قرار است توسعه یابد؟ معمولا سیستم‌هایی که نیازمند تحلیل زیاد قبل از پیاده‌سازی هستند (به عنوان مثال سیستم بلادرنگی که نیازمندی‌های زمانی پیچیده‌ای دارد.)، برای پیاده کردن تحلیل، بهتر است طراحی تقریبا جزئی از سیستم در اختیار باشد. رویکرد طراحی-محور در این مورد می‌تواند بهتر باشد.۵. طول عمر مورد انتظار پروژه چقدر است؟ سیستم‌های با طول عمر بالا، به منظور ارتباط بهتر بین تیم پشتیبانی و تیم توسعه،‌ نیازمند مستندسازی بیشتر هستند. پشتیبان‌های رویکردهای چابک به صورت صحیح نگران بروز نکردن مستندات هستند که این رویه برای سیستم‌های با طول عمر بالا مناسب نیستند.۶. برای پشتیبانی توسعهٔ سیستم چه تکنولوژی‌هایی در دسترس هستند؟ رویکردهای چابک، به طور معمول از ابزارهای مناسبی برای طراحی کنار پیاده‌سازی استفاده می‌کنند. در صورتی که ابزارهای مناسبی در اختیار ندارید،‌ مستنداتِ طراحیِ بیشتری مورد نیاز است.۷. تیم توسعه چگونه سازماندهی شده‌است؟ اگر تیم توسعه به صورت توزیع شده هستند یا بخشی از پروژه به صورت برون‌سپاری انجام می‌شود،‌نیاز به طراحی و مستندات بیشتر برای ارتباط بین تیم‌های توسعه است.۸. آیا مسائل فرهنگی بر توسعهٔ سیستم تأثیر می‌گذارد؟ سازمان‌های مهندسیِ سنتی همانطور که در مهندسی نرمال است، دارای یک فرهنگِ توسعهٔ طراحی-محور هستند. این فرهنگ معمولا نیازمند مستنداتِ سنگین به جای دانش غیررسمی فرآیندهای چابک هستند.۹. برنامه‌نویسان و طراحانتان چقدر توانمند هستند؟ رویکردهای چابک نیازمند افراد با سطح دانش بالاتر از رویکردهای طراجی-محور هستند. در رویکردهای چابک طراحی مستقیماً تبدیل به کد می‌شوند. در صورتی که در رویکرد طراحی-محور ابتدا طراحان با توانمندیِ بالا سیستم را طراحی می‌کنند و سپس برنامه‌نویسان با توامندیِ کمتر آن‌ها را پیاده‌سازی می‌کنند.۱۰. آیا سیستم تحت تأثیر مقررات بیرونی است؟ اگر سیستم نیازمند تأیید توسط یک تنظیم‌کننده مقررات بیرونی است، مستندات جزئی به عنوان بخشی از یک سیستم مورد نیاز است.نوشته برگردان قسمتی از کتاب مهندسی نرم‌افزار سامرویل است.