What is SDLC?
The
software development life cycle (SDLC), is a term that is used in software
engineering context, and refers to the different stages from the planning to
deployment which includes the process for planning, analysis, creating,
testing, and deploying an information system.
What is Agile Model?
As the name
suggests, Agile model is a combination of iterative and incremental process
models with focus on process adaptability and customer satisfaction by rapid
delivery of working software product, in other words Agile Model is a
particular SDLC model that delivers quick updates with higher flexibility and
cost efficiency. Agile breaks the product requirement into incremental and independent
builds which are to be developed in iterations. Being independent, every
iteration involves simultaneous work on various areas like −
- ·
Planning
- ·
Requirements
Analysis
- ·
Design
- ·
Coding
- ·
Unit
Testing and
- ·
Acceptance
Testing.
At the end of each
iteration, an updated working product is undergone the acceptance test of the customer
and important stakeholders which if passed is deployed else is sent to next
iteration. In Agile, each requirement is divided to time boxes [cost effective]
to deliver specific features for a release [adaptability].
Agile Vs Traditional SDLC Models
Agile is based on
the adaptive software development methods, whereas the traditional SDLC
models like the waterfall model is based on a predictive approach i.e. in case
of traditional models the development specification is expected to be very
detailed as it is dependant totally on the project requirement document, but
that is only possible if the consumer also has sound knowledge of the
technology to be used, which is too much to ask for.
Agile uses
an adaptive approach where it requires no detailed planning and there
is scope of clarifying on future tasks only in respect of what features need to
be developed. This gives the project room for adjustments and improvements. The
product is tested very frequently (after development of each independent
feature on the requirement list), through the release iterations thus gives a
much more reliable product.
But what makes the key difference is the
Customer Interaction. In
traditional SDLC customer interaction is only seen in the Requirement Analysis
and Acceptance stages, but in case of Agile Customer Interaction is the
backbone of the methodology. Typical features of Agile are to have open
communication with minimum documentation, as each of the release refers to
product features of increasing difficulties the constant approval of consumer
makes it easier to deliver a big software project and provides a greater
containment of failures.
Agile Model - Pros and Cons
Agile methods are
being widely accepted in the software world recently. However, this method may
not always be suitable for all products. Here are some pros and cons of the
Agile model.
The advantages of
the Agile Model are as follows −
- ·
It is a
practical SDLC Model.
- ·
Promotes
Cross Team development and parallel workflow.
- ·
Feature
Based thus functionality is developed rapidly and demonstrated for acceptance.
- ·
Cost
Efficient.
- ·
Highly
Adaptive.
- ·
High Flexibility.
- ·
Higher
Consumer Satisfaction.
- ·
Higher reliability.
- ·
Less Managerial
Effort needed for analysis.
The disadvantages
of the Agile Model are as follows −
- ·
Not
suitable for handling complex dependencies.
- ·
More
risk of maintainability and extensibility.
- · High
customer interaction dependency, so if customer is confused, team can be driven
in the wrong direction.
- · High
individual dependency, due to minimum documentation generated.