Today we hear this word “Agile” every where. So it is better
to get some knowledge on agile.
- What is it?
- Who invent this?
- What are the core values and principles?
- What are the advantages of it?
- What are the frameworks facilitated for this?
What is Agile software development?
Agile software development is an iterative and
incremental development process which gives the maximum business value in short
period of time. It focuses on keeping code simple,
testing often, maintaining working software end of each increment and
delivering functional bits of the application as soon as they're ready. Also it
anticipates the need for flexibility and promotes the continuous improvement.
Who invent this?
Set of experts who use various iterative and incremental software
development methods (Eg: SCRUM, XP…) which
evolve requirements and solutions evolve by collaboration get together and introduced
the Agile Manifesto in 2001.They come up with set of principles all the which
suite for all those software development processes. So Agile is an all the iterative
and incremental software development methods.
What are the core values?
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is
value in the items on the right, we value the items on the left more.
Agile principles
-
Highest
priority is to satisfy the customer through early and continuous delivery of
valuable software.
- Welcome
changing requirements, even late in development. Agile processes harness change
for the customer's competitive advantage.
- Deliver
working software frequently, from a couple of weeks to a couple of months, with
a preference to the shorter timescale.
-
Business
people and developers must work together daily throughout the project.
- Build
projects around motivated individuals. Give them the environment and support
they need, and trust them to get the job done.
- The most
efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
- Working
software is the primary measure of progress.
- Agile
processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
- Continuous
attention to technical excellence and good design enhances agility.
- Simplicity--the art of maximizing the amount of
work not done--is essential.
- The best architectures, requirements, and
designs emerge from self-organizing teams.
- At regular intervals, the team reflects on
how to become more effective, then tunes and adjusts its behavior accordingly.
What are the advantages of it?
- Giving the maximum value to the
customer in short period of time.
- Development done according to
the highest customer value.Start
from low risk and high value functionalists and then go for complicated
features.
- Ability to support changing
needs of the customer.
- As Customer can see the working
software demonstration, he can have a good understand on their product rather
than reading lengthy documentations. Also and he can provide his inputs.
- Promote the continuous
improvement of the product, development process, development teem.
- Minimise the failing risk of the project.
What are the frameworks facilitated for this?