Most agile development methods break product developmentdvelopment work into small increments that minimize the amount of up-front planning and design. Iterations, or sprints, are short time frames ([[timeboxing|timeboxes]]){{sfn|Project Management Institute|2021|loc=2.3.3 Development Approaches}} that typically last from one to four weeks.{{sfn|Rubin|2013}}{{rp|20}} Each iteration involves a [[cross-functional team]] working in all functions: [[Project planning|planning]], [[requirements analysis|analysis]], [[Software design|design]], [[Computer programming|coding]], [[unit testing]], and [[acceptance testing]]. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the product to adapt to changes quickly.{{sfn|Project Management Institute|2021|loc=§3.12 Enable Change to Achieve the Envisioned Future State}}<ref name="auto">{{cite book | author=Moran, A.|title=Agile Risk Management |publisher=Springer Verlag|year=2014|isbn=978-3319050072}}</ref> An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal [[Software bug|bugs]]) at the end of each iteration.<ref name="embracing change">{{cite journal|
last=Beck|first=Kent|
year=1999|title=Embracing Change with Extreme Programming|