In 2001, At a
summit seventeen practitioners of different software methodologies met
together and created the agile manifesto. Principles of Agile Manifesto are
implemented in various projects for agile development.
The Manifesto for
agile development states developing keeping the following values as focus:
· Individuals and interactions over processes and tools
· Working software over comprehensive documentation
· Customer collaboration over contract negotiation
· Responding to change over following a plan
Agile Methodology thus focuses on close interaction between resources and customers to create working software and responding to changes in software based on feedback between the teams.
If we go back to Iterative and Incremental model, we can say Agile Methodology as a subset of IID Model. Software Testers works in a collaborative model as a part of Agile teams providing necessary feedback together with reporting defects in the development.
Agile as per dictionary definition means: able to move quickly and easily and able
to think and understand quickly. The Definition defines agile
methodology in a nice manner. Using Agile in projects, we can move in quick
manner thinking over the problem and understanding it quickly and easily by
working in a collaborative manner.
In terms of Software
testing, agile methodology is different from previously used methodology, e.g.
Waterfall and V-Model, as it allows tester a role early in the development in a
collaborative manner, thus uncovering the issues from early analysis phase.
Also Testers are integral part of agile teams instead of independent teams. The
Collaborative approach separates agile from other SDLC Models, and helps better
communication between various stakeholders including customer, managers,
developers, testers, and analysts bringing responsiveness to changing
requirements and a more efficient product developed since all the stakeholders
works as a team with better understanding of the requirements.
Key Principles of
Agile Manifesto:
1. Satisfying the customer through early and
continuous delivery of valuable software.
2. Agile processes harness change for the customer competitive
advantage.
3. Delivering working software frequently, from a
couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together
daily throughout the project.
5. Build projects around motivated individuals. Give
them the environment and support they need, and trust them to get the job
done.
6. The most efficient and effective method of
conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of
progress.
8. Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant
pace indefinitely.
9. Continuous attention to technical excellence and
good design enhances agility.
10. Simplicity–the art of maximizing the amount of
work not done–is essential.
11. The best architectures, requirements, and designs
emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to
become more effective, then tunes and adjusts its behavior accordingly.
Reference: http://agilemanifesto.org/principles.html
Where to Use and Where
not to use Agile?
- In case,
most of the project in the organization is handled through traditional
development Model, it is better to start with a smaller project. The reason we
cannot predict the success or failure of the agile is the collaborative nature
of the project and this includes developers, management, Customers, and
testers. The traditional models do not allow regular interactions between the
stakeholders. E.g. we get the requirement from the customers, based on
requirements the analyst prepares the design, developers code the design and
testers test the code. Thus each of the groups works as individual units with
collaboration missing which is a must for Agile.
- Since
the individual as well as customer had worked in the traditional model for a
longer part of their career, it becomes difficult to switch to agile
methodologies, where we need to work collaboratively. So to understand the
approach and mindset for Agile methodologies before working on larger project
with large number of resources and stakeholder.
- Agile
Methodologies should be used in project whose business severity is neither too high
nor too low, so that proper importance is provided to the project.
- Agile
should not be used on Projects where large documentation is required e.g. Legal
or Compliance Projects.
No comments:
Post a Comment