Learn more about how continuous integration and Agile methodologies work together.
Agile development is a collection of methodologies that focus on iterative development and collaboration between self-organized teams. Agile methods rely on disciplined project management processes and cooperation between teams, or even teams of teams. While there are many Agile frameworks to choose from, all Agile development projects involve some sort of continuous development, such as continuous planning, continuous testing, and continuous integration (CI).
With CI, developers gradually grow a stable system by working in small batches and short cycles, which is a lean concept. Continuous integration supports teams working within Agile frameworks with CI/CD pipelines that automate builds, tests, and deployments. While Agile falls into Project and Portfolio Management (PMM), CI is the process by which software development teams implement changes.
Fundamentally, Scrum and other Agile methodologies are a management framework, not software engineering practices. Teams need to combine Agile frameworks with software engineering best practices to achieve the best results. Continuous integration puts Agile’s iterative development into action.
Agile project management delivers complex projects by focusing on incremental change. This iterative methodology has six core elements to track progress and create the product.
Agile methodologies can vary in their approach but stay true to this model. In GitLab, project management features coincide with these Agile core concepts.
Agile concept | GitLab feature |
---|---|
User stories | Issues |
Tasks | Task lists |
Epics | Epics |
Points/Estimations | Weights |
Backlog | Issue lists and prioritized labels |
Sprints | Milestones |
Burndown charts | Burndown charts |
Agile boards | Issue boards |
Git it is the most popular method of version control, and can be beneficial for Agile teams because it allows for decentralized and simultaneous development. Tools like GitLab and others create a process around code mainly through issues and merge requests.
A merge request (MR) is a way to visualize and collaborate on proposed changes to source code. A CI workflow for teams using an Agile methodology would incorporate Agile core concepts as well as commits, merge requests, testing, and deployments.
Labels are a way for teams to filter and manage epics, issues, and merge requests. For a specific project, teams may have labels such as Planning
, In Progress
, Staging
, Reviewed
, etc with their own lists in the Issue Board.
Teams can collaborate in the issues, and once next steps have been decided, a developer assigned to the issue might begin work and remove the label Planning
and replace it with the label In Progress
.
The developer can reference the corresponding issue in his commit message. The developer then pushes his commits to a feature branch and creates a merge request. The code is built and tested, and a team member can review the code changes.
Once one team finishes their review, they can remove the label In Progress
and move the issue to the Staging
Issue Board. This can alert the deployment team that the issue is ready.
Once the MR has been approved, it can be merged into the main branch and the issue closed.
Continuous integration drives development teams to implement small, frequent changes and validate code against version control repositories. In fact, CI can be considered a pillar of the Agile process. CI is so widely used that CI and Agile are often used interchangeably. While the concepts similarly stress small, iterative changes, they are not the same.
Agile is built on the expectation that developers can deliver small incremental updates to a product or service. In practice, this will only be achieved if an organization commits to CI/CD automation. Agile frameworks allow teams to move quickly and work independently, but if the org does not actively use CI/CD, then Agile methods are essentially futile.
Agile development strives to have a working product at the end of each Sprint. As the product goes through each Sprint, it’s improved exponentially. With CI, code changes made to the product are continually validated against other changes. Continuous integration and continuous testing ensures that teams can deliver this working product because bugs and potential issues are caught before they reach the end user.
by Victor Wu
How Agile artifacts map to GitLab features and how an Agile iteration looks in GitLab.
Learn more
by Sara Kassabian
Read our example engineering stories from the past two years that show how to use GitLab for you DevOps cycle, including GitOps, CI/CD and more.
Learn more
by Julie Byrne and Victor Hernandez
GitLab provides features that are flexible enough to be used for scaled Agile portfolio planning and project management, regardless of the framework you choose.
Learn more
GitLab is more than just source code management or CI/CD. It is a full software development lifecycle & DevOps tool in a single application.
Try GitLab Free