We work in small incremental releases. This allows us to quickly build and thoroughly test and decommission specific modules and functionalities. The client can already start using those features without depending on other ongoing development work. Each iteration includes planning, designing, coding, testing and review phases. After each iteration, feedback is used to make improvements and the process is repeated until the project is complete. It allows for flexibility, adaptability and the incorporation of changing requirements, ultimately leading to a more refined and customer-oriented end product.