--- layout: feature title: GitLab Agile Delivery description: "How to use GitLab as an agile project management tool for agile processes such as scrum, kanban, and scaled agile framework." suppress_header: true canonical_path: "/solutions/agile-delivery/" extra_css: - gitlab-feature-landing-page.css - features.css --- .wrapper.gitlab-ee-page .blank-header = image_tag "/images/home/icons-pattern-left.svg", class: "image-border image-border-left", alt: "Gitlab hero border pattern left svg" = image_tag "/images/home/icons-pattern-right.svg", class: "image-border image-border-right", alt: "Gitlab hero border pattern right svg" .header-content = image_tag "/images/devops-tools/gitlab-logo.svg", class: "hero-image-small", alt: "Gitlab logo svg" %h1 GitLab Agile Planning %p GitLab enables you to plan and manage your Agile delivery = link_to "Try GitLab for Free", "/free-trial/", class: "btn cta-btn orange" .sub-wrapper .container .grid-layout.grid-layout2.margin-top50 .grid-item %h2.margin-top0 Agile delivery with GitLab %p Development teams continue to accelerate the delivery of value with iterative, incremental, and lean project methodologies, such as Scrum, Kanban, Extreme Programming (XP), and more. Large enterprises have adopted Agile at enterprise scale through a variety of frameworks, including Scaled Agile Framework (SAFe), Spotify, Large Scale Scrum (LeSS), and others. GitLab enables teams to apply Agile practices and principles to organize and manage their work, whatever their chosen methodology. = link_to "Learn more", "/demo/", class: "btn cta-btn orange margin-top20" .grid-item %iframe{:allow => "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture", :allowfullscreen => "", :frameborder => "0", :height => "315", :src => "https://www.youtube.com/embed/wmtZKC8m2ew", :width => "560"} %hr.divider .row.advantages .col-xs-1.col-md-1 .col-xs-10.col-md-10 %h2 What is Agile? %p %strong Agile development is iterative, incremental, and lean approaches to streamline and accelerate the delivery of projects. %hr.divider .row.advantages .col-xs-1.col-md-1 .col-xs-10.col-md-10 %h2 Why Agile? %h3 Agile Development Benefits %ul %li %strong Shortened Time-to-Value: a consistent stream of usable increments helps users realize immediate value, rather than waiting for a major release %li %strong Increased Quality: integrated testing throughout the lifecycle discovers quality issues while they are inexpensive to fix %li %strong Greater Team Efficiency: fast iteration cycles identify resource constraints early and limit their window of negative impact %li %strong Flexibility: adjust or reprioritize the product backlog at any time without losing any value from previous development %li %strong Forecasting Accuracy: shorter, more frequent iterations provide more granular, consistent data for time and resource estimation .col-xs-10.col-md-10.col-md-offset-1 = image_tag "/images/blogimages/cicd_pipeline_infograph.png", alt: "CI/CD Overview", style: "margin-top: 40px;" %hr.divider .row.advantages .col-xs-1.col-md-1 .col-xs-10.col-md-10 %h2 What Are The GitLab Advantages? %ul %li %strong Integrated: Agile is integral to GitLab, enabling collaboration and visibility from planning to deployment (and beyond) %li %strong Easy to learn: See our %a{ href: "https://www.youtube.com/watch?v=VR2r1TJCDew" } Quick Start guide on setting up Agile teams %li %strong Seamless: Part of the single GitLab application, with a single great user experience %li %strong Scalable: Organize multiple Agile teams to achieve enterprise Agile scalability %li %strong Flexible: Flexible enough to adapt to your methodology, whether you're bootstrapping Agile projects or running a top-down, formal framework %li %strong Team Tracking: Track work with boards, backlogs, dashboards and traceability into your = link_to "/product/continuous-integration/" do CI/CD %hr.divider .row .hidden-xs.hidden-sm.col-lg-4.col-lg-offset-1 %iframe{:allow => "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture", :allowfullscreen => "", :frameborder => "0", :height => "315", :src => "https://www.youtube.com/embed/wmtZKC8m2ew", :width => "560"} .col-xs-12.col-md-6 %h2 GitLab Agile Project Management %p GitLab's project management tools provide end-to-end traceability by connecting Epics and Issues to your merge requests and DevOps pipelines! %hr.divider .row .col-xs-12.col-md-6.col-md-offset-1 %h2 Set up Agile Groups & Teams %p Learn the different ways your organization can set up your Agile teams with GitLab. See how you can setup groups and projects to run multiple agile teams with microservices. .hidden-xs.hidden-sm.col-lg-4 %iframe{:allow => "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture", :allowfullscreen => "", :frameborder => "0", :height => "315", :src => "https://www.youtube.com/embed/VR2r1TJCDew", :width => "560"} %hr.divider .row .hidden-xs.hidden-sm.col-lg-4.col-lg-offset-1 %iframe{:allow => "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture", :allowfullscreen => "", :frameborder => "0", :height => "315", :src => "https://www.youtube.com/embed/PmFFlTH2DQk", :width => "560"} .col-xs-12.col-md-6 %h2 Scaled Agile Framework (SAFe) with GitLab %p See how your organization can use GitLab to build a framework using the Scaled Agile Framework (SAFe). Dive into the details around building out your Agile framework for development teams built on three pillars: Team, Program, and Portfolio. %hr.divider .row.more-features .col-xs-1.col-md-1 .col-xs-10.col-md-10 %h2 Features %ul %li %strong Issues: Start with an %a{ href: "https://docs.gitlab.com/ee/user/project/issues/" } issue that captures a single feature that delivers business value for users. %li %strong Tasks: Often, a user story is further separated into individual tasks. You can create a task %a{ href: "https://docs.gitlab.com/ee/user/markdown.html#task-lists" } list within an issue's description in GitLab, to further identify those individual tasks. %li %strong Issue boards: Everything is in one place. %a{ href: "https://docs.gitlab.com/ee/user/project/issues/#issues-per-project" } Track issues and communicate progress without switching between products. One interface to follow your issues from backlog to done. %li %strong Epics: Manage your portfolio of projects more efficiently and with less effort by tracking groups of issues that share a theme, across projects and milestones with %a{ href: "https://docs.gitlab.com/ee/user/group/epics/" } epics. %li %strong Milestones: Track issues and merge requests created to achieve a broader goal in a certain period of time with GitLab %a{ href: "https://docs.gitlab.com/ee/user/project/milestones/" } milestones. %li %strong Roadmaps: Start date and/or Due date can be visualized in a form of a timeline. The Epics %a{ href: "https://docs.gitlab.com/ee/user/group/roadmap/" } Roadmap page shows such a visualization for all the epics which are under a group and/or its subgroups. %li %strong Labels: Create and assigned to individual issues, which then allows you to filter the issue lists by a single label or multiple %a{ href: "https://docs.gitlab.com/ee/user/project/labels.html#prioritize-labels" } labels. %li %strong Burndown Chart: Track work in real time, and mitigate risks as they arise. %a{ href: "https://docs.gitlab.com/ee/user/project/milestones/burndown_charts.html" } Burndown charts allow teams to visualize the work scoped in a current sprint as they are being completed. %li %strong Points and Estimation: Indicate the estimated effort with issues by assigning %a{ href: "https://docs.gitlab.com/ee/workflow/issue_weight.html" } weight attributes and indicate estimated effort %li %strong Collaboration: The ability to %a{ href: "https://docs.gitlab.com/ee/user/discussions/" } contribute conversationally is offered throughout GitLab in issues, epics, merge requests, commits and more! %li %strong Traceability: Align your teams issues with subsequent %a{ href: "https://docs.gitlab.com/ee/user/project/merge_requests/" } merge requests that give you complete tracability from issue creation to end once the related pipeline passes. %li %strong Wikis: A system for documentation called %a{ href: "https://docs.gitlab.com/ee/user/project/wiki/" } Wiki, if you are wanting to keep your documentation in the same project where your code resides. %li %strong Enterprise Agile Frameworks: Large enterprises have adopted agile at enterprise scale using a variety of frameworks, GitLab can support %a{ href: "https://www.scaledagileframework.com/" } SAFe, Spotify, %a{ href: "https://www.disciplinedagiledelivery.com/" } Disciplined Agile Delivery and more. .col-xs-1.col-md-1 %hr.divider .row .col-xs-12.col-md-6.col-md-offset-1 %h1 An Agile iteration with GitLab %h2 User stories → GitLab issues %p In Agile, you often start with a user story that captures a single feature that delivers business value for users. In GitLab, a single issue within a project serves this purpose .hidden-xs.hidden-sm.col-md-4 = image_tag "/images/home/issue-list.png", alt: "Gitlab issues", style: "margin-top: 50px;" %hr.divider .row .hidden-xs.hidden-sm.col-md-4.col-md-offset-1 = image_tag "/images/home/Tasks.png", class: "hidden-xs", alt: "Tasks GitLab", style: "margin-top: 50px;" .col-xs-12.col-md-6 %h2 Task → GitLab task lists %p Often, a user story is further separated into individual tasks. You can create a task list within an issue's description in GitLab, to further identify those individual tasks. %hr.divider .row .col-xs-12.col-md-6.col-md-offset-1 %h2 Epics → GitLab epics %p In the other direction, some Agile practitioners specify an abstraction above user stories, often called an epic, that indicates a larger user flow consisting of multiple features. In GitLab, an epic also contains a title and description, much like an issue, but it allows you to attach multiple child issues to it to indicate that hierarchy. .hidden-xs.hidden-sm.col-md-4 = image_tag "/images/home/issue.png", alt: "Agile issues", style: "margin-top: 50px;" %hr.divider .row .hidden-xs.hidden-sm.col-md-4.col-md-offset-1 = image_tag "/images/home/issue-board.png", class: "hidden-xs", alt: "GitLab Backlog", style: "margin-top: 50px;" .col-xs-12.col-md-6 %h2 Product backlog → GitLab issue lists and prioritized labels %p The product or business owners typically create these user stories to reflect the needs of the business and customers. They are prioritized in a product backlog to capture urgency and desired order of development. The product owner communicates with stakeholders to determine the priorities and constantly refines the backlog. In GitLab, there are dynamically generated issue lists which users can view to track their backlog. Labels can be created and assigned to individual issues, which then allows you to filter the issue lists by a single label or multiple labels. This allows for further flexibility. Priority labels can even be used to also order the issues in those lists. %hr.divider .row .col-xs-12.col-md-6.col-md-offset-1 %h2 Sprints → GitLab milestones %p A sprint represents a finite time period in which the work is to be completed, which may be a week, a few weeks, or perhaps a month or more. The product owner and the development team meet to decide work that is in scope for the upcoming sprint. GitLab's milestones feature supports this: assign milestones a start date and a due date to capture the time period of the sprint. The team then puts issues into that sprint by assigning them to that particular milestone. .hidden-xs.hidden-sm.col-md-4 = image_tag "/images/home/Milestones.png", alt: "GitLab Milestones", style: "margin-top: 50px;" %hr.divider .row .hidden-xs.hidden-sm.col-md-4.col-md-offset-1 = image_tag "/images/home/weight.png", class: "hidden-xs", alt: "Issue Weight Gitlab", style: "margin-top: 50px;" .col-xs-12.col-md-6 %h2 Points and estimation → GitLab issue weights %p Also in this meeting, user stories are communicated, and the level of technical effort is estimated for each in-scope user story. In GitLab, issues have a weight attribute, which you would use to indicate the estimated effort. In this meeting (or in subsequent ones), user stories are further broken down to technical deliverables, sometimes documenting technical plans and architecture. In GitLab, this information can be documented in the issue, or in the merge request description, as the merge request is often the place where technical collaboration happens. During the sprint (GitLab milestone), development team members pick up user stories to work on, one by one. In GitLab, issues have assignees. So you would assign yourself to an issue to reflect that you are now working on it. We'd recommend that you create an empty and linked-to-issue merge request right away to start the technical collaboration process, even before creating a single line of code. .row .col-xs-12.col-md-6.col-md-offset-1 %h2 Agile board → GitLab Issue Boards %p Throughout the sprint, issues move through various stages, such as Ready for dev, In dev, In QA, In review, Done, depending on the workflow in your particular organization. Typically these are columns in an Agile board. In GitLab, issue boards allow you to define your stages and enable you to move issues through them. The team can configure the board with respect to the milestone and other relevant attributes. During daily standups, the team looks at the board together, to see the status of the sprint from a workflow perspective. .hidden-xs.hidden-sm.col-md-4 = image_tag "/images/home/issue_board.png", alt: "Agile Scrum Kanban Board", style: "margin-top: 50px;" %hr.divider .row .hidden-xs.hidden-sm.col-md-4.col-md-offset-1 = image_tag "/images/home/burndown-chart.png", class: "hidden-xs", alt: "GitLab burndown chart", style: "margin-top: 50px;" .col-xs-12.col-md-6 %h2 Burndown charts → GitLab Burndown Charts %p The development team wants to know if they are on track in real time, and mitigate risks as they arise. GitLab provides burndown charts, allowing the team to visualize the work scoped in the current sprint "burning down" as they are being completed. Toward the end of the sprint, the development team demos completed features to various stakeholders. With GitLab, this process is made simple using Review Apps so that even code not yet released to production, but in various testing, staging or UAT environments can be demoed. Review Apps and CI/CD features are integrated with the merge request itself. These same tools are useful for Developers and QA roles to maintain software quality, whether through automated testing with CI/CD, or manual testing in a Review App environment. %hr.divider .row.links .col-xs-1.col-md-1 .col-xs-11.col-md-6 %h2 Help and More Information %ul %li Please see = link_to "/get-help/" do Get help for GitLab if you have questions %li View a guide to setting up %a{ href: "https://youtu.be/VR2r1TJCDew" } agile teams with GitLab %li How to do %a{ href: "https://youtu.be/PmFFlTH2DQk" } SAFe (Scaled Agile Framework) with GitLab %li How %a{ href: "https://youtu.be/CiolDtBIOA0" } Issue Boards work with GitLab %li Configurable %a{ href: "https://youtu.be/m5UTNCSqaDk" } Issue Boards %li How to use GitLab for %a{ href: "https://about.gitlab.com/blog/2018/03/05/gitlab-for-agile-software-development/" } Agile %li 4 Ways to use Issue %a{ href: "https://about.gitlab.com/blog/2018/08/02/4-ways-to-use-gitlab-issue-boards/" } Boards .hidden-xs.hidden-sm.col-md-4 = image_tag "/images/home/gitlabagilelogo.svg", class: "gitlab-arch hidden-xs", alt: "GitLab Agile", style: "margin-top: 40px;"