SDLC Agile Model And Phases
History of Agile:
- Particularly in the 1990s, some developers reacted against traditional heavyweight software development processes.
- In 2001 “17” developers got together in Utah and looked for ways to revolutionize development process
- The process was described in Agile Manifesto
Introduction to Agile:
- Agile is a project management methodology that breaks down larger projects into smaller.
- At the end of every iteration (which typically takes place over a consistent time interval), something of value is produced.
- The value of product increments being delivered is estimable, and once estimated, its value can be prioritized. In Scrum, this is known as working from a prioritized product backlog.
- This will help teams work efficiently and quickly through short, time-boxed.product increments. Iterations are generally 1-4 weeks in length.
- Teams should reflect on their process and results regularly to improve.
Features of Agile:
Important Features of Agile Development Process
- Sprints: It is an iterative development cycle, where requirements are refined regularly by breaking down the work into small and digestible chunks.
- Scrum Meetings: It is a highly collaborative working style of the team.
- Agile development process results in an ‘inspect and adapt’ approach with internal and external stakeholders by reviewing products and services frequently.
- Due to open interaction with investors and other stakeholders and project management processes, the transparent process may be applied by online Agile Project Management tools like Team Foundation Service and others.
Phases of Agile:
The phases in the Agile development cycle. It’s important to note that these phases shouldn’t happen in succession; they are flexible and always evolving. Many of these phases happen in parallel.
- Requirements analysis:
This phase involves many meetings with managers, stakeholders, and users to identify business requirements. The team needs to gather the information about who will use the product and how they will use it. These requirements must be relevant,quantifiable, and detailed.
- Planning:
Once an idea is deemed viable and feasible, the project team comes together and works to identify the features. The aim of this phase is to break down the idea into smaller pieces of work then to prioritize each feature and assign it to an iteration.
- Design:
The software design and system is prepared from the requirements identified in the previous phases. The team needs to think about what the solution will look like. The test team comes up with a test strategy and a plan to proceed.
- Implementation, coding or development:
This phase is all about creating and testing, and scheduling iterations for deployment. The development phase starts with the iteration 0, because there are no features being delivered. This iteration lays down the foundation for development, with tasks like preparing the environments, finalizing contracts, and funding.
- Testing:
After the code has been developed by the developers, it is tested against the requirements to make sure the product is actually solving customer needs and matching user stories. During this phase, integration testing, unit testing, system testing, and acceptance testing are done.
- Deployment:
After testing is done, the product is delivered to customers for them to use. Once customers start using this product, they may run into new problems that the project team will need to address.
Advantages of Agile:
- We can determine the issues in advance as there are daily meetings and discussions and therefore be able to work on it accordingly.
- The development and testing helps to recognize the gaps existing in either requirements or technology used and can try to find the work around.
- It uses less documentation. The very first advantage is that it saves a lot of time and money.
- If any change request or new enhancements occurs during the development phase, it can be implemented without considering the budget constraint.
- Requirements can add or change at any stage by the customers.
Disadvantages of Agile:
- Cost is more as compared to a waterfall or interactive model.
- For Agile methodology, experience resources will be needed.
- For bigger and complex projects, it is difficult to determine the effort estimation at the beginning of the software development.
- Agile methodology pays less importance, For Designing and Documentation.
- If the customer representative is not clear what final outcome that they want the project can easily get taken off track .
Concerns of Agile:
- It does not satisfy top management’s need for schedule control, scope and budget.
- The principles of self-organization and collaboration can be incompatible with corporate cultures.
- Its methods appear to work best on the minor projects that require only five to nine team members to complete that work.
- It requires active customer cooperation and involvement.
Conclusion:
- Agile offers several benefits in Business but at the same time It remains a very challenging task for the team to be able to deliver an agile project successfully.
- The nature of the project must be considered before the selection of the methodology. In my experience it works well for minor projects, or implementations that require less product customization.