In the agile world software development follows an iterative approach with continuous releases,incorporating customer feedback with every build. Initially the agile model was adopted only for small projects but now large organizations are seeking to make agile the core of every project.
Traditional models like the waterfall model and V-shaped model follow a straightforward approach wherein the project moves to the next phase only when the current phase is completed. And it is difficult if not impossible to track back and make changes. Thus these methods lack flexibility and room for constant refinement.Whereas in an agile process the software development cycle is divided into a number of iterations. Each iteration involves planning, development, testing followed by deployment. Multiple small iterations make it possible to constantly evaluate and modify the solution, taking into consideration regular feedback from customers. This model emphasizes interaction, as the customers and project team work together throughout the process. Agile process provides greater flexibility and room for constant improvement.
In an Agile process the requirements are brief descriptions of required functionality which evolve over time based on interaction with the customer. The customer has the power to prioritize the features to be built and the development team pulls tasks from the backlog based on this priority.
Through frequent increments, testing and reviews in each iteration, quality is improved as defects are detected early and fixed. Any expectation mismatches are identified early on in the process .In case something changes about the project,the amount of re-work that must be done is minimized. Teams don’t have to go too far working on a solution before realizing that they must back-track and start from scratch.
Some of the frameworks used to implement agile are Scrum and Kanban.In Scrum, development takes place over a series of fixed length iterations called sprints. Each sprint involves sprint planning, daily stand-up, sprint demo and sprint retrospective. The kanban methodology encompasses ‘Just in Time’ principles by matching the amount of work in progress (WIP) to the team’s capacity.
There are a number of metrics that help agile teams remain focused on the task at hand and make releasing software easier. Like burn down charts, control charts , Cumulative flow diagrams which forecast how much work can be completed in a sprint and if the flow of work is consistent among teams.
Moving to more agile forms of software development and deployment helps teams meet customer needs faster and gain competitive advantage. Agile helps to improve communication across the team, product quality, time to market, and ROI.