What is Agile methodology in Software Development?
Agile methodology is an alternative to traditional plan-driven Waterfall project management. Agile methodology promotes continuous iteration, typically used in software development. It is more of people oriented which helps in increasing productivity while reducing risks. Simply put, it emphasis on adapting to change, as opposed to attempting to predict everything from the start.
Agile model includes more client interactions as compared to normal testing models.
It means after completing one module you have to show it to client and get it approved.
If they like it start with next one otherwise redo the first.
It includes sprint teams and sprint masters who basically manage each team. All functionalities are divided into number of sprints which are determined by discussions with clients and after each sprint client approval is needed to start next one.
Agile is a young methodology used by software developers and nowadays in the field of marketing and well. Replacement of Waterfall techniques, Agile focuses on the value driven approaches.
With the advancement of software development, technologies and business requirements, the traditional models are not robust enough to cater the demands. As a result of this, the information technology community developed agile software development models.
KEY PRINCIPLES OF AGILE:
The Agile Manifesto is based on twelve principles:
- Customer satisfaction by early and continuous delivery of valuable software
- Welcome changing requirements, even in late development
- Working software is delivered frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly
Challenges for tester with Agile model:
- There will be no client requirement document. All information is gathered by meetings with the concerned people.
- Code is being tested many times in the whole process.
- Regression testing will be in between of process.
Advantages of using Agile model:
- With this model, you can easily save time for your project. Testing is done parallel with the development process.
- Testing is iterative in nature so you can get assure of quality.
- Every small change will be visible to client so client will not to worry much about quality.
Agile Process Models
There are various Agile Models used in market, they are –
n Extreme Programming (XP)
n Adaptive Software Development (ASD)
n Dynamic Systems Development Method (DSDM)
n Scrum
n Crystal
n Feature Driven Development (FDD)
n Agile Modeling (AM)
Let us Study about Scrum in details here
Suggestions & comments are welcome.
Next Topic: different software development life cycle models