Agile promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.
Following are some of the popular Agile Development Methodologies and Frameworks
· Scrum
· Lean software development
· Extreme Programming (XP)
· Dynamic Systems Development Method (DSDM)
· Test Driven Development (TDD)
· Acceptance Test Driven Development (ATDD)
1.1 Scrum
Scrum is an iterative and incremental Agile software development framework for managing software projects and product or application development. Its focus is on “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal” as opposed to a “traditional, sequential approach”. Scrum enables the creation of self-organising teams by encouraging co-location of all team members, and verbal communication among all team members and disciplines in the project.
1.2 Lean Software Development
The core idea is to maximise customer value while minimising waste. Simply, lean means creating more value for customers with fewer resources.
A lean organisation understands customer value and focuses its key processes to continuously increase it. The ultimate goal is to provide perfect value to the customer through a perfect value creation process that has zero waste.
1.3 Extreme Programming
Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
1.4 DSDM
Dynamic systems development method (DSDM) is an agile project delivery framework, primarily used as a software development method. DSDM is an iterative and incremental approach that embraces principles of Agile development, including continuous user/customer involvement. DSDM fixes cost, quality and time at the outset and uses the MoSCoW prioritisation of scope into musts, should, coulds and won’t haves to adjust the project deliverable to meet the stated time constraint.
1.5 Test Driven Development – TDD
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.
1.6 Acceptance Test Driven Development
Acceptance Test Driven Development (ATDD) is the extension of Test Driven Development TDD in agile. The ATDD includes typical tests that test the behaviour of the system. ATDD needs to test the expected behaviour of the system from the user’s point of view.
Steps followed by an agile team in ATDD agile:
· Discuss
· Distill
· Develop
· Demo