0.4 SCRUM Agile

Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Note

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

The Agile methodology is a set of principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. Agile advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages flexible responses to change.

Key Principals

  1. Iterative and Incremental: Agile methodology is based on an iterative approach where software is developed and delivered in small chunks. This allows feedback to be incorporated from stakeholders, and changes can be made as the project progresses.

  2. Collaboration: Agile places a significant emphasis on collaboration among all stakeholders, including developers, customers, and managers. Everyone is involved in the decision-making process.

  3. Self-Organizing Teams: Agile teams are cross-functional and self-organizing. No one tells the team how to turn an idea into a piece of functionality; the team decides on its own.

  4. Flexibility: Agile is highly flexible and adapts to changes. If business requirements change, the software or project scope can change, even late in development.

  5. Customer Satisfaction: One of the key tenets of Agile methodology is customer satisfaction. By involving the customer throughout the development process and considering their feedback, the final product is more likely to meet their needs.

  6. Agile methodology is a reaction against traditional, heavyweight project management methodologies, often characterized as ‘Waterfall’, that focus on upfront planning and schedule-driven development. Agile methodologies, such as Scrum, Kanban, and Extreme Programming (XP), provide frameworks for implementing Agile principles in practical ways.

Agile development is a term used to describe iterative software development. Iterative software development shortens the DevOps lifecycle by executing against work in smaller increments, usually called sprints. Sprints are typically 1-4 weeks long. Agile development is often contrasted with traditional or waterfall development, where larger projects are planned upfront and executed against that plan.

SCRUM Agile Model

Note

SCRUM is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.

In a nutshell, Scrum requires a Scrum Master to foster an environment where:
  1. A Product Owner orders the work for a complex problem into a Product Backlog.

  2. The Scrum Team turns a selection of the work into an Increment of value during a Sprint.

  3. The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.

  4. Repeat