What is Agile
There's no single approach that works for all situations
Agile is a term that describes approaches to software development that emphasize incremental delivery, team collaboration, continual planning, and continual learning.
Agile is neither development without specifications nor is it inherently inefficient; rather, there is no single approach that works for all situations. Instead, Agile refers to a mindset that drives a specific approach to software development.
Agile methods, often called frameworks, are comprehensive approaches to the various phases of the DevOps lifecycle:
- Planning
- Development
- Delivery
- Operations
These frameworks prescribe methods for accomplishing work with clear guidance and principles—Scrum being the most popular among them.
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 from one to four weeks.
Delivering production-quality code every sprint requires the Agile development team to maintain an accelerated pace. All coding, testing, and quality verification must be completed within each and every sprint.
Backlog Refinement
An Agile development team works from a backlog of requirements, often referred to as "user stories." The backlog is prioritized so that the most important user stories remain at the top. The Product Owner owns the backlog and adds, changes, or reprioritizes stories based on customer needs.
The Product Owner's primary responsibility is to ensure that engineers have clearly defined user stories to work with during every sprint. 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:
-
Unit Testing: Integrate unit testing into every build.
-
Build Automation: The system should automatically pull code and tests directly from the source.
-
Branch and Build Policies: Configure policies to trigger builds automatically upon code changes.
-
Deployment to Environments: Set up a release pipeline that automatically deploys built projects to a designated environment.
