- SDLC - Software Prototype
- SDLC - RAD Model
- SDLC - Agile Model
- SDLC - Big Bang Model
- SDLC - V-Model
- SDLC - Spiral Model
- SDLC - Iterative Model
- SDLC - Waterfall Model
- SDLC - Overview
- SDLC - Home
SDLC Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
SDLC - Agile Model
Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptabipty and customer satisfaction by rapid depvery of working software product. Agile Methods break the product into small incremental builds. These builds are provided in iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves cross functional teams working simultaneously on various areas pke −
Planning
Requirements Analysis
Design
Coding
Unit Testing and
Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important stakeholders.
What is Agile?
Agile model bepeves that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are spanided to time boxes (small time frames) to depver specific features for a release.
Iterative approach is taken and working software build is depvered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.
Here is a graphical illustration of the Agile Model −
The Agile thought process had started early in the software development and started becoming popular with time due to its flexibipty and adaptabipty.
The most popular Agile methods include Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM) (1995). These are now collectively referred to as Agile Methodologies, after the Agile Manifesto was pubpshed in 2001.
Following are the Agile Manifesto principles −
Inspaniduals and interactions − In Agile development, self-organization and motivation are important, as are interactions pke co-location and pair programming.
Working software − Demo working software is considered the best means of communication with the customers to understand their requirements, instead of just depending on documentation.
Customer collaboration − As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements.
Responding to change − Agile Development is focused on quick responses to change and continuous development.
Agile Vs Traditional SDLC Models
Agile is based on the adaptive software development methods, whereas the traditional SDLC models pke the waterfall model is based on a predictive approach. Predictive teams in the traditional SDLC models usually work with detailed planning and have a complete forecast of the exact tasks and features to be depvered in the next few months or during the product pfe cycle.
Predictive methods entirely depend on the requirement analysis and planning done in the beginning of cycle. Any changes to be incorporated go through a strict change control management and prioritization.
Agile uses an adaptive approach where there is no detailed planning and there is clarity on future tasks only in respect of what features need to be developed. There is feature driven development and the team adapts to the changing product requirements dynamically. The product is tested very frequently, through the release iterations, minimizing the risk of any major failures in future.
Customer Interaction is the backbone of this Agile methodology, and open communication with minimum documentation are the typical features of Agile development environment. The agile teams work in close collaboration with each other and are most often located in the same geographical location.
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 −
Is a very reapstic approach to software development.
Promotes teamwork and cross training.
Functionapty can be developed rapidly and demonstrated.
Resource requirements are minimum.
Suitable for fixed or changing requirements
Depvers early partial working solutions.
Good model for environments that change steadily.
Minimal rules, documentation easily employed.
Enables concurrent development and depvery within an overall planned context.
Little or no planning required.
Easy to manage.
Gives flexibipty to developers.
The disadvantages of the Agile Model are as follows −
Not suitable for handpng complex dependencies.
More risk of sustainabipty, maintainabipty and extensibipty.
An overall plan, an agile leader and agile PM practice is a must without which it will not work.
Strict depvery management dictates the scope, functionapty to be depvered, and adjustments to meet the deadpnes.
Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
There is a very high inspanidual dependency, since there is minimum documentation generated.
Transfer of technology to new team members may be quite challenging due to lack of documentation.