Header Ads

AGILE Model | Things Less Taught

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.

Powered by Blogger.