[{"data":1,"prerenderedAt":1262},["ShallowReactive",2],{"/blog/gitlab-for-agile-software-development":3,"navigation-en-us":462,"banner-en-us":890,"footer-en-us":900,"blog-post-authors-en-us-Victor Wu|Amanda Rueda":1145,"blog-related-posts-en-us-gitlab-for-agile-software-development":1172,"blog-promotions-en-us":1198,"next-steps-en-us":1252},{"id":4,"title":5,"authors":6,"body":9,"category":438,"date":439,"description":440,"extension":441,"externalUrl":442,"faq":442,"featured":443,"heroImage":444,"meta":445,"navigation":446,"path":447,"seo":448,"slug":452,"stem":453,"tags":454,"template":459,"updatedDate":460,"__hash__":461},"blogPosts/en-us/blog/gitlab-for-agile-software-development.md","How to use GitLab for Agile software development",[7,8],"Victor Wu","Amanda Rueda",{"type":10,"value":11,"toc":418},"minimark",[12,23,32,40,45,50,122,126,130,138,145,148,152,159,165,168,172,180,186,195,199,207,213,217,225,233,237,245,254,268,272,304,310,319,323,332,338,346,350,358,373,376,382,385,400,404,407],[13,14,15,16,22],"p",{},"Ever wondered if GitLab supports ",[17,18,21],"a",{"href":19,"rel":20},"https://about.gitlab.com/solutions/agile-delivery/",[],"Agile methodology","? If you're considering using GitLab it might not be obvious how the DevSecOps platform's features correspond with Agile artifacts, so we've broken it down for you.",[13,24,25,26,31],{},"Agile is one of the most important and transformative methodologies introduced to the software engineering discipline in recent decades. While not everyone can agree on the detailed terminology of Agile concepts, it has nonetheless made a significant positive impact on software development teams efficiently creating customer-centric products through ",[17,27,30],{"href":28,"rel":29},"https://about.gitlab.com/topics/agile-delivery/",[],"Agile software development"," and delivery processes.",[13,33,34,35,39],{},"GitLab is designed to be flexible enough to adapt to your software development methodology, whether Agile or influenced by it. In this post, we'll show a simple mapping of Agile artifacts to GitLab features, and explain how customers have successfully run high-performing ",[17,36,38],{"href":19,"rel":37},[],"Agile software delivery teams"," with GitLab.",[41,42,44],"h2",{"id":43},"mapping-agile-artifacts-to-gitlab-features","Mapping Agile artifacts to GitLab features",[46,47,49],"h3",{"id":48},"agile-artifact-gitlab-feature","Agile artifact → GitLab feature",[51,52,53,62,70,78,86,94,102,108,114],"ul",{},[54,55,56,57],"li",{},"User story –> ",[17,58,61],{"href":59,"rel":60},"https://docs.gitlab.com/user/project/issues/",[],"Issues",[54,63,64,65],{},"Task –> ",[17,66,69],{"href":67,"rel":68},"https://docs.gitlab.com/user/tasks/",[],"Tasks",[54,71,72,73],{},"Epic –> ",[17,74,77],{"href":75,"rel":76},"https://docs.gitlab.com/user/group/epics/",[],"Epics",[54,79,80,81],{},"Points and estimation –> ",[17,82,85],{"href":83,"rel":84},"https://docs.gitlab.com/user/project/issues/issue_weight/",[],"Issue weight",[54,87,88,89],{},"Product backlog –> ",[17,90,93],{"href":91,"rel":92},"https://docs.gitlab.com/user/project/issue_board/",[],"Issue boards",[54,95,96,97],{},"Sprint/iteration –> ",[17,98,101],{"href":99,"rel":100},"https://docs.gitlab.com/user/group/iterations/",[],"Iterations",[54,103,104,105],{},"Agile board –> ",[17,106,93],{"href":91,"rel":107},[],[54,109,110,111],{},"Team workload –> ",[17,112,93],{"href":91,"rel":113},[],[54,115,116,117],{},"Burndown chart –> ",[17,118,121],{"href":119,"rel":120},"https://docs.gitlab.com/user/project/milestones/burndown_and_burnup_charts/",[],"Burndown charts",[41,123,125],{"id":124},"an-agile-iteration-with-gitlab","An Agile iteration with GitLab",[46,127,129],{"id":128},"user-stories-gitlab-issues","User stories → GitLab Issues",[13,131,132,133,137],{},"In Agile software development methodology, you often start with a user story that captures a single feature to deliver business value for users. In GitLab, an ",[17,134,136],{"href":59,"rel":135},[],"issue"," serves this purpose with ease. GitLab Issues are essential for Agile teams, providing an effective method to manage tasks and projects. Software developers can create, assign, and track issues, ensuring clear accountability and progress visibility. Issues come with robust metadata such as assignee, iteration, weight, and labels, which enhances task prioritization and workflow management throughout the software development process. Additionally, team collaboration on issues is streamlined with discussion threads, attachments, and real-time updates, enabling effective communication and teamwork.",[13,139,140],{},[141,142],"img",{"alt":143,"src":144},"screenshot of a GitLab Issue","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097468/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097468371.png",[13,146,147],{},"The GitLab Issue has a title and a description area in the middle, providing a space to document any details, such as the business value and relevant personas in a user story. The sidebar at the right provides integration with other Agile-compatible features like the epic parent that the issue belongs to, the iteration in which the issue is to be worked on, and the weight of the issue, reflecting the estimated effort.",[46,149,151],{"id":150},"task-tasks","Task → Tasks",[13,153,154,155,158],{},"Often, a user story is further separated into individual tasks. GitLab ",[17,156,69],{"href":67,"rel":157},[]," streamline project management by allowing Agile teams to break down user stories into discrete pieces of work. This feature supports the Agile framework by enabling software developers to create, assign, and track tasks within their projects. By integrating task management directly into GitLab, teams can maintain a cohesive workflow, ensuring all software development project activities are easily tracked and managed.",[13,160,161],{},[141,162],{"alt":163,"src":164},"screenshot showing precise task management and project tracking using GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097468372.png",[13,166,167],{},"Enhance user value by enabling precise task management and project tracking using GitLab. Tasks are equipped with the same metadata as issues, including assignee, iteration, weight, labels, time tracking, and collaboration features. This comprehensive feature set allows Agile teams and project managers to manage workloads effectively, prioritize tasks, and ensure seamless collaboration among software developers.",[46,169,171],{"id":170},"epics-gitlab-epics","Epics → GitLab Epics",[13,173,174,175,179],{},"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 ",[17,176,178],{"href":75,"rel":177},[],"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.",[13,181,182],{},[141,183],{"alt":184,"src":185},"screenshot of nested GitLab Epics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097468374.png",[13,187,188,189,194],{},"GitLab Epics allows Agile teams to organize and manage large projects efficiently by nesting epics up to nine layers deep. This hierarchical structure provides a clear view of the project's roadmap, helping software developers and project managers break down complex initiatives into manageable components. By utilizing child and ",[17,190,193],{"href":191,"rel":192},"https://docs.gitlab.com/user/group/epics/linked_epics/",[],"linked epics",", teams can better track progress, dependencies, and project milestones, enhancing collaboration and ensuring cohesive agile delivery.",[46,196,198],{"id":197},"product-backlog-gitlab-issue-boards","Product backlog → GitLab Issue Boards",[13,200,201,202,206],{},"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, an ",[17,203,205],{"href":91,"rel":204},[],"issue board"," organized with iterations as lists offers a drag-and-drop workflow experience that allows you to effortlessly prioritize your backlog and assign stories to an upcoming sprint.",[13,208,209],{},[141,210],{"alt":211,"src":212},"Gif of GitLab Issue Board","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/WIP_limit_aHR0cHM6_1750097468376.gif",[46,214,216],{"id":215},"sprints-gitlab-iterations","Sprints → GitLab iterations",[13,218,219,220,224],{},"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 the work that is in scope for the upcoming sprint. GitLab's ",[17,221,223],{"href":99,"rel":222},[],"iterations"," feature supports this: Assign iterations a start date and a due date to capture the time period of the iteration. The team then puts issues into the sprint by assigning them to that particular iteration.",[13,226,227,228,232],{},"By using iterations, you leverage GitLab’s enhanced capabilities for Agile project management, providing better visibility and control over your ",[17,229,231],{"href":230},"/blog/ditch-your-legacy-planning-tool-get-agile-with-gitlab/","Agile planning and delivery",".",[46,234,236],{"id":235},"points-and-estimation-gitlab-issue-weight","Points and estimation → GitLab issue weight",[13,238,239,240,244],{},"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 ",[17,241,243],{"href":83,"rel":242},[],"weight"," attribute, which you would use to indicate the estimated effort.",[13,246,247,248,253],{},"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 ",[17,249,252],{"href":250,"rel":251},"https://docs.gitlab.com/user/project/merge_requests/",[],"merge request description",", as the merge request is often the place where technical collaboration happens.",[13,255,256,257,262,263,267],{},"During the sprint (GitLab iteration), software development team members pick up user stories to work on, one by one. In GitLab, issues have assignees. So you would ",[17,258,261],{"href":259,"rel":260},"https://docs.gitlab.com/user/project/issues/multiple_assignees_for_issues/",[],"assign"," yourself to an issue to reflect that you are now working on it. We'd recommend that you ",[17,264,266],{"href":59,"rel":265},[],"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.",[46,269,271],{"id":270},"agile-board-gitlab-issue-boards","Agile board → GitLab Issue Boards",[13,273,274,275,279,280,279,283,279,286,279,289,292,293,297,298,303],{},"Throughout the sprint, issues move through various stages, such as ",[276,277,278],"code",{},"Ready for dev",", ",[276,281,282],{},"In dev",[276,284,285],{},"In QA",[276,287,288],{},"In review",[276,290,291],{},"Done",", depending on the workflow in your particular organization. Typically these are columns in an Agile board. In GitLab, ",[17,294,296],{"href":91,"rel":295},[],"issue boards"," allow you to define your stages and enable you to move issues through them. The team can ",[17,299,302],{"href":300,"rel":301},"https://docs.gitlab.com/user/project/issue_board/#board-with-configuration",[],"configure the board"," with respect to the iteration and other relevant attributes. During daily stand-ups, the team looks at the board together, to see the status of the sprint from a workflow perspective.",[13,305,306],{},[141,307],{"alt":308,"src":309},"screenshot of GitLab Issue Board","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097468378.png",[13,311,312,313,315,316,232],{},"The GitLab Issue Board also pulls in issues dynamically, similar to the GitLab issue list. But it allows for more flexible workflows. You can set up individual lists in the board, to reflect Agile board stages. Your team can then control and track user stories as they move from for example, ",[276,314,278],{},", all the way to ",[276,317,318],{},"Released to production",[46,320,322],{"id":321},"team-workload-gitlab-issue-boards","Team workload → GitLab Issue Boards",[13,324,325,326,331],{},"Agile teams can optimize their workflows by creating issue boards with lists scoped to assignees in GitLab. This feature allows you to visualize the distribution of tasks among team members, enhancing Agile delivery. To set it up, navigate to your project or group, create a new board in the \"Boards\" section, and ",[17,327,330],{"href":328,"rel":329},"https://docs.gitlab.com/user/project/issue_board/#create-a-new-list",[],"add lists"," for each assignee. Assign issues to team members, and they will automatically appear in the corresponding lists. This dynamic view empowers balanced workloads and effective task management.",[13,333,334],{},[141,335],{"alt":336,"src":337},"Screenshot of organized GitLab Issue Board","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097468380.png",[13,339,340,341,345],{},"Organize an issue board by assignee or by squad using ",[342,343,344],"span",{},"scoped labels",". GitLab’s Issue Board is incredibly diverse and supports workflows across the software development lifecycle.",[46,347,349],{"id":348},"burndown-charts-gitlab-burndown-charts","Burndown charts → GitLab Burndown Charts",[13,351,352,353,357],{},"The development team wants to know if they are on track in real time, and mitigate risks as they arise. GitLab provides ",[17,354,356],{"href":119,"rel":355},[],"burndown charts",", allowing the team to visualize the work scoped in the current sprint \"burning down\" as they are being completed.",[13,359,360,361,366,367,372],{},"Toward the end of the sprint, the development team demos completed features to various stakeholders. With GitLab, this process is made simple using ",[17,362,365],{"href":363,"rel":364},"https://docs.gitlab.com/ci/review_apps/",[],"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 ",[17,368,371],{"href":369,"rel":370},"https://docs.gitlab.com/ci/",[],"CI/CD features"," are integrated with the merge request itself.",[13,374,375],{},"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.",[13,377,378],{},[141,379],{"alt":380,"src":381},"Screenshot of GitLab Burndown Chart","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097468381.png",[13,383,384],{},"The GitLab Burndown Chart allows a team to track scoped work \"burning down,\" as they are being completed in a sprint. This allows you to react to risks sooner and adapt accordingly, for example, informing your business stakeholders that certain features are anticipated to be delayed to a future sprint.",[13,386,387,388,393,394,399],{},"Team retrospectives at the end of the sprint can be documented in GitLab’s ",[17,389,392],{"href":390,"rel":391},"https://docs.gitlab.com/user/project/wiki/",[],"wiki",", so that lessons learned and action items are tracked over time. During the actual retrospective, the team can look at the ",[17,395,398],{"href":396,"rel":397},"https://docs.gitlab.com/user/group/iterations/#iteration-report",[],"iteration report",", which displays the burndown chart and other statistics of the completed sprint.",[41,401,403],{"id":402},"start-your-agile-journey-with-gitlab","Start your Agile journey with GitLab",[13,405,406],{},"Ready to elevate your Agile project management? GitLab offers a comprehensive suite of features tailored to Agile teams, software developers, and project managers, ensuring seamless collaboration and efficient workflows. Explore our pricing options, start a free trial and discover how GitLab can transform your Agile delivery processes.",[408,409,410],"blockquote",{},[13,411,412,417],{},[17,413,416],{"href":414,"rel":415},"https://about.gitlab.com/pricing/",[],"Learn more about GitLab Agile planning"," and get started on your journey today!",{"title":419,"searchDepth":420,"depth":420,"links":421},"",2,[422,426,437],{"id":43,"depth":420,"text":44,"children":423},[424],{"id":48,"depth":425,"text":49},3,{"id":124,"depth":420,"text":125,"children":427},[428,429,430,431,432,433,434,435,436],{"id":128,"depth":425,"text":129},{"id":150,"depth":425,"text":151},{"id":170,"depth":425,"text":171},{"id":197,"depth":425,"text":198},{"id":215,"depth":425,"text":216},{"id":235,"depth":425,"text":236},{"id":270,"depth":425,"text":271},{"id":321,"depth":425,"text":322},{"id":348,"depth":425,"text":349},{"id":402,"depth":420,"text":403},"agile-planning","2018-03-05","How Agile artifacts map to GitLab features and how an Agile iteration looks in GitLab.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097459/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2821%29_2pdp2MNB7SoP4MhhiI1WIa_1750097459157.png",{},true,"/en-us/blog/gitlab-for-agile-software-development",{"title":5,"description":440,"ogTitle":5,"ogDescription":440,"noIndex":443,"ogImage":444,"ogUrl":449,"ogSiteName":450,"ogType":451,"canonicalUrls":449},"https://about.gitlab.com/blog/gitlab-for-agile-software-development","https://about.gitlab.com","article","gitlab-for-agile-software-development","en-us/blog/gitlab-for-agile-software-development",[455,456,457,458],"agile","features","workflow","collaboration","BlogPost","2024-07-09","Vkdz3_gTVcDpuO8AhqHwWDr5a2GdS18QpwHsmV4v7Rc",{"logo":463,"freeTrial":468,"sales":473,"login":478,"items":483,"search":810,"minimal":841,"duo":860,"switchNav":869,"pricingDeployment":880},{"config":464},{"href":465,"dataGaName":466,"dataGaLocation":467},"/","gitlab logo","header",{"text":469,"config":470},"Get free trial",{"href":471,"dataGaName":472,"dataGaLocation":467},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":474,"config":475},"Request a demo",{"href":476,"dataGaName":477,"dataGaLocation":467},"/sales/?contact-topic=request-demo","sales",{"text":479,"config":480},"Sign in",{"href":481,"dataGaName":482,"dataGaLocation":467},"https://gitlab.com/users/sign_in/","sign in",[484,513,613,618,732,788],{"text":485,"config":486,"menu":488},"Platform",{"dataNavLevelOne":487},"platform",{"type":489,"columns":490},"cards",[491,497,505],{"title":485,"description":492,"link":493},"The intelligent orchestration platform for DevSecOps",{"text":494,"config":495},"Explore our Platform",{"href":496,"dataGaName":487,"dataGaLocation":467},"/platform/",{"title":498,"description":499,"link":500},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":501,"config":502},"Meet GitLab Duo",{"href":503,"dataGaName":504,"dataGaLocation":467},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":506,"description":507,"link":508},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":509,"config":510},"Learn more",{"href":511,"dataGaName":512,"dataGaLocation":467},"/why-gitlab/","why gitlab",{"text":514,"left":446,"config":515,"menu":517},"Product",{"dataNavLevelOne":516},"solutions",{"type":518,"link":519,"columns":523,"feature":592},"lists",{"text":520,"config":521},"View all Solutions",{"href":522,"dataGaName":516,"dataGaLocation":467},"/solutions/",[524,548,571],{"title":525,"description":526,"link":527,"items":532},"Automation","CI/CD and automation to accelerate deployment",{"config":528},{"icon":529,"href":530,"dataGaName":531,"dataGaLocation":467},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[533,537,540,544],{"text":534,"config":535},"CI/CD",{"href":536,"dataGaLocation":467,"dataGaName":534},"/solutions/continuous-integration/",{"text":498,"config":538},{"href":503,"dataGaLocation":467,"dataGaName":539},"gitlab duo agent platform - product menu",{"text":541,"config":542},"Source Code Management",{"href":543,"dataGaLocation":467,"dataGaName":541},"/solutions/source-code-management/",{"text":545,"config":546},"Automated Software Delivery",{"href":530,"dataGaLocation":467,"dataGaName":547},"Automated software delivery",{"title":549,"description":550,"link":551,"items":556},"Security","Deliver code faster without compromising security",{"config":552},{"href":553,"dataGaName":554,"dataGaLocation":467,"icon":555},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[557,561,566],{"text":558,"config":559},"Application Security Testing",{"href":553,"dataGaName":560,"dataGaLocation":467},"Application security testing",{"text":562,"config":563},"Software Supply Chain Security",{"href":564,"dataGaLocation":467,"dataGaName":565},"/solutions/supply-chain/","Software supply chain security",{"text":567,"config":568},"Software Compliance",{"href":569,"dataGaName":570,"dataGaLocation":467},"/solutions/software-compliance/","software compliance",{"title":572,"link":573,"items":578},"Measurement",{"config":574},{"icon":575,"href":576,"dataGaName":577,"dataGaLocation":467},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[579,583,587],{"text":580,"config":581},"Visibility & Measurement",{"href":576,"dataGaLocation":467,"dataGaName":582},"Visibility and Measurement",{"text":584,"config":585},"Value Stream Management",{"href":586,"dataGaLocation":467,"dataGaName":584},"/solutions/value-stream-management/",{"text":588,"config":589},"Analytics & Insights",{"href":590,"dataGaLocation":467,"dataGaName":591},"/solutions/analytics-and-insights/","Analytics and insights",{"title":593,"type":518,"items":594},"GitLab for",[595,601,607],{"text":596,"config":597},"Enterprise",{"icon":598,"href":599,"dataGaLocation":467,"dataGaName":600},"Building","/enterprise/","enterprise",{"text":602,"config":603},"Small Business",{"icon":604,"href":605,"dataGaLocation":467,"dataGaName":606},"Work","/small-business/","small business",{"text":608,"config":609},"Public Sector",{"icon":610,"href":611,"dataGaLocation":467,"dataGaName":612},"Organization","/solutions/public-sector/","public sector",{"text":614,"config":615},"Pricing",{"href":616,"dataGaName":617,"dataGaLocation":467,"dataNavLevelOne":617},"/pricing/","pricing",{"text":619,"config":620,"menu":622},"Resources",{"dataNavLevelOne":621},"resources",{"type":518,"link":623,"columns":627,"feature":721},{"text":624,"config":625},"View all resources",{"href":626,"dataGaName":621,"dataGaLocation":467},"/resources/",[628,661,688],{"title":629,"items":630},"Getting started",[631,636,641,646,651,656],{"text":632,"config":633},"Install",{"href":634,"dataGaName":635,"dataGaLocation":467},"/install/","install",{"text":637,"config":638},"Quick start guides",{"href":639,"dataGaName":640,"dataGaLocation":467},"/get-started/","quick setup checklists",{"text":642,"config":643},"Learn",{"href":644,"dataGaLocation":467,"dataGaName":645},"https://university.gitlab.com/","learn",{"text":647,"config":648},"Product documentation",{"href":649,"dataGaName":650,"dataGaLocation":467},"https://docs.gitlab.com/","product documentation",{"text":652,"config":653},"Best practice videos",{"href":654,"dataGaName":655,"dataGaLocation":467},"/getting-started-videos/","best practice videos",{"text":657,"config":658},"Integrations",{"href":659,"dataGaName":660,"dataGaLocation":467},"/integrations/","integrations",{"title":662,"items":663},"Discover",[664,669,674,679,683],{"text":665,"config":666},"Customer success stories",{"href":667,"dataGaName":668,"dataGaLocation":467},"/customers/","customer success stories",{"text":670,"config":671},"Blog",{"href":672,"dataGaName":673,"dataGaLocation":467},"/blog/","blog",{"text":675,"config":676},"Demo Hub",{"href":677,"dataGaName":678,"dataGaLocation":467},"/demo-hub/","demo hub",{"text":680,"config":681},"The Source",{"href":682,"dataGaName":673,"dataGaLocation":467},"/the-source/",{"text":684,"config":685},"Remote",{"href":686,"dataGaName":687,"dataGaLocation":467},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":689,"items":690},"Connect",[691,696,701,706,711,716],{"text":692,"config":693},"GitLab Services",{"href":694,"dataGaName":695,"dataGaLocation":467},"/services/","services",{"text":697,"config":698},"Contribute",{"href":699,"dataGaName":700,"dataGaLocation":467},"https://contributors.gitlab.com","contribute",{"text":702,"config":703},"Community",{"href":704,"dataGaName":705,"dataGaLocation":467},"/community/","community",{"text":707,"config":708},"Forum",{"href":709,"dataGaName":710,"dataGaLocation":467},"https://forum.gitlab.com/","forum",{"text":712,"config":713},"Events",{"href":714,"dataGaName":715,"dataGaLocation":467},"/events/","events",{"text":717,"config":718},"Partners",{"href":719,"dataGaName":720,"dataGaLocation":467},"/partners/","partners",{"config":722,"title":725,"text":726,"link":727},{"background":723,"textColor":724},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":728,"config":729},"Read the latest",{"href":730,"dataGaName":731,"dataGaLocation":467},"/whats-new/","whats new",{"text":733,"config":734,"menu":736},"Company",{"dataNavLevelOne":735},"company",{"type":518,"columns":737},[738],{"items":739},[740,745,751,753,758,763,768,773,778,783],{"text":741,"config":742},"About",{"href":743,"dataGaName":744,"dataGaLocation":467},"/company/","about",{"text":746,"config":747,"footerGa":750},"Jobs",{"href":748,"dataGaName":749,"dataGaLocation":467},"/jobs/","jobs",{"dataGaName":749},{"text":712,"config":752},{"href":714,"dataGaName":715,"dataGaLocation":467},{"text":754,"config":755},"Leadership",{"href":756,"dataGaName":757,"dataGaLocation":467},"/company/team/e-group/","leadership",{"text":759,"config":760},"Handbook",{"href":761,"dataGaName":762,"dataGaLocation":467},"https://handbook.gitlab.com/","handbook",{"text":764,"config":765},"Investor relations",{"href":766,"dataGaName":767,"dataGaLocation":467},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":769,"config":770},"Trust Center",{"href":771,"dataGaName":772,"dataGaLocation":467},"/security/","trust center",{"text":774,"config":775},"AI Transparency Center",{"href":776,"dataGaName":777,"dataGaLocation":467},"/ai-transparency-center/","ai transparency center",{"text":779,"config":780},"Newsletter",{"href":781,"dataGaName":782,"dataGaLocation":467},"/company/contact/#contact-forms","newsletter",{"text":784,"config":785},"Press",{"href":786,"dataGaName":787,"dataGaLocation":467},"/press/","press",{"text":789,"config":790,"menu":791},"Contact us",{"dataNavLevelOne":735},{"type":518,"columns":792},[793],{"items":794},[795,800,805],{"text":796,"config":797},"Talk to sales",{"href":798,"dataGaName":799,"dataGaLocation":467},"/sales/","talk to sales",{"text":801,"config":802},"Support portal",{"href":803,"dataGaName":804,"dataGaLocation":467},"https://support.gitlab.com/hc/en-us","support portal",{"text":806,"config":807},"Customer portal",{"href":808,"dataGaName":809,"dataGaLocation":467},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":811,"login":812,"suggestions":819},"Close",{"text":813,"link":814},"To search repositories and projects, login to",{"text":815,"config":816},"gitlab.com",{"href":481,"dataGaName":817,"dataGaLocation":818},"search login","search",{"text":820,"default":821},"Suggestions",[822,824,828,830,834,838],{"text":498,"config":823},{"href":503,"dataGaName":498,"dataGaLocation":818},{"text":825,"config":826},"Code Suggestions (AI)",{"href":827,"dataGaName":825,"dataGaLocation":818},"/solutions/code-suggestions/",{"text":534,"config":829},{"href":536,"dataGaName":534,"dataGaLocation":818},{"text":831,"config":832},"GitLab on AWS",{"href":833,"dataGaName":831,"dataGaLocation":818},"/partners/technology-partners/aws/",{"text":835,"config":836},"GitLab on Google Cloud",{"href":837,"dataGaName":835,"dataGaLocation":818},"/partners/technology-partners/google-cloud-platform/",{"text":839,"config":840},"Why GitLab?",{"href":511,"dataGaName":839,"dataGaLocation":818},{"freeTrial":842,"mobileIcon":847,"desktopIcon":852,"secondaryButton":855},{"text":843,"config":844},"Start free trial",{"href":845,"dataGaName":472,"dataGaLocation":846},"https://gitlab.com/-/trials/new/","nav",{"altText":848,"config":849},"Gitlab Icon",{"src":850,"dataGaName":851,"dataGaLocation":846},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":848,"config":853},{"src":854,"dataGaName":851,"dataGaLocation":846},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":856,"config":857},"Get Started",{"href":858,"dataGaName":859,"dataGaLocation":846},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":861,"mobileIcon":865,"desktopIcon":867},{"text":862,"config":863},"Learn more about GitLab Duo",{"href":503,"dataGaName":864,"dataGaLocation":846},"gitlab duo",{"altText":848,"config":866},{"src":850,"dataGaName":851,"dataGaLocation":846},{"altText":848,"config":868},{"src":854,"dataGaName":851,"dataGaLocation":846},{"button":870,"mobileIcon":875,"desktopIcon":877},{"text":871,"config":872},"/switch",{"href":873,"dataGaName":874,"dataGaLocation":846},"#contact","switch",{"altText":848,"config":876},{"src":850,"dataGaName":851,"dataGaLocation":846},{"altText":848,"config":878},{"src":879,"dataGaName":851,"dataGaLocation":846},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":881,"mobileIcon":886,"desktopIcon":888},{"text":882,"config":883},"Back to pricing",{"href":616,"dataGaName":884,"dataGaLocation":846,"icon":885},"back to pricing","GoBack",{"altText":848,"config":887},{"src":850,"dataGaName":851,"dataGaLocation":846},{"altText":848,"config":889},{"src":854,"dataGaName":851,"dataGaLocation":846},{"title":891,"titleMobile":892,"button":893,"config":898},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":509,"config":894},{"href":895,"dataGaName":896,"dataGaLocation":897},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":899,"disabled":443},"release",{"data":901},{"text":902,"source":903,"edit":909,"contribute":914,"config":919,"items":924,"minimal":1134},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":904,"config":905},"View page source",{"href":906,"dataGaName":907,"dataGaLocation":908},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":910,"config":911},"Edit this page",{"href":912,"dataGaName":913,"dataGaLocation":908},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":915,"config":916},"Please contribute",{"href":917,"dataGaName":918,"dataGaLocation":908},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":920,"facebook":921,"youtube":922,"linkedin":923},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[925,972,1026,1070,1102],{"title":614,"links":926,"subMenu":941},[927,931,936],{"text":928,"config":929},"View plans",{"href":616,"dataGaName":930,"dataGaLocation":908},"view plans",{"text":932,"config":933},"Why Premium?",{"href":934,"dataGaName":935,"dataGaLocation":908},"/pricing/premium/","why premium",{"text":937,"config":938},"Why Ultimate?",{"href":939,"dataGaName":940,"dataGaLocation":908},"/pricing/ultimate/","why ultimate",[942],{"title":943,"links":944},"Contact Us",[945,948,950,952,957,962,967],{"text":946,"config":947},"Contact sales",{"href":798,"dataGaName":477,"dataGaLocation":908},{"text":801,"config":949},{"href":803,"dataGaName":804,"dataGaLocation":908},{"text":806,"config":951},{"href":808,"dataGaName":809,"dataGaLocation":908},{"text":953,"config":954},"Status",{"href":955,"dataGaName":956,"dataGaLocation":908},"https://status.gitlab.com/","status",{"text":958,"config":959},"Terms of use",{"href":960,"dataGaName":961,"dataGaLocation":908},"/terms/","terms of use",{"text":963,"config":964},"Privacy statement",{"href":965,"dataGaName":966,"dataGaLocation":908},"/privacy/","privacy statement",{"text":968,"config":969},"Cookie preferences",{"dataGaName":970,"dataGaLocation":908,"id":971,"isOneTrustButton":446},"cookie preferences","ot-sdk-btn",{"title":514,"links":973,"subMenu":982},[974,978],{"text":975,"config":976},"DevSecOps platform",{"href":496,"dataGaName":977,"dataGaLocation":908},"devsecops platform",{"text":979,"config":980},"AI-Assisted Development",{"href":503,"dataGaName":981,"dataGaLocation":908},"ai-assisted development",[983],{"title":984,"links":985},"Topics",[986,991,996,1001,1006,1011,1016,1021],{"text":987,"config":988},"CICD",{"href":989,"dataGaName":990,"dataGaLocation":908},"/topics/ci-cd/","cicd",{"text":992,"config":993},"GitOps",{"href":994,"dataGaName":995,"dataGaLocation":908},"/topics/gitops/","gitops",{"text":997,"config":998},"DevOps",{"href":999,"dataGaName":1000,"dataGaLocation":908},"/topics/devops/","devops",{"text":1002,"config":1003},"Version Control",{"href":1004,"dataGaName":1005,"dataGaLocation":908},"/topics/version-control/","version control",{"text":1007,"config":1008},"DevSecOps",{"href":1009,"dataGaName":1010,"dataGaLocation":908},"/topics/devsecops/","devsecops",{"text":1012,"config":1013},"Cloud Native",{"href":1014,"dataGaName":1015,"dataGaLocation":908},"/topics/cloud-native/","cloud native",{"text":1017,"config":1018},"AI for Coding",{"href":1019,"dataGaName":1020,"dataGaLocation":908},"/topics/devops/ai-for-coding/","ai for coding",{"text":1022,"config":1023},"Agentic AI",{"href":1024,"dataGaName":1025,"dataGaLocation":908},"/topics/agentic-ai/","agentic ai",{"title":1027,"links":1028},"Solutions",[1029,1031,1033,1038,1042,1045,1049,1052,1054,1057,1060,1065],{"text":558,"config":1030},{"href":553,"dataGaName":558,"dataGaLocation":908},{"text":547,"config":1032},{"href":530,"dataGaName":531,"dataGaLocation":908},{"text":1034,"config":1035},"Agile development",{"href":1036,"dataGaName":1037,"dataGaLocation":908},"/solutions/agile-delivery/","agile delivery",{"text":1039,"config":1040},"SCM",{"href":543,"dataGaName":1041,"dataGaLocation":908},"source code management",{"text":987,"config":1043},{"href":536,"dataGaName":1044,"dataGaLocation":908},"continuous integration & delivery",{"text":1046,"config":1047},"Value stream management",{"href":586,"dataGaName":1048,"dataGaLocation":908},"value stream management",{"text":992,"config":1050},{"href":1051,"dataGaName":995,"dataGaLocation":908},"/solutions/gitops/",{"text":596,"config":1053},{"href":599,"dataGaName":600,"dataGaLocation":908},{"text":1055,"config":1056},"Small business",{"href":605,"dataGaName":606,"dataGaLocation":908},{"text":1058,"config":1059},"Public sector",{"href":611,"dataGaName":612,"dataGaLocation":908},{"text":1061,"config":1062},"Education",{"href":1063,"dataGaName":1064,"dataGaLocation":908},"/solutions/education/","education",{"text":1066,"config":1067},"Financial services",{"href":1068,"dataGaName":1069,"dataGaLocation":908},"/solutions/finance/","financial services",{"title":619,"links":1071},[1072,1074,1076,1078,1081,1083,1086,1088,1090,1092,1094,1096,1098,1100],{"text":632,"config":1073},{"href":634,"dataGaName":635,"dataGaLocation":908},{"text":637,"config":1075},{"href":639,"dataGaName":640,"dataGaLocation":908},{"text":642,"config":1077},{"href":644,"dataGaName":645,"dataGaLocation":908},{"text":647,"config":1079},{"href":649,"dataGaName":1080,"dataGaLocation":908},"docs",{"text":670,"config":1082},{"href":672,"dataGaName":673,"dataGaLocation":908},{"text":1084,"config":1085},"What's new",{"href":730,"dataGaName":731,"dataGaLocation":908},{"text":665,"config":1087},{"href":667,"dataGaName":668,"dataGaLocation":908},{"text":684,"config":1089},{"href":686,"dataGaName":687,"dataGaLocation":908},{"text":692,"config":1091},{"href":694,"dataGaName":695,"dataGaLocation":908},{"text":697,"config":1093},{"href":699,"dataGaName":700,"dataGaLocation":908},{"text":702,"config":1095},{"href":704,"dataGaName":705,"dataGaLocation":908},{"text":707,"config":1097},{"href":709,"dataGaName":710,"dataGaLocation":908},{"text":712,"config":1099},{"href":714,"dataGaName":715,"dataGaLocation":908},{"text":717,"config":1101},{"href":719,"dataGaName":720,"dataGaLocation":908},{"title":733,"links":1103},[1104,1106,1108,1110,1112,1114,1118,1123,1125,1127,1129],{"text":741,"config":1105},{"href":743,"dataGaName":735,"dataGaLocation":908},{"text":746,"config":1107},{"href":748,"dataGaName":749,"dataGaLocation":908},{"text":754,"config":1109},{"href":756,"dataGaName":757,"dataGaLocation":908},{"text":759,"config":1111},{"href":761,"dataGaName":762,"dataGaLocation":908},{"text":764,"config":1113},{"href":766,"dataGaName":767,"dataGaLocation":908},{"text":1115,"config":1116},"Sustainability",{"href":1117,"dataGaName":1115,"dataGaLocation":908},"/sustainability/",{"text":1119,"config":1120},"Diversity, inclusion and belonging (DIB)",{"href":1121,"dataGaName":1122,"dataGaLocation":908},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":769,"config":1124},{"href":771,"dataGaName":772,"dataGaLocation":908},{"text":779,"config":1126},{"href":781,"dataGaName":782,"dataGaLocation":908},{"text":784,"config":1128},{"href":786,"dataGaName":787,"dataGaLocation":908},{"text":1130,"config":1131},"Modern Slavery Transparency Statement",{"href":1132,"dataGaName":1133,"dataGaLocation":908},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1135},[1136,1139,1142],{"text":1137,"config":1138},"Terms",{"href":960,"dataGaName":961,"dataGaLocation":908},{"text":1140,"config":1141},"Cookies",{"dataGaName":970,"dataGaLocation":908,"id":971,"isOneTrustButton":446},{"text":1143,"config":1144},"Privacy",{"href":965,"dataGaName":966,"dataGaLocation":908},[1146,1160],{"id":1147,"title":7,"body":442,"config":1148,"content":1150,"description":442,"extension":1154,"meta":1155,"navigation":446,"path":1156,"seo":1157,"stem":1158,"__hash__":1159},"blogAuthors/en-us/blog/authors/victor-wu.yml",{"template":1149},"BlogAuthor",{"name":7,"config":1151},{"headshot":1152,"ctfId":1153},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","victorwu","yml",{},"/en-us/blog/authors/victor-wu",{},"en-us/blog/authors/victor-wu","_RaxCS0f7IbUMauxXuHjiPl8yHoiX4KN9SL3QR_TLuA",{"id":1161,"title":8,"body":442,"config":1162,"content":1163,"description":442,"extension":1154,"meta":1167,"navigation":446,"path":1168,"seo":1169,"stem":1170,"__hash__":1171},"blogAuthors/en-us/blog/authors/amanda-rueda.yml",{"template":1149},{"name":8,"config":1164},{"headshot":1165,"ctfId":1166},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660008/Blog/Author%20Headshots/amanda_rueda_headshot.png","73IHSOcUmhlsh9XDSEiyjs",{},"/en-us/blog/authors/amanda-rueda",{},"en-us/blog/authors/amanda-rueda","oWTvPkKdNmIvF6Spj5T_HWx1C29ptZ6HORAQ6XZRmGM",[1173,1181,1189],{"title":1174,"description":1175,"heroImage":1176,"category":438,"date":1177,"authors":1178,"slug":1180,"externalUrl":442},"Agile planning gets a boost from new features in GitLab 18.10","Work items list and saved views reduce context switching, keeping your software development team aligned and their workflows efficient.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773843921/rm35fx4gylrsu9alf2fx.png","2026-03-23",[1179],"Matthew Macfarlane","agile-planning-gets-a-boost-from-new-features-in-gitlab-18-10",{"title":1182,"description":1183,"heroImage":1184,"category":438,"date":1185,"authors":1186,"slug":1188,"externalUrl":442},"Ace your planning without the context-switching","Learn how GitLab Duo Planner Agent simplifies tasks and saves time by helping product and engineering managers focus on the work that matters most.\n\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098354/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_5XrohmuWBNuqL89BxVUzWm_1750098354056.png","2025-10-28",[1187,8],"Aathira Nair","ace-your-planning-without-the-context-switching",{"title":1190,"description":1191,"heroImage":1192,"category":438,"date":1193,"authors":1194,"slug":1197,"externalUrl":442},"Embedded views: The future of work tracking in GitLab","Learn how embedded views, powered by GitLab Query Language, help GitLab teams work more efficiently, make data-driven decisions, and maintain visibility across complex workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099072/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750099072322.png","2025-08-21",[1179,1195,1196],"Himanshu Kapoor","Alex Fracazo","embedded-views-the-future-of-work-tracking-in-gitlab",{"promotions":1199},[1200,1214,1226,1238],{"id":1201,"categories":1202,"header":1204,"text":1205,"button":1206,"image":1211},"ai-modernization",[1203],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1207,"config":1208},"Get your AI maturity score",{"href":1209,"dataGaName":1210,"dataGaLocation":673},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1212},{"src":1213},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1215,"categories":1216,"header":1218,"text":1205,"button":1219,"image":1223},"devops-modernization",[1217,1010],"product","Are you just managing tools or shipping innovation?",{"text":1220,"config":1221},"Get your DevOps maturity score",{"href":1222,"dataGaName":1210,"dataGaLocation":673},"/assessments/devops-modernization-assessment/",{"config":1224},{"src":1225},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1227,"categories":1228,"header":1230,"text":1205,"button":1231,"image":1235},"security-modernization",[1229],"security","Are you trading speed for security?",{"text":1232,"config":1233},"Get your security maturity score",{"href":1234,"dataGaName":1210,"dataGaLocation":673},"/assessments/security-modernization-assessment/",{"config":1236},{"src":1237},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1239,"paths":1240,"header":1243,"text":1244,"button":1245,"image":1250},"github-azure-migration",[1241,1242],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1246,"config":1247},"See how GitLab compares to GitHub",{"href":1248,"dataGaName":1249,"dataGaLocation":673},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1251},{"src":1225},{"header":1253,"blurb":1254,"button":1255,"secondaryButton":1260},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1256,"config":1257},"Get your free trial",{"href":1258,"dataGaName":472,"dataGaLocation":1259},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":946,"config":1261},{"href":798,"dataGaName":477,"dataGaLocation":1259},1786803750179]