[{"data":1,"prerenderedAt":959},["ShallowReactive",2],{"/blog/tech-debt":3,"navigation-en-us":176,"banner-en-us":603,"footer-en-us":613,"blog-post-authors-en-us-Sara Kassabian":856,"blog-related-posts-en-us-tech-debt":870,"blog-promotions-en-us":895,"next-steps-en-us":949},{"id":4,"title":5,"authors":6,"body":8,"category":154,"date":155,"description":156,"extension":157,"externalUrl":158,"faq":158,"featured":159,"heroImage":160,"meta":161,"navigation":162,"path":163,"seo":164,"slug":168,"stem":169,"tags":170,"template":174,"updatedDate":158,"__hash__":175},"blogPosts/en-us/blog/tech-debt.md","How to use DevOps to pay off your technical debt",[7],"Sara Kassabian",{"type":9,"value":10,"toc":147},"minimark",[11,27,30,33,36,39,42,45,50,53,56,59,67,70,73,81,84,87,90,93,96,100,108,112,133],[12,13,14,15,20,21,26],"p",{},"One of the primary resource constraints in the ",[16,17,19],"a",{"href":18},"/topics/devops/","DevOps"," world is technical debt. Technical debt is a metaphor created by Ward Cunningham that compares the build-up of cruft (deficiencies in the internal quality of software systems) to the accumulation of financial debt, where the effort it takes to add new features is the interest paid on the debt, writes ",[16,22,25],{"href":23,"rel":24},"https://martinfowler.com/bliki/TechnicalDebt.html",[],"Martin Fowler",".",[12,28,29],{},"It’s common for a busy developer to write code with known imperfections, but because the priority is to ship new features as quickly as possible, deliverables are often prioritized over correcting the inefficiencies in the process.",[12,31,32],{},"One of the major dilemmas with determining the value of spending precious time fixing cruft versus building new features is that the costs are not objectively measurable, says Fowler. Just like with paying off financial debt, the right call is largely circumstantial as opposed to absolute.",[12,34,35],{},"\"Given this, usually the best route is to do what we usually do with financial debts, pay the principal off gradually,\" writes Fowler.",[12,37,38],{},"By cleaning up some of the cruft as you work on the new features, you ensure that the most relevant code is tidier for future iterations. When it comes to crufty, but stable, code, you can leave it alone. This method is similar to paying the monthly balance on a low interest rate loan – the impact is minimal.",[12,40,41],{},"\"In contrast, areas of high activity need a zero-tolerance attitude to cruft, because the interest payments are cripplingly high,\" writes Fowler.",[12,43,44],{},"One way to start dealing with technical debt is to conduct a rough audit and triage your technical debt by \"interest rate\" – high interest rate cruft is addressed with the same priority as shipping new features, while medium-to-low interest rate cruft can be dealt with in a ratio that best suits your team’s situation, because dealing with your most urgent technical debt sooner rather than later will help you save resources in the long-term.",[46,47,49],"h2",{"id":48},"how-tech-debt-accumulates-in-your-workflow","How tech debt accumulates in your workflow",[12,51,52],{},"It’s not just code that contains cruft. A lot of the time, we have cruft that slows down our engineering processes. When it comes to investing time and money into updating DevOps processes, it seems there is never enough of either resource.",[12,54,55],{},"\"We don’t let our teams spend time on improving their process because we think it’s wasted effort,\" says Brendan O’Leary, senior developer evangelist at GitLab. \"But if you can spend a day fixing some things that make your workflow inefficient, and you save an hour a week from now until eternity, that’s a big difference.\"",[12,57,58],{},"Take for instance manual deployment versus the use of automated pipelines. We know that deploying manually takes an enormous amount of time, but the upfront cost of allocating time to building automated pipelines can seem daunting.",[12,60,61,62,66],{},"If your team is trapped in a time-consuming cycle of technical debt, take a peek at how Minnesota-based consulting firm, ",[16,63,65],{"href":64},"/customers/bi-worldwide/","BI Worldwide"," (BIW), was able to accelerate deployments by transitioning to GitLab. In the case study, the BIW Corporate Products Development Team explains how they were stuck in a rut of manual testing and manual deployments on their on-prem infrastructure. Their toolchains were complex and inefficient, which created a dense backlog.",[12,68,69],{},"\"It was entirely time-consuming to apply all of those code changes,\" said Adam Dehnel, product architect, BIW, in the case study. As a result, deployments were infrequent and slow as too many features were crammed into each release.",[12,71,72],{},"The first step to increase the speed of their deployments was to update and modernize their processes.",[12,74,75,76,80],{},"\"",[77,78,79],"span",{},"BIW"," had practices and tools in place at the time but were spending time on items that weren’t business differentiating features. They faced classic issues surrounding a lack of cross-team communication including inefficient mechanisms for intra-organization workflows and individualized toolsets.\"",[12,82,83],{},"First, BIW made the painful transition from CVS to Git. Next, the company aimed to automate the build, test, and deployment process and built a toolchain with tools such as GitHub, Jenkins, JIRA, and Confluence.",[12,85,86],{},"For BIW, this complex toolchain was buggy. One thing that was not mentioned in this specific use case, but still merits recognition, is the hidden cost of maintaining all of these different tools.",[12,88,89],{},"\"The argument to be made there is not only is it cost of using these various tools, but also that the more tools you have, there is the overhead cost of upgrading them, maintaining them, and integrating them,\" says Brendan. \"There’s a massive hidden cost behind the cost of doing business.\"",[12,91,92],{},"In the next iteration, BIW embraced the efficiency of an all-in-one tool by transitioning to GitLab.",[12,94,95],{},"BIW went from a pre-Git pace of shipping a release every nine to 12 months to deploying nearly ten times a day using GitLab Ultimate, no doubt putting a serious dent in the technical debt that followed their slower, laborious release cycle.",[46,97,99],{"id":98},"conserve-valuable-resources-and-pay-off-technical-debt-with-devops","Conserve valuable resources and pay off technical debt with DevOps",[12,101,102,103,107],{},"In a previous blog post, we examined ",[16,104,106],{"href":105},"/blog/devops-stakeholder-buyin/","communication strategies to get non-technical stakeholders to buy-in to DevOps",". DevOps can help you deploy faster and more frequently, giving your business an edge over the competition, but it is also a strategy for paying off your technical debt. By first taking into account inefficiencies in your code and engineering processes, you can make a rough triage of your team's technical debt. This type of audit is the first step to identifying cruft you can trim to help speed up your cycle time, clear your backlog, and modernize your engineering processes.",[46,109,111],{"id":110},"read-more","Read more",[113,114,115,121,127],"ul",{},[116,117,118],"li",{},[16,119,120],{"href":105},"Need DevOps buy-in? Here's how to convince stakeholders",[116,122,123],{},[16,124,126],{"href":125},"/blog/cloud-native-storage-beginners/","A guide to cloud native storage for beginners",[116,128,129],{},[16,130,132],{"href":131},"/blog/boring-solutions-faster-iteration/","Want to iterate faster? Choose boring solutions",[12,134,135,136,141,142],{},"Cover Photo by ",[16,137,140],{"href":138,"rel":139},"https://unsplash.com/@sk3tch?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Vadim L"," on ",[16,143,146],{"href":144,"rel":145},"https://unsplash.com/s/photos/plants?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Unsplash",{"title":148,"searchDepth":149,"depth":149,"links":150},"",2,[151,152,153],{"id":48,"depth":149,"text":49},{"id":98,"depth":149,"text":99},{"id":110,"depth":149,"text":111},"insights","2020-10-05","Technical debt is a universal problem with an equally universal solution – DevOps. Here's how DevOps can reduce the tech debt burden and help you deploy faster and more frequently.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681643/Blog/Hero%20Images/greenery.jpg",{},true,"/en-us/blog/tech-debt",{"title":5,"description":156,"ogTitle":5,"ogDescription":156,"noIndex":159,"ogImage":160,"ogUrl":165,"ogSiteName":166,"ogType":167,"canonicalUrls":165},"https://about.gitlab.com/blog/tech-debt","https://about.gitlab.com","article","tech-debt","en-us/blog/tech-debt",[171,172,19,173],"inside GitLab","agile","CI/CD","BlogPost","Ws-wIL4o80oaREZupuGP-4eV6P1UwnSlSHAS6sZc9no",{"logo":177,"freeTrial":182,"sales":187,"login":192,"items":197,"search":523,"minimal":554,"duo":573,"switchNav":582,"pricingDeployment":593},{"config":178},{"href":179,"dataGaName":180,"dataGaLocation":181},"/","gitlab logo","header",{"text":183,"config":184},"Get free trial",{"href":185,"dataGaName":186,"dataGaLocation":181},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":188,"config":189},"Request a demo",{"href":190,"dataGaName":191,"dataGaLocation":181},"/sales/?contact-topic=request-demo","sales",{"text":193,"config":194},"Sign in",{"href":195,"dataGaName":196,"dataGaLocation":181},"https://gitlab.com/users/sign_in/","sign in",[198,227,326,331,445,501],{"text":199,"config":200,"menu":202},"Platform",{"dataNavLevelOne":201},"platform",{"type":203,"columns":204},"cards",[205,211,219],{"title":199,"description":206,"link":207},"The intelligent orchestration platform for DevSecOps",{"text":208,"config":209},"Explore our Platform",{"href":210,"dataGaName":201,"dataGaLocation":181},"/platform/",{"title":212,"description":213,"link":214},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":215,"config":216},"Meet GitLab Duo",{"href":217,"dataGaName":218,"dataGaLocation":181},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":220,"description":221,"link":222},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":223,"config":224},"Learn more",{"href":225,"dataGaName":226,"dataGaLocation":181},"/why-gitlab/","why gitlab",{"text":228,"left":162,"config":229,"menu":231},"Product",{"dataNavLevelOne":230},"solutions",{"type":232,"link":233,"columns":237,"feature":305},"lists",{"text":234,"config":235},"View all Solutions",{"href":236,"dataGaName":230,"dataGaLocation":181},"/solutions/",[238,261,284],{"title":239,"description":240,"link":241,"items":246},"Automation","CI/CD and automation to accelerate deployment",{"config":242},{"icon":243,"href":244,"dataGaName":245,"dataGaLocation":181},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[247,250,253,257],{"text":173,"config":248},{"href":249,"dataGaLocation":181,"dataGaName":173},"/solutions/continuous-integration/",{"text":212,"config":251},{"href":217,"dataGaLocation":181,"dataGaName":252},"gitlab duo agent platform - product menu",{"text":254,"config":255},"Source Code Management",{"href":256,"dataGaLocation":181,"dataGaName":254},"/solutions/source-code-management/",{"text":258,"config":259},"Automated Software Delivery",{"href":244,"dataGaLocation":181,"dataGaName":260},"Automated software delivery",{"title":262,"description":263,"link":264,"items":269},"Security","Deliver code faster without compromising security",{"config":265},{"href":266,"dataGaName":267,"dataGaLocation":181,"icon":268},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[270,274,279],{"text":271,"config":272},"Application Security Testing",{"href":266,"dataGaName":273,"dataGaLocation":181},"Application security testing",{"text":275,"config":276},"Software Supply Chain Security",{"href":277,"dataGaLocation":181,"dataGaName":278},"/solutions/supply-chain/","Software supply chain security",{"text":280,"config":281},"Software Compliance",{"href":282,"dataGaName":283,"dataGaLocation":181},"/solutions/software-compliance/","software compliance",{"title":285,"link":286,"items":291},"Measurement",{"config":287},{"icon":288,"href":289,"dataGaName":290,"dataGaLocation":181},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[292,296,300],{"text":293,"config":294},"Visibility & Measurement",{"href":289,"dataGaLocation":181,"dataGaName":295},"Visibility and Measurement",{"text":297,"config":298},"Value Stream Management",{"href":299,"dataGaLocation":181,"dataGaName":297},"/solutions/value-stream-management/",{"text":301,"config":302},"Analytics & Insights",{"href":303,"dataGaLocation":181,"dataGaName":304},"/solutions/analytics-and-insights/","Analytics and insights",{"title":306,"type":232,"items":307},"GitLab for",[308,314,320],{"text":309,"config":310},"Enterprise",{"icon":311,"href":312,"dataGaLocation":181,"dataGaName":313},"Building","/enterprise/","enterprise",{"text":315,"config":316},"Small Business",{"icon":317,"href":318,"dataGaLocation":181,"dataGaName":319},"Work","/small-business/","small business",{"text":321,"config":322},"Public Sector",{"icon":323,"href":324,"dataGaLocation":181,"dataGaName":325},"Organization","/solutions/public-sector/","public sector",{"text":327,"config":328},"Pricing",{"href":329,"dataGaName":330,"dataGaLocation":181,"dataNavLevelOne":330},"/pricing/","pricing",{"text":332,"config":333,"menu":335},"Resources",{"dataNavLevelOne":334},"resources",{"type":232,"link":336,"columns":340,"feature":434},{"text":337,"config":338},"View all resources",{"href":339,"dataGaName":334,"dataGaLocation":181},"/resources/",[341,374,401],{"title":342,"items":343},"Getting started",[344,349,354,359,364,369],{"text":345,"config":346},"Install",{"href":347,"dataGaName":348,"dataGaLocation":181},"/install/","install",{"text":350,"config":351},"Quick start guides",{"href":352,"dataGaName":353,"dataGaLocation":181},"/get-started/","quick setup checklists",{"text":355,"config":356},"Learn",{"href":357,"dataGaLocation":181,"dataGaName":358},"https://university.gitlab.com/","learn",{"text":360,"config":361},"Product documentation",{"href":362,"dataGaName":363,"dataGaLocation":181},"https://docs.gitlab.com/","product documentation",{"text":365,"config":366},"Best practice videos",{"href":367,"dataGaName":368,"dataGaLocation":181},"/getting-started-videos/","best practice videos",{"text":370,"config":371},"Integrations",{"href":372,"dataGaName":373,"dataGaLocation":181},"/integrations/","integrations",{"title":375,"items":376},"Discover",[377,382,387,392,396],{"text":378,"config":379},"Customer success stories",{"href":380,"dataGaName":381,"dataGaLocation":181},"/customers/","customer success stories",{"text":383,"config":384},"Blog",{"href":385,"dataGaName":386,"dataGaLocation":181},"/blog/","blog",{"text":388,"config":389},"Demo Hub",{"href":390,"dataGaName":391,"dataGaLocation":181},"/demo-hub/","demo hub",{"text":393,"config":394},"The Source",{"href":395,"dataGaName":386,"dataGaLocation":181},"/the-source/",{"text":397,"config":398},"Remote",{"href":399,"dataGaName":400,"dataGaLocation":181},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":402,"items":403},"Connect",[404,409,414,419,424,429],{"text":405,"config":406},"GitLab Services",{"href":407,"dataGaName":408,"dataGaLocation":181},"/services/","services",{"text":410,"config":411},"Contribute",{"href":412,"dataGaName":413,"dataGaLocation":181},"https://contributors.gitlab.com","contribute",{"text":415,"config":416},"Community",{"href":417,"dataGaName":418,"dataGaLocation":181},"/community/","community",{"text":420,"config":421},"Forum",{"href":422,"dataGaName":423,"dataGaLocation":181},"https://forum.gitlab.com/","forum",{"text":425,"config":426},"Events",{"href":427,"dataGaName":428,"dataGaLocation":181},"/events/","events",{"text":430,"config":431},"Partners",{"href":432,"dataGaName":433,"dataGaLocation":181},"/partners/","partners",{"config":435,"title":438,"text":439,"link":440},{"background":436,"textColor":437},"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":441,"config":442},"Read the latest",{"href":443,"dataGaName":444,"dataGaLocation":181},"/whats-new/","whats new",{"text":446,"config":447,"menu":449},"Company",{"dataNavLevelOne":448},"company",{"type":232,"columns":450},[451],{"items":452},[453,458,464,466,471,476,481,486,491,496],{"text":454,"config":455},"About",{"href":456,"dataGaName":457,"dataGaLocation":181},"/company/","about",{"text":459,"config":460,"footerGa":463},"Jobs",{"href":461,"dataGaName":462,"dataGaLocation":181},"/jobs/","jobs",{"dataGaName":462},{"text":425,"config":465},{"href":427,"dataGaName":428,"dataGaLocation":181},{"text":467,"config":468},"Leadership",{"href":469,"dataGaName":470,"dataGaLocation":181},"/company/team/e-group/","leadership",{"text":472,"config":473},"Handbook",{"href":474,"dataGaName":475,"dataGaLocation":181},"https://handbook.gitlab.com/","handbook",{"text":477,"config":478},"Investor relations",{"href":479,"dataGaName":480,"dataGaLocation":181},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":482,"config":483},"Trust Center",{"href":484,"dataGaName":485,"dataGaLocation":181},"/security/","trust center",{"text":487,"config":488},"AI Transparency Center",{"href":489,"dataGaName":490,"dataGaLocation":181},"/ai-transparency-center/","ai transparency center",{"text":492,"config":493},"Newsletter",{"href":494,"dataGaName":495,"dataGaLocation":181},"/company/contact/#contact-forms","newsletter",{"text":497,"config":498},"Press",{"href":499,"dataGaName":500,"dataGaLocation":181},"/press/","press",{"text":502,"config":503,"menu":504},"Contact us",{"dataNavLevelOne":448},{"type":232,"columns":505},[506],{"items":507},[508,513,518],{"text":509,"config":510},"Talk to sales",{"href":511,"dataGaName":512,"dataGaLocation":181},"/sales/","talk to sales",{"text":514,"config":515},"Support portal",{"href":516,"dataGaName":517,"dataGaLocation":181},"https://support.gitlab.com/hc/en-us","support portal",{"text":519,"config":520},"Customer portal",{"href":521,"dataGaName":522,"dataGaLocation":181},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":524,"login":525,"suggestions":532},"Close",{"text":526,"link":527},"To search repositories and projects, login to",{"text":528,"config":529},"gitlab.com",{"href":195,"dataGaName":530,"dataGaLocation":531},"search login","search",{"text":533,"default":534},"Suggestions",[535,537,541,543,547,551],{"text":212,"config":536},{"href":217,"dataGaName":212,"dataGaLocation":531},{"text":538,"config":539},"Code Suggestions (AI)",{"href":540,"dataGaName":538,"dataGaLocation":531},"/solutions/code-suggestions/",{"text":173,"config":542},{"href":249,"dataGaName":173,"dataGaLocation":531},{"text":544,"config":545},"GitLab on AWS",{"href":546,"dataGaName":544,"dataGaLocation":531},"/partners/technology-partners/aws/",{"text":548,"config":549},"GitLab on Google Cloud",{"href":550,"dataGaName":548,"dataGaLocation":531},"/partners/technology-partners/google-cloud-platform/",{"text":552,"config":553},"Why GitLab?",{"href":225,"dataGaName":552,"dataGaLocation":531},{"freeTrial":555,"mobileIcon":560,"desktopIcon":565,"secondaryButton":568},{"text":556,"config":557},"Start free trial",{"href":558,"dataGaName":186,"dataGaLocation":559},"https://gitlab.com/-/trials/new/","nav",{"altText":561,"config":562},"Gitlab Icon",{"src":563,"dataGaName":564,"dataGaLocation":559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":561,"config":566},{"src":567,"dataGaName":564,"dataGaLocation":559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":569,"config":570},"Get Started",{"href":571,"dataGaName":572,"dataGaLocation":559},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":574,"mobileIcon":578,"desktopIcon":580},{"text":575,"config":576},"Learn more about GitLab Duo",{"href":217,"dataGaName":577,"dataGaLocation":559},"gitlab duo",{"altText":561,"config":579},{"src":563,"dataGaName":564,"dataGaLocation":559},{"altText":561,"config":581},{"src":567,"dataGaName":564,"dataGaLocation":559},{"button":583,"mobileIcon":588,"desktopIcon":590},{"text":584,"config":585},"/switch",{"href":586,"dataGaName":587,"dataGaLocation":559},"#contact","switch",{"altText":561,"config":589},{"src":563,"dataGaName":564,"dataGaLocation":559},{"altText":561,"config":591},{"src":592,"dataGaName":564,"dataGaLocation":559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":594,"mobileIcon":599,"desktopIcon":601},{"text":595,"config":596},"Back to pricing",{"href":329,"dataGaName":597,"dataGaLocation":559,"icon":598},"back to pricing","GoBack",{"altText":561,"config":600},{"src":563,"dataGaName":564,"dataGaLocation":559},{"altText":561,"config":602},{"src":567,"dataGaName":564,"dataGaLocation":559},{"title":604,"titleMobile":605,"button":606,"config":611},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":223,"config":607},{"href":608,"dataGaName":609,"dataGaLocation":610},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":612,"disabled":159},"release",{"data":614},{"text":615,"source":616,"edit":622,"contribute":627,"config":632,"items":637,"minimal":845},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":617,"config":618},"View page source",{"href":619,"dataGaName":620,"dataGaLocation":621},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":623,"config":624},"Edit this page",{"href":625,"dataGaName":626,"dataGaLocation":621},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":628,"config":629},"Please contribute",{"href":630,"dataGaName":631,"dataGaLocation":621},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":633,"facebook":634,"youtube":635,"linkedin":636},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[638,685,737,781,813],{"title":327,"links":639,"subMenu":654},[640,644,649],{"text":641,"config":642},"View plans",{"href":329,"dataGaName":643,"dataGaLocation":621},"view plans",{"text":645,"config":646},"Why Premium?",{"href":647,"dataGaName":648,"dataGaLocation":621},"/pricing/premium/","why premium",{"text":650,"config":651},"Why Ultimate?",{"href":652,"dataGaName":653,"dataGaLocation":621},"/pricing/ultimate/","why ultimate",[655],{"title":656,"links":657},"Contact Us",[658,661,663,665,670,675,680],{"text":659,"config":660},"Contact sales",{"href":511,"dataGaName":191,"dataGaLocation":621},{"text":514,"config":662},{"href":516,"dataGaName":517,"dataGaLocation":621},{"text":519,"config":664},{"href":521,"dataGaName":522,"dataGaLocation":621},{"text":666,"config":667},"Status",{"href":668,"dataGaName":669,"dataGaLocation":621},"https://status.gitlab.com/","status",{"text":671,"config":672},"Terms of use",{"href":673,"dataGaName":674,"dataGaLocation":621},"/terms/","terms of use",{"text":676,"config":677},"Privacy statement",{"href":678,"dataGaName":679,"dataGaLocation":621},"/privacy/","privacy statement",{"text":681,"config":682},"Cookie preferences",{"dataGaName":683,"dataGaLocation":621,"id":684,"isOneTrustButton":162},"cookie preferences","ot-sdk-btn",{"title":228,"links":686,"subMenu":695},[687,691],{"text":688,"config":689},"DevSecOps platform",{"href":210,"dataGaName":690,"dataGaLocation":621},"devsecops platform",{"text":692,"config":693},"AI-Assisted Development",{"href":217,"dataGaName":694,"dataGaLocation":621},"ai-assisted development",[696],{"title":697,"links":698},"Topics",[699,704,709,712,717,722,727,732],{"text":700,"config":701},"CICD",{"href":702,"dataGaName":703,"dataGaLocation":621},"/topics/ci-cd/","cicd",{"text":705,"config":706},"GitOps",{"href":707,"dataGaName":708,"dataGaLocation":621},"/topics/gitops/","gitops",{"text":19,"config":710},{"href":18,"dataGaName":711,"dataGaLocation":621},"devops",{"text":713,"config":714},"Version Control",{"href":715,"dataGaName":716,"dataGaLocation":621},"/topics/version-control/","version control",{"text":718,"config":719},"DevSecOps",{"href":720,"dataGaName":721,"dataGaLocation":621},"/topics/devsecops/","devsecops",{"text":723,"config":724},"Cloud Native",{"href":725,"dataGaName":726,"dataGaLocation":621},"/topics/cloud-native/","cloud native",{"text":728,"config":729},"AI for Coding",{"href":730,"dataGaName":731,"dataGaLocation":621},"/topics/devops/ai-for-coding/","ai for coding",{"text":733,"config":734},"Agentic AI",{"href":735,"dataGaName":736,"dataGaLocation":621},"/topics/agentic-ai/","agentic ai",{"title":738,"links":739},"Solutions",[740,742,744,749,753,756,760,763,765,768,771,776],{"text":271,"config":741},{"href":266,"dataGaName":271,"dataGaLocation":621},{"text":260,"config":743},{"href":244,"dataGaName":245,"dataGaLocation":621},{"text":745,"config":746},"Agile development",{"href":747,"dataGaName":748,"dataGaLocation":621},"/solutions/agile-delivery/","agile delivery",{"text":750,"config":751},"SCM",{"href":256,"dataGaName":752,"dataGaLocation":621},"source code management",{"text":700,"config":754},{"href":249,"dataGaName":755,"dataGaLocation":621},"continuous integration & delivery",{"text":757,"config":758},"Value stream management",{"href":299,"dataGaName":759,"dataGaLocation":621},"value stream management",{"text":705,"config":761},{"href":762,"dataGaName":708,"dataGaLocation":621},"/solutions/gitops/",{"text":309,"config":764},{"href":312,"dataGaName":313,"dataGaLocation":621},{"text":766,"config":767},"Small business",{"href":318,"dataGaName":319,"dataGaLocation":621},{"text":769,"config":770},"Public sector",{"href":324,"dataGaName":325,"dataGaLocation":621},{"text":772,"config":773},"Education",{"href":774,"dataGaName":775,"dataGaLocation":621},"/solutions/education/","education",{"text":777,"config":778},"Financial services",{"href":779,"dataGaName":780,"dataGaLocation":621},"/solutions/finance/","financial services",{"title":332,"links":782},[783,785,787,789,792,794,797,799,801,803,805,807,809,811],{"text":345,"config":784},{"href":347,"dataGaName":348,"dataGaLocation":621},{"text":350,"config":786},{"href":352,"dataGaName":353,"dataGaLocation":621},{"text":355,"config":788},{"href":357,"dataGaName":358,"dataGaLocation":621},{"text":360,"config":790},{"href":362,"dataGaName":791,"dataGaLocation":621},"docs",{"text":383,"config":793},{"href":385,"dataGaName":386,"dataGaLocation":621},{"text":795,"config":796},"What's new",{"href":443,"dataGaName":444,"dataGaLocation":621},{"text":378,"config":798},{"href":380,"dataGaName":381,"dataGaLocation":621},{"text":397,"config":800},{"href":399,"dataGaName":400,"dataGaLocation":621},{"text":405,"config":802},{"href":407,"dataGaName":408,"dataGaLocation":621},{"text":410,"config":804},{"href":412,"dataGaName":413,"dataGaLocation":621},{"text":415,"config":806},{"href":417,"dataGaName":418,"dataGaLocation":621},{"text":420,"config":808},{"href":422,"dataGaName":423,"dataGaLocation":621},{"text":425,"config":810},{"href":427,"dataGaName":428,"dataGaLocation":621},{"text":430,"config":812},{"href":432,"dataGaName":433,"dataGaLocation":621},{"title":446,"links":814},[815,817,819,821,823,825,829,834,836,838,840],{"text":454,"config":816},{"href":456,"dataGaName":448,"dataGaLocation":621},{"text":459,"config":818},{"href":461,"dataGaName":462,"dataGaLocation":621},{"text":467,"config":820},{"href":469,"dataGaName":470,"dataGaLocation":621},{"text":472,"config":822},{"href":474,"dataGaName":475,"dataGaLocation":621},{"text":477,"config":824},{"href":479,"dataGaName":480,"dataGaLocation":621},{"text":826,"config":827},"Sustainability",{"href":828,"dataGaName":826,"dataGaLocation":621},"/sustainability/",{"text":830,"config":831},"Diversity, inclusion and belonging (DIB)",{"href":832,"dataGaName":833,"dataGaLocation":621},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":482,"config":835},{"href":484,"dataGaName":485,"dataGaLocation":621},{"text":492,"config":837},{"href":494,"dataGaName":495,"dataGaLocation":621},{"text":497,"config":839},{"href":499,"dataGaName":500,"dataGaLocation":621},{"text":841,"config":842},"Modern Slavery Transparency Statement",{"href":843,"dataGaName":844,"dataGaLocation":621},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":846},[847,850,853],{"text":848,"config":849},"Terms",{"href":673,"dataGaName":674,"dataGaLocation":621},{"text":851,"config":852},"Cookies",{"dataGaName":683,"dataGaLocation":621,"id":684,"isOneTrustButton":162},{"text":854,"config":855},"Privacy",{"href":678,"dataGaName":679,"dataGaLocation":621},[857],{"id":858,"title":7,"body":158,"config":859,"content":861,"description":158,"extension":864,"meta":865,"navigation":162,"path":866,"seo":867,"stem":868,"__hash__":869},"blogAuthors/en-us/blog/authors/sara-kassabian.yml",{"template":860},"BlogAuthor",{"name":7,"config":862},{"headshot":148,"ctfId":863},"skassabian","yml",{},"/en-us/blog/authors/sara-kassabian",{},"en-us/blog/authors/sara-kassabian","6cCCPpjzkCDfb77tMVCyG8_FImRVQXA2VCMyiAjhFX0",[871,879,887],{"title":872,"description":873,"heroImage":874,"category":154,"date":875,"authors":876,"slug":878,"externalUrl":158},"How we overhauled GitLab navigation","Users weren't getting what they needed from our navigation. Here are the steps we took to turn that experience around.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682884/Blog/Hero%20Images/navigation.jpg","2023-08-15",[877],"Ashley Knobloch","navigation-research-blog-post",{"title":880,"description":881,"heroImage":882,"category":154,"date":883,"authors":884,"slug":886,"externalUrl":158},"Beautifying our UI: Giving GitLab build features a fresh look","Get an inside look at how we are improving the usability of GitLab build features with multiple visual design improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682807/Blog/Hero%20Images/beautify.jpg","2023-07-05",[885],"Veethika Mishra","beautifying-of-our-ui",{"title":888,"description":889,"heroImage":890,"category":154,"date":891,"authors":892,"slug":894,"externalUrl":158},"4 best practices leading orgs to release software faster","GitLab's 2023 Global DevSecOps Survey illuminates the strategies that organizations deploying more frequently have in common.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","2023-06-08",[893],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":896},[897,911,923,935],{"id":898,"categories":899,"header":901,"text":902,"button":903,"image":908},"ai-modernization",[900],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":904,"config":905},"Get your AI maturity score",{"href":906,"dataGaName":907,"dataGaLocation":386},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":909},{"src":910},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":912,"categories":913,"header":915,"text":902,"button":916,"image":920},"devops-modernization",[914,721],"product","Are you just managing tools or shipping innovation?",{"text":917,"config":918},"Get your DevOps maturity score",{"href":919,"dataGaName":907,"dataGaLocation":386},"/assessments/devops-modernization-assessment/",{"config":921},{"src":922},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":924,"categories":925,"header":927,"text":902,"button":928,"image":932},"security-modernization",[926],"security","Are you trading speed for security?",{"text":929,"config":930},"Get your security maturity score",{"href":931,"dataGaName":907,"dataGaLocation":386},"/assessments/security-modernization-assessment/",{"config":933},{"src":934},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":936,"paths":937,"header":940,"text":941,"button":942,"image":947},"github-azure-migration",[938,939],"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":943,"config":944},"See how GitLab compares to GitHub",{"href":945,"dataGaName":946,"dataGaLocation":386},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":948},{"src":922},{"header":950,"blurb":951,"button":952,"secondaryButton":957},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":953,"config":954},"Get your free trial",{"href":955,"dataGaName":186,"dataGaLocation":956},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":659,"config":958},{"href":511,"dataGaName":191,"dataGaLocation":956},1786803738200]