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