Software Development Life Cycle or SDLC, is a set of steps used to create software applications. These steps divide the development process into tasks that can then be assigned, completed, and measured.
One of the oldest and traditionally used methodology –Waterfall, which just means ”flows through the process”. It comprises, a series of stages executed consecutively. In waterfall, people tend to work in sequence – like a relay race. Here, tasks are completed in a specific order, and leaves almost no room for unexpected changes or revisions. As it flows through each phase, tester has to wait till the development phase is completed. And it focuses very little on the end user or client involved with a project. So, Waterfall is not suitable for projects where client or business requirements may change during development.
The basic definition of Agile means “moving through the process quickly”. It is a set of techniques followed by a team to administer a project or plan by dividing it into various stages with continuous collaboration with customers. There is constant monitoring at every phase of the software development of the project. The objective of agile is to produce shorter product development cycles and deliver more frequent releases than the traditional waterfall management methodology. Agile was formally launched in 2001, with a goal of developing a better software. Four major key values of agile project management are
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
How Agile works?
Unlike the traditional Waterfall approach, Scrum one of the Agile methodology which follows an iterative approach. This approach basically involves a number of cycles usually called ‘Sprints’ that are designed, developed, and tested individually.
Each Sprint has its own backlog, design, development, testing and deployment phases within the pre-defined scope of work.
With every iteration completion, new features are added to the main software which results into the software growth.
Agile-Scrum team structure:
Scrum Master is responsible for ensuring the team lives Agile values and principles and follows the processes and practices that the team agreed they would use. Product Owner is a product expert who represents the stakeholders, and is the voice of the customer. Product Owner creates the product backlog, holds responsibility to prioritize and maintain the product backlog items. Development Team consist of developer, tester, designer, writer who are all responsible for delivering the work through the Sprint. Scrum events:
Sprint: Iterative time-boxes where a goal is accomplished. Time frame does not exceed one calendar month and is consistent throughout the development process. Sprint planning: Where the entire Scrum team gets together at the beginning of every Sprint to plan the upcoming sprint. Daily Scrum/Stand-up meeting: 15-minute time boxed meeting held at the same time, every day of the Sprint, where the previous day’s achievements are discussed, as well as the expectations for the following one. Sprint review: An informal meeting held at the end of every Sprint where the Scrum team present their Increment to the stakeholders, and discuss feedback. Sprint retrospective: A meeting where the Scrum team reflects on the proceedings of the previous Sprint and establishes improvements for the next Sprint. Scrum Artifacts: Product backlog: Managed by the Product Owner, it’s where all the requirements needed for a viable product are listed in order of priority. Includes features, functions, requirements, enhancements, and fixes that authorize any changes to be made to the product in future releases.
Sprint backlog: A list of the tasks and requirements that need to be accomplished during the next Sprint. Sometimes accompanied by a Scrum task board, which is used to visualize the progress of the tasks in the current Sprint, and any changes that are made in a ‘To Do, Doing, and Done’ format.
Burndown charts: A burndown chart shows the amount of work that has been completed in a sprint, and the total work remaining. Burndown charts are used to predict the team's likelihood of completing their work in the time available.
By implementing Agile methodology, we can improve
High product quality
Higher customer satisfaction
Increased project control