Agile methodology is a way of developing software in which members of the development team collaborate closely with one another and with business stakeholders. Another major aspect of agile methodology is the incremental development and delivery of the software, with planning evolving and testing occurring at each phase.
Developers have the authority to make decisions and self-organize into teams. The focus is on developing working software, delivering each increment to the client within a span of weeks to a few months. Flexibility or agility is a key practice, as requirements may change and the team may adjust its practices and procedures. Continuous testing ensures that the software works when it is delivered; this is the primary standard for progress.