What is Agile Software Development?
Agile Software Development is an approach to develop and deliver software products by following the set of methods and practices based on the values and 12 principles outlined in the Agile Manifesto.
In Agile software development the requirements and solutions unfold by the collaborative effort of whole team along with customer/end user.
The teams in Agile Development are self organising and cross functional, the team comprises of member with different functional expertise and working towards a common goal.
If you are a tester on an Agile project, you will work differently than the way you have been working in other traditional development methodologies.
In Agile project, you must understand the values and principles that underpin Agile projects.
As Agile advocates whole team approach, so testers are an integral part of whole team together with developers and business representatives.
The team members in an Agile project communicate with each other early and frequently. Early and frequent communication helps in identifying and removing defects early in the development lifecycle and improves product quality.
History of Agile Software Development
In 2001, a group of 17 individuals met to discuss lightweight development methods in order to overcome the limitations and issues with traditional software development models.
This group agreed on common set of principles and values which later became “Agile Manifesto” for Agile Software Development.
The Agile Manifesto contains four statements of values described below.
- Individuals and interactions over processes and tools
Agile advocates that competent individuals in the team and collaboration within that team is more important than processes and tools. - Working software over comprehensive documentation
Good documentation is important in Agile development project however, working software is more important.
Documentation produced in Agile project should be precise and concise, as the main purpose of Agile team is to create software. - Customer collaboration over contract negotiation
Working closely with your customer is more important than negotiating all the requirements through contracts.
Getting a clear picture of requirements is difficult until you collaborate with your customer frequently. - Responding to change over following a plan
Following a plan is important but it should be flexible enough to accomodate the changes suggested by stakeholders if required.
As per Agile Manifesto the concepts on the left have more value as compared to concepts on the right.