موضوع مقاله: توسعه سریع نرم‌افزار | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # توسعه سریع نرم‌افزار | مقدمه: توسعه سریع نرم‌افزار (RAD) یک عنوان کلی برای اشاره به جایگزین‌های معمول مدل آبشاری توسعه نرم‌افزار و همچنین به عنوان نامی برای رویکرد جیمز مارتین برای توسعه سریع است. | ## بخش 1: توسعه سریع نرم‌افزار | به‌طور کلی، رویکرد RAD به توسعه نرم‌افزار تأکید کمتری بر برنامه‌ریزی و تمرکز بیشتری بر فرایند دارد. در قیاس با مدل آبشاری که در آن تعریف دقیق مشخصات قبل از ورود به مرحله توسعه، خواسته می‌شود. رویکرد RAD تأکید بیشتری بر سازگاری و ضرورت تنظیم نیازمندی‌ها در پاسخ به دانش به دست آمده در پیشرفت پروژه می‌کند. نمونه‌های اولیه اغلب در کنار و در برخی مواقع به‌جای طراحی مشخصات استفاده می‌شوند. توسعه سریع نرم‌افزار به خصوص مناسب (البته نه محدود به) توسعه نرم‌افزارهایی است که توسط نیازمندی‌های رابط کاربری هدایت می‌شوند. سازندگان رابط گرافیکی کاربر اغلب به نام ابزار توسعه سریع نرم‌افزار، شناخته می‌شوند. تاریخچه توسعه سریع نرم‌افزار در پاسخ به فرایندهای توسعه یافته در دهه‌های ۱۹۷۰ و ۱۹۸۰ مانند روش‌های ساختاری تجزیه و تحلیل سیستم و دیگر مدل‌های آبشاری به وجود آمد. یکی از مشکلات این روش‌ها این است که آن‌ها بر اساس مدل سنتی مهندسی مورد استفاده برای طراحی و ساخت چیزهایی مانند پل‌ها و ساختمان‌ها، پایه‌گذاری شده‌اند. در نتیجه، دانش به دست آمده از فرایند توسعه خود می‌تواند بازخوردی باشد برای تعیین نیازمندی‌ها و طراحی راه حل. راه‌حل روش آبشاری برای حل این مسئله این بود که نیازمندی‌ها و برنامه‌ریزی برای پیاده‌سازی آن‌ها به شکل صلبی تعیین شوند و فرایندی داشته باشیم که از تغییر هر یک از آن‌ها اجتناب کند. رویکرد جدید RAD از سوی دیگر فرایند توسعه نرم‌افزار را به عنوان فرایندی دانش محور به رسمیت می‌شناسد؛ و به دنبال توسعه فرایندهای انعطاف‌پذیری است که دانش به دست آمده در طول عمر پروژه را برای ابداع دوباره راه‌حل مورد استفاده قرار می‌دهد. روش Boehm و دیگر روش‌های RAD پس از آن تاکیید بیشتری بر توسعه نمونهٔ اولیه به جای مشخصات صلب طراحی دارند و در مواردی هم نمونهٔ اولیه را جایگزین این مشخصات صلب طراحی می‌دانند. یک نمونه اولیه می‌تواند برخی از سخت‌ترین قطعات سیستم را در اوایل چرخهٔ زندگی، تست کند. این می‌تواند اطلاعات ارزشمندی در خصوص امکان‌سنجی طراحی در اختیار قرار دهد و از در نظر دنبال کردن راه‌حل‌هایی که خیلی پیچیده یا خیلی زمانبر هستند جلوگیری کند. اینکه در روش RAD مشکلات در مراحل زودتری از چرخه زندگی نمایان می‌شوند نکتهٔ اصلی مزیت رویکرد RAD است. رایج بود که در مدل آبشاری کاربر مجموعه‌ای از نیازمندی‌ها را مورد تأیید قرار دهد ولی زمانی که با سیستم پیاده‌سازی شده مواجه می‌شود، ناگهان پی می‌برد که آنچه طراحی شده برخی قابلیت‌های حیاتی را ندارد یا بسیار پیچیده است به‌طور کلی، اکثر کاربران زمانی که تجربه کار با یک نمونه اولیه در حال کار را دارند بازخورد بسیار بهتری می‌دهند تا زمانی که به‌طور انتزاعی تعریف می‌کنند که سیستم باید چگونه عمل کند. یکی از روش‌های مورد استفاده در برخی از روش‌های RAD ساخت این سیستم به عنوان یک سری از نمونه‌های اولیه است؛ که از تکامل یک نمونه اولیه با حداقل قابلیت‌ها شروع و به‌طور مناسب به سمت یک سیستم کامل تکامل میابد. استفاده از این علاوه بر دو مزیت بالا، مزیت دیگری هم دارد که کاربران می‌تواند قابلیت‌های کاربردی را بسیار زودتر در این فرایند در اختیار داشته باشند. با شروع از ایده‌های بری بوهم و دیگران، James Martin رویکرد توسعه سریع نرم‌افزار را در طول دههٔ ۱۹۸۰ در آی‌بی‌ام توسعه داد و در نهایت آن را توسط چاپ کتابی به عنوان توسعه سریع نرم‌افزار در ۱۹۹۱ بیان کرد. | ## بخش 2: توسعه سریع نرم‌افزار | این موضوع منجر به برخی سردرگمی‌ها در خصوص عبارت RAD شد، این سردرگمی در میان متخصصان IT هم دیده می‌شد. این مهم است که بین RAD به‌طور کلی و به یک جایگزین برای مدل آبشاری و مدل RAD به عنوان روش خاص ایجاد شده توسط مارتین، تفکیک قائل شویم. روش مارتین برای سیستم‌های کسپ و کاری با بار دانشی و رابط کاربری فشرده طراحی شده‌است. این متخصصین و افرادی مشابه آن‌ها کمک کردند تا RAD به عنوان یک جاگزین نسبت به روش سنتی محبوبیت پیدا کند. ایده مهندسی مجدد کسب و کار این بود که با توجه به ظرفیت‌های فناوری اطلاعات به‌طور رادیکال به فرایندهای اصلی سازمانی دوباره فکر شود. رویکرد نمونه سازی سریع در RAD شد یک ابزار کلیدی برای کمک به کاربران و تحلیلگران بود تا بتوانند «ذهن خود را فراتر ببرند» در مورد روش‌های نوآورانه در تکنولوژی که ممکن است اساساً اختراع دوباره یک هسته کسب و کار را موجب شود. کاربران و مدیران و کارکنان IT در خصوص نیازهای کسب و کار، محدوده پروژه، قیود و نیازمندی‌های سیستم به بحث می‌کنند و به اتفاق‌نظر می‌رسند. این فاز زمانی به پایان می‌رسد که تیم در خصوص مسائل کلیدی به توافق برسند و تأیید مدیریتی را برای ادامه کار به‌دست بیاورند. فاز طراحی کاربر – در این فاز کاربران با تحلیلگران سیستم‌های مدل‌های توسعه و نمونه‌های اولیه را که بیانگر تمامی فرایندهای سیستم، ورودی‌ها و خروجی‌ها است را تبیین می‌کنند. گروه‌ها و زیرگروه‌های RAD به‌طور معمول نیازهای کاربر را به مدل‌های کاری با استفاده از ترکیب تکنیک‌های توسعه مشترک نرم‌افزارها (JAD) و ابزار CASE ترجمه می‌کنند. طراحی کاربر یک فرایند پیوسته تعاملی است که به کاربر این امکان را می‌دهد تا با درک، تبدیل و در مواردی بهبود یک مدل کاری این امکان را فرآهم کنند تا سیستمی داشته باشند که پاسخگوی نیاز کاربران باشد. در RAD, اما کاربران همچنان مشارکت خواهند داشت و می‌توانند در ساخت صفحات واقعی و گزارش‌ها پیشنهادهایی برای تغییرات و بهینه‌سازی ارائه دهند. وظایف در این فاز عبارتند از برنامه‌نویسی، توسعه برنامه، کد نویسی، متصل کردن واحدها و تست کردن سیستم. فاز تحویل – شبیه کارهای نهایی در فاز استقرار SDLC شامل تبدیل داده‌ها، تست، مهاجرت به سیستم جدید و آموزش کاربر است. در نتیجه، سیستم جدید خیلی زودتر توسعه داده شده، تحویل می‌شود و در جایگاه عملیاتی قرار می‌گیرد. مزایا و معایب توسعه سریع نرم‌افزار در محیط‌های مدرن تکنولوژی اطلاعات، سیستم‌های زیادی با استفاده کم و بیش از توسعه سریع نرم‌افزار گسترش یافته‌اند. علاوه بر روش مارتین روش توسعه نرم‌افزاری چابک و منطقی فرایند یکپارچه اغلب برای توسعه سریع نرم‌افزار استفاده می‌شوند. عملکرد کسب و کاری در یک پروژه RAD با توجه به تعامل کاربران با نمونه‌های اولیه در حال تحول معمولاً می‌تواند بسیار بیشتر از آنچیزی باشد که با استفاده از مدل آبشاری حاصل می‌شود. نرم‌افزار می‌تواند کاربردی‌تر باشد و شانس بیشتری وجود دارد که تمرکز بر روی مشکلات کسب کاری که برای کاربر نهایی وجود دارد قرار گیرد تا مشکلات فنی که مورد علاقه توسعه‌دهندگان است. | ## بخش 3: توسعه سریع نرم‌افزار | اگر چه بسیاری از متون RAD بر تمرکز روی سرعت و دخالت کاربر به عنوان ویژگی‌های مهم RAD تاکیید می‌کنند، یک ویژگی حیاتی RAD اگر به درستی پیاده شود، کاهش ریسک است. ارزش آن را دارد تا یادآور شویم که Boehm در ابتدا مشخصهٔ مدل مارپیچی یک مدل بر مبنای ریسک عنوان کرده‌است. یک رویکرد RAD در ابتدا می‌تواند بر روی فاکتورهای کلیدی ریسک تمرکز کند و بر اساس آن‌ها و اطلاعات بدست آمده در مراحل اولیه فرایند تنظیمات لازم را انجام دهد. به عنوان مثال، ریسک پیچیدگی را با ساختن نمونهٔ اولیه از قسمت‌هایی از سیستم که بیشترین پیچیدگی را دارند. با تمرکز بر توسعه تدریجی واحدها شانس شکست فاجعه بار که همواره در کمین پروژه‌های بزرگ مدل آبشاری است، کاهش می‌یابد. در مدل آبشاری رایج است که پس از شش ماه یا بیشتر از تجزیه و تحلیل و توسعه به این درک برسند که نیازمند یک بازاندیشی رادیکال در خصوص کل سیستم هستند. با RAD این نوع از اطلاعات را می‌توان در فرایند زودتر کشف کرد و به آن‌ها پاسخ داد. برای اکثر بنگاه‌های IT رویکرد RAD یک رویکرد جدید است که نیازمند متخصصانی با تجربه است که در خصوص نحوه کار خود بازاندیشی کنند. انسان‌ها تقریباً همیشه با تغییر مخالفت می‌کنند و هر پروژه‌ای که با ابزارها یا روش جدید انجام شده باشد، شانس بیشتری برای شکست خواهد داشت. چیزی که تقریباً در میان تمامی روش‌های RAD مشترک است، این است که تعامل بسیار بیشتری میان کاربران و توسعه دهندگان در طی جرخه زندگی روی می‌دهد. در مدل آبشاری کاربران نیازمندی‌ها را تعریف می‌کنند و پس از آن عمدتاً می‌روند و توسعه دهندگان سیستم را ایجاد می‌کنند. این مستلزم آن است که کسب و کار مایل به سرمایه‌گذاری زمان کارشناسان خبره در حوضه نرم‌افزار باشند. پارادوکس این است که هر چه متخصص بهتر باشد، بیشتر با دامنه مورد بررسی آشنایی دارند و در عین حال نیاز بیشتری به حضور واقعی آن‌ها برای پیشبرد کارها است و این سخت خواهد بود که مدیران آن‌ها را متقاعد کنیدم که زمان آن‌ها را برای پروژه تخصیص دهند. یکی از مزایای استفاده از RAD این است که فرایند انعطاف‌پذیر و سازگار فراهم می‌کند. اگر یک پروژه (به عنوان مثال نرم‌افزاری که جان انسان‌ها سر و کار دارد) ارزش کنترل بیش از چابکی باشد، RAD روش مناسبی نیست. تمرکز بیش از حد بر روی نمونه‌های اولیه گرفته می‌شود در برخی موارد منجر به یک روش «هک و تست» می‌شود که در آن توسعه دهندگان به‌طور مداوم تغییرات جزئی در بخش‌ها ایجاد می‌کنند و با نادیده گرفتن معماری سیستم مسائلی را که می‌تواند منجر به طراحی بهتر شود را نادیده می‌گیرند. این می‌تواند به خصوص یک مشکل برای روش‌هایی مانند روش مارتین که تمرکز بیشتری بر رابط کاربری سیستم دارد، بیشتر است. | ## جمع‌بندی | دیگر مسائل ذکر شده در بالا (طراحی و کنترل کمتر) در حال حاضر چالش‌های خاصی در هنگام استفاده از راد برای سیستم‌های مقیاس بزرگ هستند.E.