The agile model is an iterative and incremental software development process that focuses on quick delivery of working software in short cycles. Requirements are broken into small parts that can be developed incrementally to minimize risk and reduce delivery time. Each iteration is typically 1-4 weeks where a cross-functional team plans, designs, codes, tests, and demos a working product to stakeholders before starting the next iteration. Multiple iterations may be needed to fully develop the product or new features.