Agile model
Agile development model is also a type of Incremental
model. Software is
developed in incremental, rapid cycles. This results in small incremental
releases with each release building on previous functionality. Each release is
thoroughly tested to ensure
software quality is maintained.
It is used for time critical applications. Extreme Programming (XP) is
currently one of the most well known agile development
life cycle model.
Diagram
of Agile model:
When to use Agile model:
· When new changes
are needed to be implemented. The freedom agile gives to change is very
important. New changes can be implemented at very little cost because of the
frequency of new increments that are produced.
· To implement a
new feature the developers need to lose only the work of a few days, or even
only hours, to roll back and implement it.
· Unlike the waterfall model in
agile model very limited planning is required to get started with the project. Agile assumes
that the end users’ needs are ever changing in a dynamic business and IT world.
Changes can be discussed and features can be newly affected or removed based on
feedback. This effectively gives the customer the finished system they want or
need.
· Both system
developers and stakeholders alike, find they also get more freedom of time and
options than if the software was developed in a more rigid sequential way.
Having options gives them the ability to leave important decisions until more
or better data or even entire hosting programs are available; meaning the project
can continue to move forward without fear of reaching a sudden standstill.
Advantages of Agile model:
· Customer
satisfaction by rapid, continuous delivery of useful software.
· People and
interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
· Working software
is delivered frequently (weeks rather than months).
· Face-to-face
conversation is the best form of communication.
· Close daily
cooperation between business people and developers.
· Continuous
attention to technical excellence and good design.
· Regular
adaptation to changing circumstances.
· Even late changes
in requirements are welcomed
Disadvantages of Agile model:
· In case of some
software deliverable, especially the large ones, it is difficult to assess the
effort required at the beginning of the software development life cycle.
· There is lack of
emphasis on necessary designing and documentation.
· The project can
easily get taken off track if the customer representative is not clear what
final outcome that they want.
· Only senior
programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless
combined with experienced resources.