[{"data":1,"prerenderedAt":931},["ShallowReactive",2],{"/blog/agile-for-developers-refactor-code":3,"navigation-en-us":148,"banner-en-us":574,"footer-en-us":584,"blog-post-authors-en-us-Suri Patel":828,"blog-related-posts-en-us-agile-for-developers-refactor-code":843,"blog-promotions-en-us":867,"next-steps-en-us":921},{"id":4,"title":5,"authors":6,"body":8,"category":126,"date":127,"description":128,"extension":129,"externalUrl":130,"faq":130,"featured":131,"heroImage":132,"meta":133,"navigation":134,"path":135,"seo":136,"slug":140,"stem":141,"tags":142,"template":146,"updatedDate":130,"__hash__":147},"blogPosts/en-us/blog/agile-for-developers-refactor-code.md","Agile for developers: Refactoring code",[7],"Suri Patel",{"type":9,"value":10,"toc":114},"minimark",[11,21,26,34,40,43,47,50,55,58,62,65,69,72,75,78,82,100],[12,13,14,15,20],"p",{},"It’s difficult to cook in a cluttered, untidy kitchen. You need a specific knife, but it needs to be washed. You need that one mixing bowl, but it’s not in the cabinet where you usually keep it. You can’t find a place for the cutting board, because the countertop has no room. Software development is similar to cooking - you need a tidy codebase to deliver rapidly. If you don’t clean your code as you develop, you can find yourself surrounded by a mess. Fortunately, refactoring code helps you keep your ",[16,17,19],"a",{"href":18},"/solutions/source-code-management/","source code"," neat and tidy.",[22,23,25],"h2",{"id":24},"refactor-code-to-accelerate-agile-delivery","Refactor code to accelerate Agile delivery",[12,27,28,29,33],{},"Refactoring simplifies the design of code, without altering its behavior, to increase maintainability and readability. Teams refactor code before adding updates or releasing features in an effort to improve code quality so that future iterations built on original code are not bogged down by confusion and clutter. As such, this process helps to ",[16,30,32],{"href":31},"/solutions/agile-delivery/","accelerate Agile delivery",".",[35,36,37],"blockquote",{},[12,38,39],{},"“None of my inventions came by accident. I see a worthwhile need to be met and I make trial after trial until it comes.” — Thomas Edison",[12,41,42],{},"Refactoring isn’t a random exercise in which developers tinker with code. It’s a precise process designed to enhance the internal structure of a program’s source code. While it may seem like a tedious task, refactoring has long-term business value.",[22,44,46],{"id":45},"how-to-get-started-with-refactoring","How to get started with refactoring",[12,48,49],{},"Staring at unrefactored code trying to determine where to start can be a frightening experience. Fortunately, there are a few methods you can use to make refactoring a little easier.",[51,52,54],"h3",{"id":53},"incremental-refactoring","Incremental refactoring",[12,56,57],{},"The simplest way to get started is to make small improvements. Make a list of the parts of your system that change most often and refactor those areas. Making incremental improvements on the files that your team works with most often can help you steadily work through your code. By targeting the areas that are used most often, refactoring can have a significant impact on your overall system.",[51,59,61],{"id":60},"test-driven-development","Test-driven development",[12,63,64],{},"You can think of test-driven development as cleaning as you’re coding. If you’d like to revolutionize the way your team develops and make refactoring an integrated aspect of your workflow, you can embrace test-driven development, which incorporates coding, unit tests, and refactoring to program in short development cycles. Developers write a failing automated test to define a new function before writing the smallest amount of code to pass the test. The code is then refactored to an ideal state.",[22,66,68],{"id":67},"the-benefits-of-refactoring-code","The benefits of refactoring code",[12,70,71],{},"Refactoring prevents code rot, such as bad dependencies between classes, myriad patches, incorrect allocation of class responsibilities, and duplicate code, resulting in a more efficient code base. The time taken to refactor pays dividends, since it’s easier to clean code closer to when it was written rather than rush to fix problems later.",[12,73,74],{},"The time commitment involved in refactoring may cause hesitation, but the impact on developer productivity and efficiency outweighs the initial discomfort. When developers take the time to refactor, they continually maintain a tidy source code so that other developers can easily deliver without running into problems. Refactoring helps create a culture of shared responsibility, trust, and collaboration.",[12,76,77],{},"With refactoring, the QA and debugging stages are simpler, since there is more cohesion to the overall code. Furthermore, software assets can be extended for years, allowing users to experience prolonged value rather than dealing with an unusable system.",[22,79,81],{"id":80},"whats-next-for-your-team","What’s next for your team?",[12,83,84,85,89,90,94,95,99],{},"Agile techniques have the power to transform your team’s culture, sparking seamless delivery, innovation, and collaboration. Depending on your team’s challenges, there’s a technique to help your team through it. With ",[16,86,88],{"href":87},"/blog/agile-pairing-sessions/","pairing sessions",", your developers can bridge knowledge gaps, increase communication, and develop solutions to challenging problems. By ",[16,91,93],{"href":92},"/blog/how-to-strengthen-agile-teams-with-tuckmans-model/","strengthening group development",", you can help your team rebuild after breaking down silos. When your team ",[16,96,98],{"href":97},"/blog/agile-mindset/","embraces an Agile mindset",", they’re more flexible and can easily adapt to changes. Refactoring is one step in a journey to help your team cultivate a strong Agile culture.",[12,101,102,103,108,109],{},"Cover image by ",[16,104,107],{"href":105,"rel":106},"https://unsplash.com/@barnimages?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Barn Images"," on ",[16,110,113],{"href":111,"rel":112},"https://unsplash.com/photos/t5YUoHW6zRo",[],"Unsplash",{"title":115,"searchDepth":116,"depth":116,"links":117},"",2,[118,119,124,125],{"id":24,"depth":116,"text":25},{"id":45,"depth":116,"text":46,"children":120},[121,123],{"id":53,"depth":122,"text":54},3,{"id":60,"depth":122,"text":61},{"id":67,"depth":116,"text":68},{"id":80,"depth":116,"text":81},"company","2019-12-18","The time commitment involved in refactoring may cause hesitation, but the impact on developer productivity and efficiency outweighs the initial discomfort.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680945/Blog/Hero%20Images/refactorpost.jpg",{},true,"/en-us/blog/agile-for-developers-refactor-code",{"title":5,"description":128,"ogTitle":5,"ogDescription":128,"noIndex":131,"ogImage":132,"ogUrl":137,"ogSiteName":138,"ogType":139,"canonicalUrls":137},"https://about.gitlab.com/blog/agile-for-developers-refactor-code","https://about.gitlab.com","article","agile-for-developers-refactor-code","en-us/blog/agile-for-developers-refactor-code",[143,144,145],"agile","collaboration","workflow","BlogPost","vza93oh2IuqBPWhYS4A8RJ-ZTAJFb-CXJjBInXF7WNQ",{"logo":149,"freeTrial":154,"sales":159,"login":164,"items":169,"search":494,"minimal":525,"duo":544,"switchNav":553,"pricingDeployment":564},{"config":150},{"href":151,"dataGaName":152,"dataGaLocation":153},"/","gitlab logo","header",{"text":155,"config":156},"Get free trial",{"href":157,"dataGaName":158,"dataGaLocation":153},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":160,"config":161},"Request a demo",{"href":162,"dataGaName":163,"dataGaLocation":153},"/sales/?contact-topic=request-demo","sales",{"text":165,"config":166},"Sign in",{"href":167,"dataGaName":168,"dataGaLocation":153},"https://gitlab.com/users/sign_in/","sign in",[170,199,298,303,417,472],{"text":171,"config":172,"menu":174},"Platform",{"dataNavLevelOne":173},"platform",{"type":175,"columns":176},"cards",[177,183,191],{"title":171,"description":178,"link":179},"The intelligent orchestration platform for DevSecOps",{"text":180,"config":181},"Explore our Platform",{"href":182,"dataGaName":173,"dataGaLocation":153},"/platform/",{"title":184,"description":185,"link":186},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":187,"config":188},"Meet GitLab Duo",{"href":189,"dataGaName":190,"dataGaLocation":153},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":192,"description":193,"link":194},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":195,"config":196},"Learn more",{"href":197,"dataGaName":198,"dataGaLocation":153},"/why-gitlab/","why gitlab",{"text":200,"left":134,"config":201,"menu":203},"Product",{"dataNavLevelOne":202},"solutions",{"type":204,"link":205,"columns":209,"feature":277},"lists",{"text":206,"config":207},"View all Solutions",{"href":208,"dataGaName":202,"dataGaLocation":153},"/solutions/",[210,233,256],{"title":211,"description":212,"link":213,"items":218},"Automation","CI/CD and automation to accelerate deployment",{"config":214},{"icon":215,"href":216,"dataGaName":217,"dataGaLocation":153},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[219,223,226,229],{"text":220,"config":221},"CI/CD",{"href":222,"dataGaLocation":153,"dataGaName":220},"/solutions/continuous-integration/",{"text":184,"config":224},{"href":189,"dataGaLocation":153,"dataGaName":225},"gitlab duo agent platform - product menu",{"text":227,"config":228},"Source Code Management",{"href":18,"dataGaLocation":153,"dataGaName":227},{"text":230,"config":231},"Automated Software Delivery",{"href":216,"dataGaLocation":153,"dataGaName":232},"Automated software delivery",{"title":234,"description":235,"link":236,"items":241},"Security","Deliver code faster without compromising security",{"config":237},{"href":238,"dataGaName":239,"dataGaLocation":153,"icon":240},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[242,246,251],{"text":243,"config":244},"Application Security Testing",{"href":238,"dataGaName":245,"dataGaLocation":153},"Application security testing",{"text":247,"config":248},"Software Supply Chain Security",{"href":249,"dataGaLocation":153,"dataGaName":250},"/solutions/supply-chain/","Software supply chain security",{"text":252,"config":253},"Software Compliance",{"href":254,"dataGaName":255,"dataGaLocation":153},"/solutions/software-compliance/","software compliance",{"title":257,"link":258,"items":263},"Measurement",{"config":259},{"icon":260,"href":261,"dataGaName":262,"dataGaLocation":153},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[264,268,272],{"text":265,"config":266},"Visibility & Measurement",{"href":261,"dataGaLocation":153,"dataGaName":267},"Visibility and Measurement",{"text":269,"config":270},"Value Stream Management",{"href":271,"dataGaLocation":153,"dataGaName":269},"/solutions/value-stream-management/",{"text":273,"config":274},"Analytics & Insights",{"href":275,"dataGaLocation":153,"dataGaName":276},"/solutions/analytics-and-insights/","Analytics and insights",{"title":278,"type":204,"items":279},"GitLab for",[280,286,292],{"text":281,"config":282},"Enterprise",{"icon":283,"href":284,"dataGaLocation":153,"dataGaName":285},"Building","/enterprise/","enterprise",{"text":287,"config":288},"Small Business",{"icon":289,"href":290,"dataGaLocation":153,"dataGaName":291},"Work","/small-business/","small business",{"text":293,"config":294},"Public Sector",{"icon":295,"href":296,"dataGaLocation":153,"dataGaName":297},"Organization","/solutions/public-sector/","public sector",{"text":299,"config":300},"Pricing",{"href":301,"dataGaName":302,"dataGaLocation":153,"dataNavLevelOne":302},"/pricing/","pricing",{"text":304,"config":305,"menu":307},"Resources",{"dataNavLevelOne":306},"resources",{"type":204,"link":308,"columns":312,"feature":406},{"text":309,"config":310},"View all resources",{"href":311,"dataGaName":306,"dataGaLocation":153},"/resources/",[313,346,373],{"title":314,"items":315},"Getting started",[316,321,326,331,336,341],{"text":317,"config":318},"Install",{"href":319,"dataGaName":320,"dataGaLocation":153},"/install/","install",{"text":322,"config":323},"Quick start guides",{"href":324,"dataGaName":325,"dataGaLocation":153},"/get-started/","quick setup checklists",{"text":327,"config":328},"Learn",{"href":329,"dataGaLocation":153,"dataGaName":330},"https://university.gitlab.com/","learn",{"text":332,"config":333},"Product documentation",{"href":334,"dataGaName":335,"dataGaLocation":153},"https://docs.gitlab.com/","product documentation",{"text":337,"config":338},"Best practice videos",{"href":339,"dataGaName":340,"dataGaLocation":153},"/getting-started-videos/","best practice videos",{"text":342,"config":343},"Integrations",{"href":344,"dataGaName":345,"dataGaLocation":153},"/integrations/","integrations",{"title":347,"items":348},"Discover",[349,354,359,364,368],{"text":350,"config":351},"Customer success stories",{"href":352,"dataGaName":353,"dataGaLocation":153},"/customers/","customer success stories",{"text":355,"config":356},"Blog",{"href":357,"dataGaName":358,"dataGaLocation":153},"/blog/","blog",{"text":360,"config":361},"Demo Hub",{"href":362,"dataGaName":363,"dataGaLocation":153},"/demo-hub/","demo hub",{"text":365,"config":366},"The Source",{"href":367,"dataGaName":358,"dataGaLocation":153},"/the-source/",{"text":369,"config":370},"Remote",{"href":371,"dataGaName":372,"dataGaLocation":153},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":374,"items":375},"Connect",[376,381,386,391,396,401],{"text":377,"config":378},"GitLab Services",{"href":379,"dataGaName":380,"dataGaLocation":153},"/services/","services",{"text":382,"config":383},"Contribute",{"href":384,"dataGaName":385,"dataGaLocation":153},"https://contributors.gitlab.com","contribute",{"text":387,"config":388},"Community",{"href":389,"dataGaName":390,"dataGaLocation":153},"/community/","community",{"text":392,"config":393},"Forum",{"href":394,"dataGaName":395,"dataGaLocation":153},"https://forum.gitlab.com/","forum",{"text":397,"config":398},"Events",{"href":399,"dataGaName":400,"dataGaLocation":153},"/events/","events",{"text":402,"config":403},"Partners",{"href":404,"dataGaName":405,"dataGaLocation":153},"/partners/","partners",{"config":407,"title":410,"text":411,"link":412},{"background":408,"textColor":409},"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":413,"config":414},"Read the latest",{"href":415,"dataGaName":416,"dataGaLocation":153},"/whats-new/","whats new",{"text":418,"config":419,"menu":420},"Company",{"dataNavLevelOne":126},{"type":204,"columns":421},[422],{"items":423},[424,429,435,437,442,447,452,457,462,467],{"text":425,"config":426},"About",{"href":427,"dataGaName":428,"dataGaLocation":153},"/company/","about",{"text":430,"config":431,"footerGa":434},"Jobs",{"href":432,"dataGaName":433,"dataGaLocation":153},"/jobs/","jobs",{"dataGaName":433},{"text":397,"config":436},{"href":399,"dataGaName":400,"dataGaLocation":153},{"text":438,"config":439},"Leadership",{"href":440,"dataGaName":441,"dataGaLocation":153},"/company/team/e-group/","leadership",{"text":443,"config":444},"Handbook",{"href":445,"dataGaName":446,"dataGaLocation":153},"https://handbook.gitlab.com/","handbook",{"text":448,"config":449},"Investor relations",{"href":450,"dataGaName":451,"dataGaLocation":153},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":453,"config":454},"Trust Center",{"href":455,"dataGaName":456,"dataGaLocation":153},"/security/","trust center",{"text":458,"config":459},"AI Transparency Center",{"href":460,"dataGaName":461,"dataGaLocation":153},"/ai-transparency-center/","ai transparency center",{"text":463,"config":464},"Newsletter",{"href":465,"dataGaName":466,"dataGaLocation":153},"/company/contact/#contact-forms","newsletter",{"text":468,"config":469},"Press",{"href":470,"dataGaName":471,"dataGaLocation":153},"/press/","press",{"text":473,"config":474,"menu":475},"Contact us",{"dataNavLevelOne":126},{"type":204,"columns":476},[477],{"items":478},[479,484,489],{"text":480,"config":481},"Talk to sales",{"href":482,"dataGaName":483,"dataGaLocation":153},"/sales/","talk to sales",{"text":485,"config":486},"Support portal",{"href":487,"dataGaName":488,"dataGaLocation":153},"https://support.gitlab.com/hc/en-us","support portal",{"text":490,"config":491},"Customer portal",{"href":492,"dataGaName":493,"dataGaLocation":153},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":495,"login":496,"suggestions":503},"Close",{"text":497,"link":498},"To search repositories and projects, login to",{"text":499,"config":500},"gitlab.com",{"href":167,"dataGaName":501,"dataGaLocation":502},"search login","search",{"text":504,"default":505},"Suggestions",[506,508,512,514,518,522],{"text":184,"config":507},{"href":189,"dataGaName":184,"dataGaLocation":502},{"text":509,"config":510},"Code Suggestions (AI)",{"href":511,"dataGaName":509,"dataGaLocation":502},"/solutions/code-suggestions/",{"text":220,"config":513},{"href":222,"dataGaName":220,"dataGaLocation":502},{"text":515,"config":516},"GitLab on AWS",{"href":517,"dataGaName":515,"dataGaLocation":502},"/partners/technology-partners/aws/",{"text":519,"config":520},"GitLab on Google Cloud",{"href":521,"dataGaName":519,"dataGaLocation":502},"/partners/technology-partners/google-cloud-platform/",{"text":523,"config":524},"Why GitLab?",{"href":197,"dataGaName":523,"dataGaLocation":502},{"freeTrial":526,"mobileIcon":531,"desktopIcon":536,"secondaryButton":539},{"text":527,"config":528},"Start free trial",{"href":529,"dataGaName":158,"dataGaLocation":530},"https://gitlab.com/-/trials/new/","nav",{"altText":532,"config":533},"Gitlab Icon",{"src":534,"dataGaName":535,"dataGaLocation":530},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":532,"config":537},{"src":538,"dataGaName":535,"dataGaLocation":530},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":540,"config":541},"Get Started",{"href":542,"dataGaName":543,"dataGaLocation":530},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":545,"mobileIcon":549,"desktopIcon":551},{"text":546,"config":547},"Learn more about GitLab Duo",{"href":189,"dataGaName":548,"dataGaLocation":530},"gitlab duo",{"altText":532,"config":550},{"src":534,"dataGaName":535,"dataGaLocation":530},{"altText":532,"config":552},{"src":538,"dataGaName":535,"dataGaLocation":530},{"button":554,"mobileIcon":559,"desktopIcon":561},{"text":555,"config":556},"/switch",{"href":557,"dataGaName":558,"dataGaLocation":530},"#contact","switch",{"altText":532,"config":560},{"src":534,"dataGaName":535,"dataGaLocation":530},{"altText":532,"config":562},{"src":563,"dataGaName":535,"dataGaLocation":530},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":565,"mobileIcon":570,"desktopIcon":572},{"text":566,"config":567},"Back to pricing",{"href":301,"dataGaName":568,"dataGaLocation":530,"icon":569},"back to pricing","GoBack",{"altText":532,"config":571},{"src":534,"dataGaName":535,"dataGaLocation":530},{"altText":532,"config":573},{"src":538,"dataGaName":535,"dataGaLocation":530},{"title":575,"titleMobile":576,"button":577,"config":582},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":195,"config":578},{"href":579,"dataGaName":580,"dataGaLocation":581},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":583,"disabled":131},"release",{"data":585},{"text":586,"source":587,"edit":593,"contribute":598,"config":603,"items":608,"minimal":817},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":588,"config":589},"View page source",{"href":590,"dataGaName":591,"dataGaLocation":592},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":594,"config":595},"Edit this page",{"href":596,"dataGaName":597,"dataGaLocation":592},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":599,"config":600},"Please contribute",{"href":601,"dataGaName":602,"dataGaLocation":592},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":604,"facebook":605,"youtube":606,"linkedin":607},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[609,656,710,753,785],{"title":299,"links":610,"subMenu":625},[611,615,620],{"text":612,"config":613},"View plans",{"href":301,"dataGaName":614,"dataGaLocation":592},"view plans",{"text":616,"config":617},"Why Premium?",{"href":618,"dataGaName":619,"dataGaLocation":592},"/pricing/premium/","why premium",{"text":621,"config":622},"Why Ultimate?",{"href":623,"dataGaName":624,"dataGaLocation":592},"/pricing/ultimate/","why ultimate",[626],{"title":627,"links":628},"Contact Us",[629,632,634,636,641,646,651],{"text":630,"config":631},"Contact sales",{"href":482,"dataGaName":163,"dataGaLocation":592},{"text":485,"config":633},{"href":487,"dataGaName":488,"dataGaLocation":592},{"text":490,"config":635},{"href":492,"dataGaName":493,"dataGaLocation":592},{"text":637,"config":638},"Status",{"href":639,"dataGaName":640,"dataGaLocation":592},"https://status.gitlab.com/","status",{"text":642,"config":643},"Terms of use",{"href":644,"dataGaName":645,"dataGaLocation":592},"/terms/","terms of use",{"text":647,"config":648},"Privacy statement",{"href":649,"dataGaName":650,"dataGaLocation":592},"/privacy/","privacy statement",{"text":652,"config":653},"Cookie preferences",{"dataGaName":654,"dataGaLocation":592,"id":655,"isOneTrustButton":134},"cookie preferences","ot-sdk-btn",{"title":200,"links":657,"subMenu":666},[658,662],{"text":659,"config":660},"DevSecOps platform",{"href":182,"dataGaName":661,"dataGaLocation":592},"devsecops platform",{"text":663,"config":664},"AI-Assisted Development",{"href":189,"dataGaName":665,"dataGaLocation":592},"ai-assisted development",[667],{"title":668,"links":669},"Topics",[670,675,680,685,690,695,700,705],{"text":671,"config":672},"CICD",{"href":673,"dataGaName":674,"dataGaLocation":592},"/topics/ci-cd/","cicd",{"text":676,"config":677},"GitOps",{"href":678,"dataGaName":679,"dataGaLocation":592},"/topics/gitops/","gitops",{"text":681,"config":682},"DevOps",{"href":683,"dataGaName":684,"dataGaLocation":592},"/topics/devops/","devops",{"text":686,"config":687},"Version Control",{"href":688,"dataGaName":689,"dataGaLocation":592},"/topics/version-control/","version control",{"text":691,"config":692},"DevSecOps",{"href":693,"dataGaName":694,"dataGaLocation":592},"/topics/devsecops/","devsecops",{"text":696,"config":697},"Cloud Native",{"href":698,"dataGaName":699,"dataGaLocation":592},"/topics/cloud-native/","cloud native",{"text":701,"config":702},"AI for Coding",{"href":703,"dataGaName":704,"dataGaLocation":592},"/topics/devops/ai-for-coding/","ai for coding",{"text":706,"config":707},"Agentic AI",{"href":708,"dataGaName":709,"dataGaLocation":592},"/topics/agentic-ai/","agentic ai",{"title":711,"links":712},"Solutions",[713,715,717,721,725,728,732,735,737,740,743,748],{"text":243,"config":714},{"href":238,"dataGaName":243,"dataGaLocation":592},{"text":232,"config":716},{"href":216,"dataGaName":217,"dataGaLocation":592},{"text":718,"config":719},"Agile development",{"href":31,"dataGaName":720,"dataGaLocation":592},"agile delivery",{"text":722,"config":723},"SCM",{"href":18,"dataGaName":724,"dataGaLocation":592},"source code management",{"text":671,"config":726},{"href":222,"dataGaName":727,"dataGaLocation":592},"continuous integration & delivery",{"text":729,"config":730},"Value stream management",{"href":271,"dataGaName":731,"dataGaLocation":592},"value stream management",{"text":676,"config":733},{"href":734,"dataGaName":679,"dataGaLocation":592},"/solutions/gitops/",{"text":281,"config":736},{"href":284,"dataGaName":285,"dataGaLocation":592},{"text":738,"config":739},"Small business",{"href":290,"dataGaName":291,"dataGaLocation":592},{"text":741,"config":742},"Public sector",{"href":296,"dataGaName":297,"dataGaLocation":592},{"text":744,"config":745},"Education",{"href":746,"dataGaName":747,"dataGaLocation":592},"/solutions/education/","education",{"text":749,"config":750},"Financial services",{"href":751,"dataGaName":752,"dataGaLocation":592},"/solutions/finance/","financial services",{"title":304,"links":754},[755,757,759,761,764,766,769,771,773,775,777,779,781,783],{"text":317,"config":756},{"href":319,"dataGaName":320,"dataGaLocation":592},{"text":322,"config":758},{"href":324,"dataGaName":325,"dataGaLocation":592},{"text":327,"config":760},{"href":329,"dataGaName":330,"dataGaLocation":592},{"text":332,"config":762},{"href":334,"dataGaName":763,"dataGaLocation":592},"docs",{"text":355,"config":765},{"href":357,"dataGaName":358,"dataGaLocation":592},{"text":767,"config":768},"What's new",{"href":415,"dataGaName":416,"dataGaLocation":592},{"text":350,"config":770},{"href":352,"dataGaName":353,"dataGaLocation":592},{"text":369,"config":772},{"href":371,"dataGaName":372,"dataGaLocation":592},{"text":377,"config":774},{"href":379,"dataGaName":380,"dataGaLocation":592},{"text":382,"config":776},{"href":384,"dataGaName":385,"dataGaLocation":592},{"text":387,"config":778},{"href":389,"dataGaName":390,"dataGaLocation":592},{"text":392,"config":780},{"href":394,"dataGaName":395,"dataGaLocation":592},{"text":397,"config":782},{"href":399,"dataGaName":400,"dataGaLocation":592},{"text":402,"config":784},{"href":404,"dataGaName":405,"dataGaLocation":592},{"title":418,"links":786},[787,789,791,793,795,797,801,806,808,810,812],{"text":425,"config":788},{"href":427,"dataGaName":126,"dataGaLocation":592},{"text":430,"config":790},{"href":432,"dataGaName":433,"dataGaLocation":592},{"text":438,"config":792},{"href":440,"dataGaName":441,"dataGaLocation":592},{"text":443,"config":794},{"href":445,"dataGaName":446,"dataGaLocation":592},{"text":448,"config":796},{"href":450,"dataGaName":451,"dataGaLocation":592},{"text":798,"config":799},"Sustainability",{"href":800,"dataGaName":798,"dataGaLocation":592},"/sustainability/",{"text":802,"config":803},"Diversity, inclusion and belonging (DIB)",{"href":804,"dataGaName":805,"dataGaLocation":592},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":453,"config":807},{"href":455,"dataGaName":456,"dataGaLocation":592},{"text":463,"config":809},{"href":465,"dataGaName":466,"dataGaLocation":592},{"text":468,"config":811},{"href":470,"dataGaName":471,"dataGaLocation":592},{"text":813,"config":814},"Modern Slavery Transparency Statement",{"href":815,"dataGaName":816,"dataGaLocation":592},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":818},[819,822,825],{"text":820,"config":821},"Terms",{"href":644,"dataGaName":645,"dataGaLocation":592},{"text":823,"config":824},"Cookies",{"dataGaName":654,"dataGaLocation":592,"id":655,"isOneTrustButton":134},{"text":826,"config":827},"Privacy",{"href":649,"dataGaName":650,"dataGaLocation":592},[829],{"id":830,"title":7,"body":130,"config":831,"content":833,"description":130,"extension":837,"meta":838,"navigation":134,"path":839,"seo":840,"stem":841,"__hash__":842},"blogAuthors/en-us/blog/authors/suri-patel.yml",{"template":832},"BlogAuthor",{"name":7,"config":834},{"headshot":835,"ctfId":836},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","suripatel","yml",{},"/en-us/blog/authors/suri-patel",{},"en-us/blog/authors/suri-patel","6uYSrzx-VYqO5jfherOjew8qtD9VYm7TE1H5W0GKC4I",[844,852,859],{"title":845,"description":846,"heroImage":847,"category":126,"date":848,"authors":849,"slug":851,"externalUrl":130},"Why GitLab signed the Open Weights and American AI Leadership letter","GitLab supports customer choice, data privacy, and AI model neutrality, empowering teams to run secure, cost-effective, local solutions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785333264/ww4mlighwlvvzgnmbe6w.png","2026-07-29",[850],"Bill Staples","open-weight-model-letter",{"title":853,"description":854,"heroImage":855,"category":126,"date":856,"authors":857,"slug":858,"externalUrl":130},"GitLab Act 2","A letter to our customers and our investors.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png","2026-05-11",[850],"gitlab-act-2",{"title":860,"description":861,"heroImage":862,"category":126,"date":863,"authors":864,"slug":866,"externalUrl":130},"GitLab named a 2026 Omdia Universe Leader","Omdia's 2026 report on AI-assisted software development ranked 19 vendors. Here is what GitLab's top scores mean for engineering teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-13",[865],"Rebecca Carter","gitlab-named-a-2026-omdia-universe-leader",{"promotions":868},[869,883,895,907],{"id":870,"categories":871,"header":873,"text":874,"button":875,"image":880},"ai-modernization",[872],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":876,"config":877},"Get your AI maturity score",{"href":878,"dataGaName":879,"dataGaLocation":358},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":881},{"src":882},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":884,"categories":885,"header":887,"text":874,"button":888,"image":892},"devops-modernization",[886,694],"product","Are you just managing tools or shipping innovation?",{"text":889,"config":890},"Get your DevOps maturity score",{"href":891,"dataGaName":879,"dataGaLocation":358},"/assessments/devops-modernization-assessment/",{"config":893},{"src":894},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":896,"categories":897,"header":899,"text":874,"button":900,"image":904},"security-modernization",[898],"security","Are you trading speed for security?",{"text":901,"config":902},"Get your security maturity score",{"href":903,"dataGaName":879,"dataGaLocation":358},"/assessments/security-modernization-assessment/",{"config":905},{"src":906},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":908,"paths":909,"header":912,"text":913,"button":914,"image":919},"github-azure-migration",[910,911],"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":915,"config":916},"See how GitLab compares to GitHub",{"href":917,"dataGaName":918,"dataGaLocation":358},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":920},{"src":894},{"header":922,"blurb":923,"button":924,"secondaryButton":929},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":925,"config":926},"Get your free trial",{"href":927,"dataGaName":158,"dataGaLocation":928},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":630,"config":930},{"href":482,"dataGaName":163,"dataGaLocation":928},1786803753867]