[{"data":1,"prerenderedAt":1178},["ShallowReactive",2],{"/blog/challenges-of-code-reviews":3,"navigation-en-us":392,"banner-en-us":820,"footer-en-us":830,"blog-post-authors-en-us-Suri Patel":1074,"blog-related-posts-en-us-challenges-of-code-reviews":1089,"blog-promotions-en-us":1114,"next-steps-en-us":1168},{"id":4,"title":5,"authors":6,"body":8,"category":370,"date":371,"description":372,"extension":373,"externalUrl":374,"faq":374,"featured":375,"heroImage":376,"meta":377,"navigation":378,"path":379,"seo":380,"slug":384,"stem":385,"tags":386,"template":390,"updatedDate":374,"__hash__":391},"blogPosts/en-us/blog/challenges-of-code-reviews.md","The challenges of code reviews",[7],"Suri Patel",{"type":9,"value":10,"toc":361},"minimark",[11,16,26,39,43,46,55,59,62,116,119,172,175,220,223,226,231,234,239,242,247,250,255,258,262,265,310,313,317,320,329,337,345,353],[12,13,15],"h2",{"id":14},"code-review-and-quality-challenges","Code review and quality challenges",[17,18,19,20,25],"p",{},"Code reviews are stressful. As a merge request owner, you're giving others\nan inside look at your abilities and thought processes. As a reviewer,\nthere’s something quite daunting about serving as the last stop before code\nis merged to the main branch. When teams face uncertain processes, lengthy\nwait times, and lack of buy-in, an inherently difficult task can soon feel\nSisyphean. In GitLab’s ",[21,22,24],"a",{"href":23},"/resources/developer-survey/","2020 Global DevSecOps\nSurvey",", over 3600 software professionals\nshared their thoughts on code reviews, and the results reinforce that code\nreviews are a challenging aspect of software development.",[17,27,28],{},[29,30,31,32,35,36],"em",{},"Our ",[21,33,34],{"href":23},"2022 Global DevSecOps Survey"," has the latest\ninsights from over 5,000 DevOps professionals. You can also compare it with\n",[21,37,38],{"href":23},"previous year surveys",[12,40,42],{"id":41},"why-is-code-review-important","Why is code review important?",[17,44,45],{},"Code reviews enable developers to more easily identify bugs, because they’re\nassessing the code with a fresh perspective. Shipping clean code decreases\nthe likelihood of errors nestling into the main branch. Teams turn to code\nreviews as a way to share knowledge, mentor newer developers, and ease the\nburden of development. When everyone reviews code, there is no longer a\nsingle point of failure that can halt delivery and risk missing releases or\nbusiness goals.",[17,47,48,49,54],{},"Studies show that ",[21,50,53],{"href":51,"rel":52},"https://www.microsoft.com/en-us/research/publication/expectations-outcomes-and-challenges-of-modern-code-review/",[],"code reviews increase\ncollaboration",",\nbecause the process of working together to improve code quality creates a\nshared ownership of the codebase. Developers work towards a common goal\nrather than feel proprietary attachment to their lines.",[12,56,58],{"id":57},"code-reviews-according-to-developers","Code reviews according to developers",[17,60,61],{},"In the 2020 DevSecOps Report, developers candidly shared their views on code\nreviews, with many highlighting the challenges of ensuring code quality\nstandards. Here’s a look at what developers said about code reviews.",[63,64,65,78],"table",{},[66,67,68],"thead",{},[69,70,71,75],"tr",{},[72,73,74],"th",{},"Question",[72,76,77],{},"Response",[79,80,81,92,100,108],"tbody",{},[69,82,83,90],{},[84,85,86],"td",{},[87,88,89],"strong",{},"How frequently does your team conduct code reviews?",[84,91],{},[69,93,94,97],{},[84,95,96],{},"Weekly",[84,98,99],{},"48.9%",[69,101,102,105],{},[84,103,104],{},"Bi-weekly",[84,106,107],{},"13.6%",[69,109,110,113],{},[84,111,112],{},"Monthly",[84,114,115],{},"9.5%",[17,117,118],{},"Most respondents do code reviews weekly, indicating that teams are committed\nto making them part of their workflow.",[63,120,121,129],{},[66,122,123],{},[69,124,125,127],{},[72,126,74],{},[72,128,77],{},[79,130,131,140,148,156,164],{},[69,132,133,138],{},[84,134,135],{},[87,136,137],{},"How do code reviews happen?",[84,139],{},[69,141,142,145],{},[84,143,144],{},"Messaging chat",[84,146,147],{},"40.8%",[69,149,150,153],{},[84,151,152],{},"Offline",[84,154,155],{},"28.6%",[69,157,158,161],{},[84,159,160],{},"Other",[84,162,163],{},"20.9%",[69,165,166,169],{},[84,167,168],{},"Video",[84,170,171],{},"9.7%",[17,173,174],{},"Documentation is an important part of a successful code review. Authors\nshould be able to refer to a checklist or assessment that highlights areas\nof improvement or excellence. Respondents indicated that the majority of\ncode reviews occur in messaging chat or offline, which may enable written\ndocumentation.",[63,176,177,185],{},[66,178,179],{},[69,180,181,183],{},[72,182,74],{},[72,184,77],{},[79,186,187,196,204,212],{},[69,188,189,194],{},[84,190,191],{},[87,192,193],{},"How do you prefer to do code reviews?",[84,195],{},[69,197,198,201],{},[84,199,200],{},"IDE",[84,202,203],{},"44%",[69,205,206,209],{},[84,207,208],{},"Browser",[84,210,211],{},"41.4%",[69,213,214,217],{},[84,215,216],{},"Code/text editor",[84,218,219],{},"14.6%",[17,221,222],{},"Conducting code reviews in integrated development environments and browsers\nis unsurprising, because there’s a low barrier to entry in participating and\ncollaborating with others.",[17,224,225],{},"Many respondents shared their thoughts about the specific challenges they\nface when doing code reviews.",[17,227,228],{},[29,229,230],{},"“Code reviews can take a long time due to the lack of reviewers.”",[17,232,233],{},"Without enough reviewers, code reviews can become overwhelming for the few\npeople who make time for this task. Code reviews become a burdensome\nactivity that can prevent certain team members from meeting goals and\ndelivering.",[17,235,236],{},[29,237,238],{},"“As an all-remote company, we haven't yet solved the problem of needing\nreviews from people in much different time zones and working hours. We have\na strict code review process, and it often takes several days for the\nreviewer to respond to requests for review. Planning takes a while, and our\ncode review process, while awesome, takes some time.”",[17,240,241],{},"Working in a distributed team can have drawbacks, especially when waiting\nfor domain experts or maintainers to review code. While processes are\nimportant in establishing workflow, it’s equally important not to slow down\nteam members with process.",[17,243,244],{},[29,245,246],{},"“Our code review process is disorganized. It took more time when reviewing\nthe code and testing than expected.”",[17,248,249],{},"On the other hand, not having an established review process can lead to\nstress, confusion, and pressure. Team members may dread code reviews due to\nthe disorganization, which can lead to insufficient assessment.",[17,251,252],{},[29,253,254],{},"“Some experts do not understand the importance of code review and regard it\nas a secondary task.”",[17,256,257],{},"When some team members do not value code review, they may deprioritize it\nand be reluctant participants. Collaboration is a key component in ensuring\nsuccessful code reviews, and lack of buy-in can slowly erode morale.",[12,259,261],{"id":260},"are-code-reviews-worth-it","Are code reviews worth it?",[17,263,264],{},"Based on the frustration level found in the 2020 DevSecOps Survey, it’s hard\nnot to wonder whether code reviews are worth the trouble. But all complaints\naside, it’s clear that the review process is helpful.",[63,266,267,275],{},[66,268,269],{},[69,270,271,273],{},[72,272,74],{},[72,274,77],{},[79,276,277,286,294,302],{},[69,278,279,284],{},[84,280,281],{},[87,282,283],{},"How valuable are code reviews?",[84,285],{},[69,287,288,291],{},[84,289,290],{},"Very valuable",[84,292,293],{},"61.9%",[69,295,296,299],{},[84,297,298],{},"Moderately valuable",[84,300,301],{},"33.3%",[69,303,304,307],{},[84,305,306],{},"They have no effect",[84,308,309],{},"3.7%",[17,311,312],{},"Code reviews are worth the difficulties, because they help teams collaborate\nto maintain a clean codebase, learn from each other to develop new skills,\nand ensure that innovative solutions solve complex problems. In order for\nteam members to feel like code reviews are valuable, IT leaders must invest\ntime in establishing processes to ensure that everyone has the tools and\nknowledge to succeed.",[12,314,316],{"id":315},"ready-to-learn-more-about-code-reviews","Ready to learn more about code reviews?",[17,318,319],{},"Here are a few resources to help you alleviate the challenges of code\nreview.",[17,321,322],{},[87,323,324],{},[21,325,328],{"href":326,"rel":327},"https://docs.gitlab.com/development/code_review/",[],"Read GitLab’s mandatory code review process\n→",[17,330,331],{},[87,332,333],{},[21,334,336],{"href":335},"/blog/troubleshoot-delays-with-code-review-analytics/","Learn how to troubleshoot delays with GitLab’s Code Review Analytics tool\n→",[17,338,339],{},[87,340,341],{},[21,342,344],{"href":343},"/blog/better-code-reviews/","Discover better code reviews GitLab style\n→",[17,346,347],{},[87,348,349],{},[21,350,352],{"href":351},"/blog/what-blocks-faster-code-release/","What blocks faster code releases? It starts with testing\n→",[17,354,355],{},[87,356,357],{},[21,358,360],{"href":359},"/blog/reviewer-roulette-one-year-on/","Read about GitLab’s experience with Reviewer Roulette\n→",{"title":362,"searchDepth":363,"depth":363,"links":364},"",2,[365,366,367,368,369],{"id":14,"depth":363,"text":15},{"id":41,"depth":363,"text":42},{"id":57,"depth":363,"text":58},{"id":260,"depth":363,"text":261},{"id":315,"depth":363,"text":316},"insights","2020-07-03","The 2020 DevSecOps Report discovers that developers are bogged down by code reviews. Are they worth the trouble?","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663975/Blog/Hero%20Images/devsecopssurvey.png",{},true,"/en-us/blog/challenges-of-code-reviews",{"ogTitle":5,"ogImage":376,"ogDescription":372,"ogSiteName":381,"noIndex":375,"ogType":382,"ogUrl":383,"title":5,"canonicalUrls":383,"description":372},"https://about.gitlab.com","article","https://about.gitlab.com/blog/challenges-of-code-reviews","challenges-of-code-reviews","en-us/blog/challenges-of-code-reviews",[387,388,389],"code review","developer survey","DevOps","BlogPost","j8hQcVrk6oVJDgOuqtJfhQgLpxHhaJYI2NVP8RYvPKw",{"logo":393,"freeTrial":398,"sales":403,"login":408,"items":413,"search":740,"minimal":771,"duo":790,"switchNav":799,"pricingDeployment":810},{"config":394},{"href":395,"dataGaName":396,"dataGaLocation":397},"/","gitlab logo","header",{"text":399,"config":400},"Get free trial",{"href":401,"dataGaName":402,"dataGaLocation":397},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":404,"config":405},"Request a demo",{"href":406,"dataGaName":407,"dataGaLocation":397},"/sales/?contact-topic=request-demo","sales",{"text":409,"config":410},"Sign in",{"href":411,"dataGaName":412,"dataGaLocation":397},"https://gitlab.com/users/sign_in/","sign in",[414,443,543,548,662,718],{"text":415,"config":416,"menu":418},"Platform",{"dataNavLevelOne":417},"platform",{"type":419,"columns":420},"cards",[421,427,435],{"title":415,"description":422,"link":423},"The intelligent orchestration platform for DevSecOps",{"text":424,"config":425},"Explore our Platform",{"href":426,"dataGaName":417,"dataGaLocation":397},"/platform/",{"title":428,"description":429,"link":430},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":431,"config":432},"Meet GitLab Duo",{"href":433,"dataGaName":434,"dataGaLocation":397},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":436,"description":437,"link":438},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":439,"config":440},"Learn more",{"href":441,"dataGaName":442,"dataGaLocation":397},"/why-gitlab/","why gitlab",{"text":444,"left":378,"config":445,"menu":447},"Product",{"dataNavLevelOne":446},"solutions",{"type":448,"link":449,"columns":453,"feature":522},"lists",{"text":450,"config":451},"View all Solutions",{"href":452,"dataGaName":446,"dataGaLocation":397},"/solutions/",[454,478,501],{"title":455,"description":456,"link":457,"items":462},"Automation","CI/CD and automation to accelerate deployment",{"config":458},{"icon":459,"href":460,"dataGaName":461,"dataGaLocation":397},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[463,467,470,474],{"text":464,"config":465},"CI/CD",{"href":466,"dataGaLocation":397,"dataGaName":464},"/solutions/continuous-integration/",{"text":428,"config":468},{"href":433,"dataGaLocation":397,"dataGaName":469},"gitlab duo agent platform - product menu",{"text":471,"config":472},"Source Code Management",{"href":473,"dataGaLocation":397,"dataGaName":471},"/solutions/source-code-management/",{"text":475,"config":476},"Automated Software Delivery",{"href":460,"dataGaLocation":397,"dataGaName":477},"Automated software delivery",{"title":479,"description":480,"link":481,"items":486},"Security","Deliver code faster without compromising security",{"config":482},{"href":483,"dataGaName":484,"dataGaLocation":397,"icon":485},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[487,491,496],{"text":488,"config":489},"Application Security Testing",{"href":483,"dataGaName":490,"dataGaLocation":397},"Application security testing",{"text":492,"config":493},"Software Supply Chain Security",{"href":494,"dataGaLocation":397,"dataGaName":495},"/solutions/supply-chain/","Software supply chain security",{"text":497,"config":498},"Software Compliance",{"href":499,"dataGaName":500,"dataGaLocation":397},"/solutions/software-compliance/","software compliance",{"title":502,"link":503,"items":508},"Measurement",{"config":504},{"icon":505,"href":506,"dataGaName":507,"dataGaLocation":397},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[509,513,517],{"text":510,"config":511},"Visibility & Measurement",{"href":506,"dataGaLocation":397,"dataGaName":512},"Visibility and Measurement",{"text":514,"config":515},"Value Stream Management",{"href":516,"dataGaLocation":397,"dataGaName":514},"/solutions/value-stream-management/",{"text":518,"config":519},"Analytics & Insights",{"href":520,"dataGaLocation":397,"dataGaName":521},"/solutions/analytics-and-insights/","Analytics and insights",{"title":523,"type":448,"items":524},"GitLab for",[525,531,537],{"text":526,"config":527},"Enterprise",{"icon":528,"href":529,"dataGaLocation":397,"dataGaName":530},"Building","/enterprise/","enterprise",{"text":532,"config":533},"Small Business",{"icon":534,"href":535,"dataGaLocation":397,"dataGaName":536},"Work","/small-business/","small business",{"text":538,"config":539},"Public Sector",{"icon":540,"href":541,"dataGaLocation":397,"dataGaName":542},"Organization","/solutions/public-sector/","public sector",{"text":544,"config":545},"Pricing",{"href":546,"dataGaName":547,"dataGaLocation":397,"dataNavLevelOne":547},"/pricing/","pricing",{"text":549,"config":550,"menu":552},"Resources",{"dataNavLevelOne":551},"resources",{"type":448,"link":553,"columns":557,"feature":651},{"text":554,"config":555},"View all resources",{"href":556,"dataGaName":551,"dataGaLocation":397},"/resources/",[558,591,618],{"title":559,"items":560},"Getting started",[561,566,571,576,581,586],{"text":562,"config":563},"Install",{"href":564,"dataGaName":565,"dataGaLocation":397},"/install/","install",{"text":567,"config":568},"Quick start guides",{"href":569,"dataGaName":570,"dataGaLocation":397},"/get-started/","quick setup checklists",{"text":572,"config":573},"Learn",{"href":574,"dataGaLocation":397,"dataGaName":575},"https://university.gitlab.com/","learn",{"text":577,"config":578},"Product documentation",{"href":579,"dataGaName":580,"dataGaLocation":397},"https://docs.gitlab.com/","product documentation",{"text":582,"config":583},"Best practice videos",{"href":584,"dataGaName":585,"dataGaLocation":397},"/getting-started-videos/","best practice videos",{"text":587,"config":588},"Integrations",{"href":589,"dataGaName":590,"dataGaLocation":397},"/integrations/","integrations",{"title":592,"items":593},"Discover",[594,599,604,609,613],{"text":595,"config":596},"Customer success stories",{"href":597,"dataGaName":598,"dataGaLocation":397},"/customers/","customer success stories",{"text":600,"config":601},"Blog",{"href":602,"dataGaName":603,"dataGaLocation":397},"/blog/","blog",{"text":605,"config":606},"Demo Hub",{"href":607,"dataGaName":608,"dataGaLocation":397},"/demo-hub/","demo hub",{"text":610,"config":611},"The Source",{"href":612,"dataGaName":603,"dataGaLocation":397},"/the-source/",{"text":614,"config":615},"Remote",{"href":616,"dataGaName":617,"dataGaLocation":397},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":619,"items":620},"Connect",[621,626,631,636,641,646],{"text":622,"config":623},"GitLab Services",{"href":624,"dataGaName":625,"dataGaLocation":397},"/services/","services",{"text":627,"config":628},"Contribute",{"href":629,"dataGaName":630,"dataGaLocation":397},"https://contributors.gitlab.com","contribute",{"text":632,"config":633},"Community",{"href":634,"dataGaName":635,"dataGaLocation":397},"/community/","community",{"text":637,"config":638},"Forum",{"href":639,"dataGaName":640,"dataGaLocation":397},"https://forum.gitlab.com/","forum",{"text":642,"config":643},"Events",{"href":644,"dataGaName":645,"dataGaLocation":397},"/events/","events",{"text":647,"config":648},"Partners",{"href":649,"dataGaName":650,"dataGaLocation":397},"/partners/","partners",{"config":652,"title":655,"text":656,"link":657},{"background":653,"textColor":654},"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":658,"config":659},"Read the latest",{"href":660,"dataGaName":661,"dataGaLocation":397},"/whats-new/","whats new",{"text":663,"config":664,"menu":666},"Company",{"dataNavLevelOne":665},"company",{"type":448,"columns":667},[668],{"items":669},[670,675,681,683,688,693,698,703,708,713],{"text":671,"config":672},"About",{"href":673,"dataGaName":674,"dataGaLocation":397},"/company/","about",{"text":676,"config":677,"footerGa":680},"Jobs",{"href":678,"dataGaName":679,"dataGaLocation":397},"/jobs/","jobs",{"dataGaName":679},{"text":642,"config":682},{"href":644,"dataGaName":645,"dataGaLocation":397},{"text":684,"config":685},"Leadership",{"href":686,"dataGaName":687,"dataGaLocation":397},"/company/team/e-group/","leadership",{"text":689,"config":690},"Handbook",{"href":691,"dataGaName":692,"dataGaLocation":397},"https://handbook.gitlab.com/","handbook",{"text":694,"config":695},"Investor relations",{"href":696,"dataGaName":697,"dataGaLocation":397},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":699,"config":700},"Trust Center",{"href":701,"dataGaName":702,"dataGaLocation":397},"/security/","trust center",{"text":704,"config":705},"AI Transparency Center",{"href":706,"dataGaName":707,"dataGaLocation":397},"/ai-transparency-center/","ai transparency center",{"text":709,"config":710},"Newsletter",{"href":711,"dataGaName":712,"dataGaLocation":397},"/company/contact/#contact-forms","newsletter",{"text":714,"config":715},"Press",{"href":716,"dataGaName":717,"dataGaLocation":397},"/press/","press",{"text":719,"config":720,"menu":721},"Contact us",{"dataNavLevelOne":665},{"type":448,"columns":722},[723],{"items":724},[725,730,735],{"text":726,"config":727},"Talk to sales",{"href":728,"dataGaName":729,"dataGaLocation":397},"/sales/","talk to sales",{"text":731,"config":732},"Support portal",{"href":733,"dataGaName":734,"dataGaLocation":397},"https://support.gitlab.com/hc/en-us","support portal",{"text":736,"config":737},"Customer portal",{"href":738,"dataGaName":739,"dataGaLocation":397},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":741,"login":742,"suggestions":749},"Close",{"text":743,"link":744},"To search repositories and projects, login to",{"text":745,"config":746},"gitlab.com",{"href":411,"dataGaName":747,"dataGaLocation":748},"search login","search",{"text":750,"default":751},"Suggestions",[752,754,758,760,764,768],{"text":428,"config":753},{"href":433,"dataGaName":428,"dataGaLocation":748},{"text":755,"config":756},"Code Suggestions (AI)",{"href":757,"dataGaName":755,"dataGaLocation":748},"/solutions/code-suggestions/",{"text":464,"config":759},{"href":466,"dataGaName":464,"dataGaLocation":748},{"text":761,"config":762},"GitLab on AWS",{"href":763,"dataGaName":761,"dataGaLocation":748},"/partners/technology-partners/aws/",{"text":765,"config":766},"GitLab on Google Cloud",{"href":767,"dataGaName":765,"dataGaLocation":748},"/partners/technology-partners/google-cloud-platform/",{"text":769,"config":770},"Why GitLab?",{"href":441,"dataGaName":769,"dataGaLocation":748},{"freeTrial":772,"mobileIcon":777,"desktopIcon":782,"secondaryButton":785},{"text":773,"config":774},"Start free trial",{"href":775,"dataGaName":402,"dataGaLocation":776},"https://gitlab.com/-/trials/new/","nav",{"altText":778,"config":779},"Gitlab Icon",{"src":780,"dataGaName":781,"dataGaLocation":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":778,"config":783},{"src":784,"dataGaName":781,"dataGaLocation":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":786,"config":787},"Get Started",{"href":788,"dataGaName":789,"dataGaLocation":776},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":791,"mobileIcon":795,"desktopIcon":797},{"text":792,"config":793},"Learn more about GitLab Duo",{"href":433,"dataGaName":794,"dataGaLocation":776},"gitlab duo",{"altText":778,"config":796},{"src":780,"dataGaName":781,"dataGaLocation":776},{"altText":778,"config":798},{"src":784,"dataGaName":781,"dataGaLocation":776},{"button":800,"mobileIcon":805,"desktopIcon":807},{"text":801,"config":802},"/switch",{"href":803,"dataGaName":804,"dataGaLocation":776},"#contact","switch",{"altText":778,"config":806},{"src":780,"dataGaName":781,"dataGaLocation":776},{"altText":778,"config":808},{"src":809,"dataGaName":781,"dataGaLocation":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":811,"mobileIcon":816,"desktopIcon":818},{"text":812,"config":813},"Back to pricing",{"href":546,"dataGaName":814,"dataGaLocation":776,"icon":815},"back to pricing","GoBack",{"altText":778,"config":817},{"src":780,"dataGaName":781,"dataGaLocation":776},{"altText":778,"config":819},{"src":784,"dataGaName":781,"dataGaLocation":776},{"title":821,"titleMobile":822,"button":823,"config":828},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":439,"config":824},{"href":825,"dataGaName":826,"dataGaLocation":827},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":829,"disabled":375},"release",{"data":831},{"text":832,"source":833,"edit":839,"contribute":844,"config":849,"items":854,"minimal":1063},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":834,"config":835},"View page source",{"href":836,"dataGaName":837,"dataGaLocation":838},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":840,"config":841},"Edit this page",{"href":842,"dataGaName":843,"dataGaLocation":838},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":845,"config":846},"Please contribute",{"href":847,"dataGaName":848,"dataGaLocation":838},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":850,"facebook":851,"youtube":852,"linkedin":853},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[855,902,955,999,1031],{"title":544,"links":856,"subMenu":871},[857,861,866],{"text":858,"config":859},"View plans",{"href":546,"dataGaName":860,"dataGaLocation":838},"view plans",{"text":862,"config":863},"Why Premium?",{"href":864,"dataGaName":865,"dataGaLocation":838},"/pricing/premium/","why premium",{"text":867,"config":868},"Why Ultimate?",{"href":869,"dataGaName":870,"dataGaLocation":838},"/pricing/ultimate/","why ultimate",[872],{"title":873,"links":874},"Contact Us",[875,878,880,882,887,892,897],{"text":876,"config":877},"Contact sales",{"href":728,"dataGaName":407,"dataGaLocation":838},{"text":731,"config":879},{"href":733,"dataGaName":734,"dataGaLocation":838},{"text":736,"config":881},{"href":738,"dataGaName":739,"dataGaLocation":838},{"text":883,"config":884},"Status",{"href":885,"dataGaName":886,"dataGaLocation":838},"https://status.gitlab.com/","status",{"text":888,"config":889},"Terms of use",{"href":890,"dataGaName":891,"dataGaLocation":838},"/terms/","terms of use",{"text":893,"config":894},"Privacy statement",{"href":895,"dataGaName":896,"dataGaLocation":838},"/privacy/","privacy statement",{"text":898,"config":899},"Cookie preferences",{"dataGaName":900,"dataGaLocation":838,"id":901,"isOneTrustButton":378},"cookie preferences","ot-sdk-btn",{"title":444,"links":903,"subMenu":912},[904,908],{"text":905,"config":906},"DevSecOps platform",{"href":426,"dataGaName":907,"dataGaLocation":838},"devsecops platform",{"text":909,"config":910},"AI-Assisted Development",{"href":433,"dataGaName":911,"dataGaLocation":838},"ai-assisted development",[913],{"title":914,"links":915},"Topics",[916,921,926,930,935,940,945,950],{"text":917,"config":918},"CICD",{"href":919,"dataGaName":920,"dataGaLocation":838},"/topics/ci-cd/","cicd",{"text":922,"config":923},"GitOps",{"href":924,"dataGaName":925,"dataGaLocation":838},"/topics/gitops/","gitops",{"text":389,"config":927},{"href":928,"dataGaName":929,"dataGaLocation":838},"/topics/devops/","devops",{"text":931,"config":932},"Version Control",{"href":933,"dataGaName":934,"dataGaLocation":838},"/topics/version-control/","version control",{"text":936,"config":937},"DevSecOps",{"href":938,"dataGaName":939,"dataGaLocation":838},"/topics/devsecops/","devsecops",{"text":941,"config":942},"Cloud Native",{"href":943,"dataGaName":944,"dataGaLocation":838},"/topics/cloud-native/","cloud native",{"text":946,"config":947},"AI for Coding",{"href":948,"dataGaName":949,"dataGaLocation":838},"/topics/devops/ai-for-coding/","ai for coding",{"text":951,"config":952},"Agentic AI",{"href":953,"dataGaName":954,"dataGaLocation":838},"/topics/agentic-ai/","agentic ai",{"title":956,"links":957},"Solutions",[958,960,962,967,971,974,978,981,983,986,989,994],{"text":488,"config":959},{"href":483,"dataGaName":488,"dataGaLocation":838},{"text":477,"config":961},{"href":460,"dataGaName":461,"dataGaLocation":838},{"text":963,"config":964},"Agile development",{"href":965,"dataGaName":966,"dataGaLocation":838},"/solutions/agile-delivery/","agile delivery",{"text":968,"config":969},"SCM",{"href":473,"dataGaName":970,"dataGaLocation":838},"source code management",{"text":917,"config":972},{"href":466,"dataGaName":973,"dataGaLocation":838},"continuous integration & delivery",{"text":975,"config":976},"Value stream management",{"href":516,"dataGaName":977,"dataGaLocation":838},"value stream management",{"text":922,"config":979},{"href":980,"dataGaName":925,"dataGaLocation":838},"/solutions/gitops/",{"text":526,"config":982},{"href":529,"dataGaName":530,"dataGaLocation":838},{"text":984,"config":985},"Small business",{"href":535,"dataGaName":536,"dataGaLocation":838},{"text":987,"config":988},"Public sector",{"href":541,"dataGaName":542,"dataGaLocation":838},{"text":990,"config":991},"Education",{"href":992,"dataGaName":993,"dataGaLocation":838},"/solutions/education/","education",{"text":995,"config":996},"Financial services",{"href":997,"dataGaName":998,"dataGaLocation":838},"/solutions/finance/","financial services",{"title":549,"links":1000},[1001,1003,1005,1007,1010,1012,1015,1017,1019,1021,1023,1025,1027,1029],{"text":562,"config":1002},{"href":564,"dataGaName":565,"dataGaLocation":838},{"text":567,"config":1004},{"href":569,"dataGaName":570,"dataGaLocation":838},{"text":572,"config":1006},{"href":574,"dataGaName":575,"dataGaLocation":838},{"text":577,"config":1008},{"href":579,"dataGaName":1009,"dataGaLocation":838},"docs",{"text":600,"config":1011},{"href":602,"dataGaName":603,"dataGaLocation":838},{"text":1013,"config":1014},"What's new",{"href":660,"dataGaName":661,"dataGaLocation":838},{"text":595,"config":1016},{"href":597,"dataGaName":598,"dataGaLocation":838},{"text":614,"config":1018},{"href":616,"dataGaName":617,"dataGaLocation":838},{"text":622,"config":1020},{"href":624,"dataGaName":625,"dataGaLocation":838},{"text":627,"config":1022},{"href":629,"dataGaName":630,"dataGaLocation":838},{"text":632,"config":1024},{"href":634,"dataGaName":635,"dataGaLocation":838},{"text":637,"config":1026},{"href":639,"dataGaName":640,"dataGaLocation":838},{"text":642,"config":1028},{"href":644,"dataGaName":645,"dataGaLocation":838},{"text":647,"config":1030},{"href":649,"dataGaName":650,"dataGaLocation":838},{"title":663,"links":1032},[1033,1035,1037,1039,1041,1043,1047,1052,1054,1056,1058],{"text":671,"config":1034},{"href":673,"dataGaName":665,"dataGaLocation":838},{"text":676,"config":1036},{"href":678,"dataGaName":679,"dataGaLocation":838},{"text":684,"config":1038},{"href":686,"dataGaName":687,"dataGaLocation":838},{"text":689,"config":1040},{"href":691,"dataGaName":692,"dataGaLocation":838},{"text":694,"config":1042},{"href":696,"dataGaName":697,"dataGaLocation":838},{"text":1044,"config":1045},"Sustainability",{"href":1046,"dataGaName":1044,"dataGaLocation":838},"/sustainability/",{"text":1048,"config":1049},"Diversity, inclusion and belonging (DIB)",{"href":1050,"dataGaName":1051,"dataGaLocation":838},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":699,"config":1053},{"href":701,"dataGaName":702,"dataGaLocation":838},{"text":709,"config":1055},{"href":711,"dataGaName":712,"dataGaLocation":838},{"text":714,"config":1057},{"href":716,"dataGaName":717,"dataGaLocation":838},{"text":1059,"config":1060},"Modern Slavery Transparency Statement",{"href":1061,"dataGaName":1062,"dataGaLocation":838},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1064},[1065,1068,1071],{"text":1066,"config":1067},"Terms",{"href":890,"dataGaName":891,"dataGaLocation":838},{"text":1069,"config":1070},"Cookies",{"dataGaName":900,"dataGaLocation":838,"id":901,"isOneTrustButton":378},{"text":1072,"config":1073},"Privacy",{"href":895,"dataGaName":896,"dataGaLocation":838},[1075],{"id":1076,"title":7,"body":374,"config":1077,"content":1079,"description":374,"extension":1083,"meta":1084,"navigation":378,"path":1085,"seo":1086,"stem":1087,"__hash__":1088},"blogAuthors/en-us/blog/authors/suri-patel.yml",{"template":1078},"BlogAuthor",{"name":7,"config":1080},{"headshot":1081,"ctfId":1082},"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",[1090,1098,1106],{"title":1091,"description":1092,"heroImage":1093,"category":370,"date":1094,"authors":1095,"slug":1097,"externalUrl":374},"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",[1096],"Ashley Knobloch","navigation-research-blog-post",{"title":1099,"description":1100,"heroImage":1101,"category":370,"date":1102,"authors":1103,"slug":1105,"externalUrl":374},"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",[1104],"Veethika Mishra","beautifying-of-our-ui",{"title":1107,"description":1108,"heroImage":1109,"category":370,"date":1110,"authors":1111,"slug":1113,"externalUrl":374},"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",[1112],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":1115},[1116,1130,1142,1154],{"id":1117,"categories":1118,"header":1120,"text":1121,"button":1122,"image":1127},"ai-modernization",[1119],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1123,"config":1124},"Get your AI maturity score",{"href":1125,"dataGaName":1126,"dataGaLocation":603},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1128},{"src":1129},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1131,"categories":1132,"header":1134,"text":1121,"button":1135,"image":1139},"devops-modernization",[1133,939],"product","Are you just managing tools or shipping innovation?",{"text":1136,"config":1137},"Get your DevOps maturity score",{"href":1138,"dataGaName":1126,"dataGaLocation":603},"/assessments/devops-modernization-assessment/",{"config":1140},{"src":1141},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1143,"categories":1144,"header":1146,"text":1121,"button":1147,"image":1151},"security-modernization",[1145],"security","Are you trading speed for security?",{"text":1148,"config":1149},"Get your security maturity score",{"href":1150,"dataGaName":1126,"dataGaLocation":603},"/assessments/security-modernization-assessment/",{"config":1152},{"src":1153},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1155,"paths":1156,"header":1159,"text":1160,"button":1161,"image":1166},"github-azure-migration",[1157,1158],"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":1162,"config":1163},"See how GitLab compares to GitHub",{"href":1164,"dataGaName":1165,"dataGaLocation":603},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1167},{"src":1141},{"header":1169,"blurb":1170,"button":1171,"secondaryButton":1176},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1172,"config":1173},"Get your free trial",{"href":1174,"dataGaName":402,"dataGaLocation":1175},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":876,"config":1177},{"href":728,"dataGaName":407,"dataGaLocation":1175},1786803731223]