How Agile development methodology benefits software projects ?
Fig-1: Agile SDLC Model
What is Agile? Agile SDLC model is a combination of iterative and incremental process models in which customer satisfaction is the key point. Agile methods break the product into small incremental builds. These builds are also called as sprints. The life time of each sprints is about one to three weeks. Every iteration involves cross functional teams working simultaneously on various areas like planning, requirements analysis, design, coding and testing. At the end of each iteration a demo product is made available to the customer or stake holder for sign-off. Agile explained further Agile methods are being widely accepted in the software world recently. Agile thought processes had started early in the software development and became popular with time due to its flexibility and adaptability. This SDLC model is best suited for complex and long term projects.
Letâ€™s take a look at some of the characteristics of Agile development:
- Agile development relies on close cooperation and collaboration between all team members and stakeholders.
- The iterative nature of agile development means features are delivered incrementally which gives the team a satisfaction that they are developing the product right.
- A key principle of agile development is that testing is integrated throughout the lifecycle making the project/product strong at the foundation itself.
- Agile development principles encourage active customer involvement throughout the software development life cycle.
- Small incremental releases make it easy to identify issues early so that they are fixed within time and easily.
When is the right time to use Agile?
- When developing something from scratch without proper and detailed design in place Agile gives flexibility to change the aspects of a software component at any time making it very cost effective.
- If a new software development goes wrong totally then also the overall loss for the project is few days or hours and the roll back can be implemented easily.
- Unlike the waterfall model for agile model very limited planning is required to get started with the project.
- Agile also assumes that the customer needs are ever changing which can be included in the sprint planning for the discussion and modified in the subsequent planning sessions.
Variants of Agile Agile is a methodology which has given birth to several project management principles which are put into practice.
The different variants of agile methodology are: Scrum, eXtreme Programming (XP), Dynamic Software Development Method (DSDM), Feature Driven Development (FDD), Crystal Methods and Lean Development (LD). Among these variants Scrum is most commonly used in the software industry.
Letâ€™s take a look at Scrum methodology in detail.
Most teams that transition to Agile choose to start with Scrum because it is simple and gives lots of flexibility. The following points differentiates Scrum from other methodologies:
- Scrum typically has three roles: Product owner, Scrum master and team members.
- Projects are divided into sprints, which typically last one, two or three weeks.
- At the end of each sprint, all stakeholders meet to assess the progress and plan its next steps.
- The advantage of scrum is that a projectâ€™s direction can be adjusted based on completed work and not on speculation or predictions.
The Scrum methodology includes the following steps: Sprint Planning Every iteration starts with a sprint planning meeting. The product owner holds a conversation with the team and decides which stories are highest in priority and must be handled first. Stories are added to the sprint backlog and the team then breaks down the stories and turn them into tasks. Daily Scrum The daily scrum is also known as the daily standup meeting. This serves to tighten the communications and ensure that the entire team is on the same page on each sprint day. Each member goes through what they have done since the last standup, what they plan to work on before the next one, and outline any obstacles or issues. Sprint Review Meeting At the end of a sprint, the team presents their work to the product owner. The product owner goes through the sprint backlog and either accepts or rejects the work. All uncompleted stories are added to the next sprint planning by the product owner. Sprint Retrospective Meeting After a sprint is completed the scrum master meets with the team for a retrospective meeting. They go over what went well, what did not, and what can be improved in the next sprint. The product owner is also present and listens to the teamâ€™s review of the previous sprint planning. This process allows the entire team to focus on its overall performance and identify strategies for improvement. It is crucial as the Scrum Master can observe common impediments and work to resolve them.