Agile is an umbrella term for a collection of frameworks and techniques that together enable teams and individuals to work in a way that is typified by collaboration, prioritization, iterative and incremental delivery, and timeboxing.
Agile Software Development?
The term Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.
Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Frameworks used to Implement Agile Software Developments
There are several specific methods (or frameworks) that are classed as Agile, such as Scrum, Lean, and Kanban. Most agile development methods break product development work into small increments that minimize the amount of up-front planning and design. Iterations, or sprints, are short time frames (timeboxes) that typically last from one to four weeks.
Each iteration involves a cross-functional team working in all functions: planning, analysis, design, coding, unit testing, and acceptance testing.
Difference between Agile and Waterfall?
Waterfall Model methodology is also known as Liner Sequential Life Cycle Model. Waterfall Model followed in the sequential order, and so project development team only moves to the next phase of development or testing if the previous step completed successfully. Whereas, in Agile development, testing activities are concurrent, unlike the Waterfall model. This process allows for more communication between customers, developers, managers, and testers.