جنبش فرایند نرم افزار در طول چند دهه گذشته

در طول تلاش­ هایی که در پنج دهه گذشته انجام دادیم­، متدولوژی­ های (چارچوب فرایندی که برای ساختار، مدیریت و کنترل کارمان استفاده می­ کردیم) توسعه نرم ­افزار گوناگونی را پیاده­ سازی کردیم. قبل از پیاده ­سازی این متدولوژی­ ها، برای توسعه نرم­ افزار رهیافت «آزمون و خطا» را در هر زمان و مکانی که ضروری بود استفاده می ­کردیم. در بیشتر مواقع، همین رهیافت کار می­ کرد. با گذشت زمان، محدوده و دامنه تلاش­ های ما به همراه قدرت کامپیوترهایی که از آن­ها برای برنامه ­نویسی استفاده می­ کردیم به اندازه ده هزار برابر افزایش پیدا کردند. از این رو، متدلوژی­ های ساخت­ یافته ­تر و کنترل شده ­ای را برای کاهش ریسک ­های جدید و تولید نتایج موردنظر به­ جای تولید نتایج ناخواسته توسعه دادیم. اما در طول زمان، اندازه نرم­ افزارهایی که توسعه می ­دادیم بزرگ­تر و بزرگ­تر می ­شد و روش ­هایی که برای کنترل کارمان استفاده می­ کردیم، سنگین ­تر و سنگین ­تر می ­شدند. به همین دلیل، بجای اینکه توانایی ما در تحویل نرم افزار با ارزش ­تر و با کیفیت ­تر افزایش پیدا کند، کاهش پیدا می­ کرد. بنابراین، در دو دهه گذشته حرکت به سوی متدلوژهای توسعه نرم­ افزار «چابک ­تر» و «ناب تر» به یکی از با اهمیت ­ترین معیارهای تاثیرگذار در صنعت تبدیل شده است، متدولوژی­هایی که با وجود سبک وزن بودن ایمن هستند و برخورد موثری با نیازمندی­ های برنامه­ کاربردی دارند. به طور ساده، ما نیازمند فرایندهایی می­ باشیم که ایمنی و حاکمیت بهتری را نسبت به آن­چه ما تجربه کرده­ ایم، بدون داشتن سربار اضافی فراهم نمایند. ما می­ خواهیم فرایندمان علاوه بر ایمنی و حاکمیت بهتر، سربار کمی هم داشته باشد. جنبش فرایند نرم افزار در شکل بالا قابل مشاهده است.