What is Agile

There's no single approach that works for all situations

Agile Definition

Agile is a term describing approaches to software development that emphasize incremental delivery, team collaboration, continual planning, and continual learning.

Agile methods, often called frameworks, provide comprehensive structures for the various phases of the DevOps lifecycle:

  • Planning
  • Development
  • Delivery
  • Operations

These frameworks -Scrum being the most popular among them— prescribe methods for accomplishing work through clear guidance and shared principles.

Agile process

What is Agile development

Agile development is a term used to describe iterative software development that shortens the DevOps lifecycle by completing work in short increments. These increments, usually called sprints, typically last between one and four weeks.

Delivering production-quality code every sprint requires the development team to maintain an accelerated, sustainable pace. All coding, testing, and quality verification must be completed within each and every sprint to ensure the product is always in a "shippable" state.

Backlog Refinement

An Agile team works from a backlog of requirements, often referred to as user stories. The backlog is prioritized so that the most valuable items remain at the top. The Product Owner manages the backlog, adding, changing, or reprioritizing stories based on evolving customer needs.

The Product Owner’s primary responsibility is to ensure that engineers have clearly defined requirements. The stories at the top of the backlog should always be "ready" for the team to begin—a process known as backlog refinement.

Continuos Integration and Delivery (CI/CD)

Implementing CI/CD is one of the first tasks a team tackles when starting a new project. Through automation, teams avoid slow, time-intensive, and error-prone manual deployment processes.

Several key CI/CD activities are critically important for effective Agile development:

  1. Unit Testing: Integrate unit testing into every build to catch bugs early.

  2. Build Automation: The system should automatically pull code and tests directly from the source repository.

  3. Branch and Build Policies: Configure policies to trigger builds automatically upon code changes or Pull Requests.

  4. Deployment to Environments: Set up a release pipeline that automatically deploys successful builds to designated testing or production environments.

CAKE®STACK

Rolling With The Dough