Agile SDLC Model:
Agile SDLC 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.
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 like 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.
Agile model believes 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 divided to time boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.
Agile thought process had started early in the software development and started becoming popular with time due to its flexibility and adaptability.
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
Agile Process Models:
- Extreme Programming (XP)
- Adaptive Software Development (ASD)
- Dynamic Systems Development Method (DSDM)
- List item
- Feature Driven Development (FDD)
- Agile Modeling (AM)
Dynamic Systems Development Method
Provides a framework for building and maintaining systems which meet tight time constraints using incremental prototyping in a controlled environment
Uses Pareto principle (80% of project can be delivered in 20% required to deliver the entire project)
Each increment only delivers enough functionality to move to the next increment
Uses time boxes to fix time and resources to determine how much functionality will be delivered in each increment
Active user involvement
Teams empowered to make decisions
Fitness foe business purpose is criterion for deliverable acceptance
Iterative and incremental develop needed to converge on accurate business solution
All changes made during development are reversible
Requirements are baselined at a high level
Testing integrates throughout life-cycle
Collaborative and cooperative approach between stakeholders
Life cycle activities
Feasibility study (establishes requirements and constraints)
Business study (establishes functional and information requirements needed to provide business value)
Functional model iteration (produces set of incremental prototypes to demonstrate functionality to customer)
Design and build iteration (revisits prototypes to ensure they provide business value for end users, may occur concurrently with functional model iteration)
Implementation (latest iteration placed in operational environment)