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