It is an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customers & end users.
1Agile advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.
2The term agile was popularized, in this context, by the Manifesto for Agile Software Development. The values and principles espoused in this manifesto were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban.
3Evidence demonstrates that adopting agile practices and values improves the agility of software professionals, teams and organizations. It enables you to learn directly from end users and implement changes while doing so.
4Extreme programming (XP) is a software development methodology which improves software quality and responsiveness to changing customer requirements. It advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. It includes: programming in pairs or doing extensive code review, unit testing of all code, avoiding programming of features until they are needed, flat management structure, code simplicity and clarity, expecting changes in the requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.
Development Team The development team is responsible for the implementation of the articles in the Sprint Backlog. Although several members of the development team may specialize in different areas, the development team as a whole is responsible for the development of functionality.
Sprint Backlog: Sprint Backlog refers to a subset of Product Backlog that is selected for a Sprint along with its delivery plan. Based on the items in the Sprint Backlog, the Development Team decides how they will create a “Done” product.
Daily Scrum: A fixed time, fixed place event that allows the Development Team to synchronize and plan work for the next 24 hours based on the amount of work done since the last Daily Scrum. During Daily Scrum, Development Team members explain:
- What did I do yesterday that helped toward the Sprint Goal?
- What am I going to do today toward my Sprint Goal?
- What Impediments I see toward accomplishing my Sprint Goal?
- The Daily Scrum usually lasts for 15 minutes, but can be followed by other meetings for detailed discussions.
Sprint Review and Retrospective: The Sprint Review is scheduled after the sprint ends to inspect the amount of work done and adapt the Product Backlog if necessary. Similarly, Retrospective is used to analyze what went right in the Sprint and what could be improved upon. This Retrospective feedback helps improve the process in Sprints to follow.