Agile development propose alternatives to waterfall or traditional sequential development. The Agile model was primarily designed to help organisations to adapt to change requests quickly. Agility is achieved by fitting the process to the software, removing activities that may not be essential for a specific software. In the Agile development model, the requirements are decomposed into many small parts that can be incrementally developed. The Agile model adopts Iterative development, each part is developed over an iteration. Each iteration is intended to be small and easily to manageable and that can be completed stipulated time. At any given time one iteration is planned, developed and deliver to the customers. The agile concept promotes adaptive planning, evolutionary development and delivery. The time boxed development approach encourages flexible response to changes that occurs rapidly.
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle and this is part of the Extreme Programming (XP) methodology related to the test-first programming, This is opposed to software development that allows software to be added that is not proven to meet requirements. There are various aspects to using test-driven development, for example the principles of "keep it simple”. Test-driven development offers more than just simple validation of correctness, but can also drive the design of a program. Test-driven development offers the ability to take small steps when required. It allows a programmer to focus on the task at hand as the first goal is to make the test pass.
Behavior driven development (BDD) is a software development methodology in which an application is specified and designed by describing how its behavior should appear to an outside observer. Behavior driven development combines the general techniques and principles of TDD to provide software development and management teams. Behavior driven development is an extension of test driven development in many organisations, BDD offers the ability to enlarge the pool of input and feedback to include business stakeholders and end users who may have little software development knowledge.