Agile Software Development Process
Agile software development processes are built on the foundation of iterative
development. Agile processes use feedback rather than planning, as their
primary control mechanism. This software process model recognises that
software, like all complex systems, evolves over a period of time.
The main principles of the Agile Software Development process are:
Capture and define requirements at a high level
User involvement is essential
The team must be allowed to make decisions
Develop small, incremental releases and iterate
Focus on frequent delivery of products
Requirements evolve but the timescale is fixed
Complete each feature before moving on to the next
Testing is integrated throughout the project lifecycle - test early and often
A collaborative & cooperative approach between all stakeholders is essential
The first step in the process is to identify some high-level requirements as
well as the scope of the release.
Architecture & Design
The goal of the architecture and design phase is to try to identify an
architecture that has a good chance of working. The architecture is often
defined using free-form diagrams which explore the technical
infrastructure, the major business entities and their relationships. The design
is derived in a modelling session, in which issues are explored, until the team is satisfied
that they understand what needs to be delivered.
The development phase uses an evolutionary method that is an iterative and incremental
approach to software development. Instead of creating a comprehensive prerequisite
such as a requirements specification, that you review and accept before creating a complete
design model; the critical development piece evolves over time in an iterative manner.
The system is delivered incrementally over time, rather than building and then delivering
your system in a single "big bang" release.
Test & Feedback
One of the key principles of the Agile Methodology is to conduct the testing of the software
as it is being developed. The software development is test driven. The unit testing is achieved
from the developer's prospective and the accetpance testing is conducted from the customer's prespective.