This approach responds to the unpredictability surrounding the construction of a software. It helps in developing software that is sustainable. It uses “sprints”, which are incremental work sequences, for development & designing. A sprint also refers to a particular time allocated to each part of the project.
Initially, the project head and the product-owner discuss the work that needs to be accomplished during each sprint. However, the development team has the final say about determining the realistic workflow. The project-owner also sets out his expectations which need approval before finalization.