Agile software development is a group of software development methods based on iterative and incremental development, in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. In simple words, agile development is a different way of managing IT development teams and projects.
Agile development provides opportunities to assess the direction throughout the development lifecycle. This is achieved through regular notes of work, known as Sprints or iterations, at the end of which teams must present a potentially shippable product increment.
There are many frameworks for agile project management but most widely used is SCRUM.
Scrum is a lightweight agile project management framework with broad applicability for managing and controlling iterative and incremental projects of all types.
- Scrum Team : A typical scrum team has between five and nine people however, Scrum can easily be used by one-person teams and often is. This team does not include any of the traditional software engineering roles such as programmer, designer, tester or architect. Everyone on the project works together to complete the set of work they have collectively committed to complete within a sprint.
- Product owner: The product owner is the project’s key stakeholder and represents users, customers and others in the process. The product owner is often someone from product management or marketing, a key stakeholder or a key user.
- Scrum Master: The Scrum Master is responsible for making sure the team is as productive as possible. The Scrum Master does this by helping the team use the Scrum process, by removing obstacles to progress, by protecting the team from outside, and so on.
- Product backlog: The product backlog is a prioritized features list containing every desired feature or change to the product. The term “backlog” can get confusing because it’s used for two different things. To clarify, the product backlog is a list of desired features for the product. The sprint backlog is a list of tasks to be completed in a sprint.
- Sprint: A time period (typically 1–4 weeks) in which development occurs on a set of backlog items that the team has committed to. Also commonly referred to as a Time-box or iteration.
- Sprint planning meeting: At the start of each sprint, a sprint planning meeting is held, during which the product owner presents the top items on the product backlog to the team. The Scrum team selects the work they can complete during the coming sprint. That work is then moved from the product backlog to a sprint backlog, which is the list of tasks needed to complete the product backlog items the team has committed to complete in the sprint.
- Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is conducted. This meeting helps set the context for each day’s work and helps the team stay on track. All team members are required to attend the daily scrum.
- Sprint review meeting: At the end of each sprint, the team demonstrates the completed functionality at a sprint review meeting, during which, the team shows what they accomplished during the sprint. Typically, this takes the form of a demonstration of the new features, but in an informal way.
- Sprint retrospective: Also at the end of each sprint, the team conducts a sprint retrospective, which is a meeting during which the team (including its Scrum Master and product owner) reflect on how well Scrum is working for them and what changes they may wish to make for it to work even better.
A product owner creates a prioritized feature list called a product backlog.
- During sprint planning, the team pulls a small chunk from the product backlog, which will be sprint backlog, and decides how to implement those pieces.
- The team has a certain amount of time — a sprint (usually one to four weeks) — to complete its work, but it meets each day to assess its progress (daily Scrum).
- Along the way, the Scrum Master keeps the team focused on its goal.
- At the end of the sprint, the work should be potentially shippable: ready to hand to a customer or show to a stakeholder.
- The sprint ends with a sprint review and sprint retrospective
- As the next sprint begins, the team chooses another chunk of the product backlog and begins working again.