Summary -
In this topic, we described about the below sections -
What is Agile?
Agile Model is a continuous iterative process involving the development and testing activities together throughout the Software Development Life Cycle. It is a combination of both Iterative and spiral model.
In Agile, every project is divided into releases and each release is further divided into small time frames called iterations/sprints. Each iteration lasts for 2-4 weeks.
Unlike the traditional waterfall model, it is a dynamic where in the requirements keep changing by the end user in between the development process. This Agile model can be used when introducing new changes to the existing product as it is less cost effective.
When compared to the traditional waterfall model, the Agile model takes less time and customer has transparency on the progress of the product being developed.
The Agile model has started early in the software development and it started earning popularity due to its flexibility and adaptability. The most popular Agile models are Rational Unified Process, Scrum, Crystal Clear, Extreme Programming, Adaptive software development, Feature Driven Development and Dynamic Systems Development method. All these methods are now collectively known as "Agile Methods".
Advantages -
- Realistic approach of Software Development.
- Cross Training and teamwork are well promoted.
- Functionality would be developed rapidly and demonstrated.
- Minimum Resources are required.
- Best suited for fixed or changing requirements.
- Early partial working solutions would be delivered.
- Works better for environments that keep changing frequently.
- Minimum rules and documentation are employed easily.
- Concurrent development would be enabled, and delivery would be in an overall planned context.
- Planning is not actually required.
- Easily manageable.
- Flexible for developers.
Disadvantages -
- This model would not be suitable for projects having complex dependencies.
- Risk of sustainability, maintainability and extensibility would be more.
- Plan, an Agile leader and agile PM practice would be mandatory as nothing would work out without them.
- The scope, functionality that has to be delivered and adjustments needed to meet the deadlines would be dictated by strict delivery management.
- Huge dependency on the customer interaction, so if customer is not clear, team would be driven in wrong direction.
- Individual dependency would be so high as there is minimum documentation that has to be generated.
- Due to lack of documentation, cross technology training to the team members would be so difficult.
When to use Agile Model?
- When frequent changes are required in the project.
- When a highly qualified and experienced team would be available.
- When a customer would be ready to conduct a meeting with a software team all the time.
- When it is a small project.
Agile Model Phases -
Agile model phases are specified below and those are -
- Planning
- Requirements gathering
- Design the requirements
- Development/Construction
- Testing/ Quality assurance
- Deployment
Lets get some understanding of the above phases -
- Planning - In this phase, we should define the iteration planning. We should plan the timelines of the project.
- Requirements gathering - In this phase,we should define the requirements.We need to explain business opportunities and effort needed to build the project.Based on the gathered information,we can evaluate technical and economic feasibility.
- Design the requirements - In this phase,we should work with stakeholders to define requirements.We can use the diagrams to explain the working of new features and how they will apply to the existing system.
- Development /Construction - In this phase,designers and developers start working on the project based on the requirement provided.The development of the product undergoes various stages of improvement to get the expected result.
- Testing - In this phase,the Quality Assurance team tests the product, product performance and creates the defects if any bug found.
- Deployment - -In this phase,the product owner product outcome is satisfied verifies the test results and product quality. If the,the product deploys to the production which is available for end user.If the product is not satisfied,then it moves to the next iteration to improves the quality.