[{"data":1,"prerenderedAt":947},["ShallowReactive",2],{"/blog/collaborating-on-a-cross-stage-feature":3,"navigation-en-us":161,"banner-en-us":589,"footer-en-us":599,"blog-post-authors-en-us-Aakriti Gupta":844,"blog-related-posts-en-us-collaborating-on-a-cross-stage-feature":859,"blog-promotions-en-us":883,"next-steps-en-us":937},{"id":4,"title":5,"authors":6,"body":8,"category":137,"date":138,"description":139,"extension":140,"externalUrl":141,"faq":141,"featured":142,"heroImage":143,"meta":144,"navigation":145,"path":146,"seo":147,"slug":151,"stem":152,"tags":153,"template":159,"updatedDate":141,"__hash__":160},"blogPosts/en-us/blog/collaborating-on-a-cross-stage-feature.md","How we tested a feature that affected (almost) all parts of GitLab",[7],"Aakriti Gupta",{"type":9,"value":10,"toc":131},"minimark",[11,22,25,30,33,36,39,48,51,54,57,60,64,71,80,86,89,95,98,104,107,113,122,128],[12,13,14,15,21],"p",{},"In 13.9 Team Geo ",[16,17,20],"a",{"href":18,"rel":19},"https://docs.gitlab.com/releases/#maintenance-mode",[],"released Maintenance Mode",", which was a large, cross stage and cross team project, a few milestones in the making.",[12,23,24],{},"This feature allows system administrators to put GitLab in a read-only mode. All parts of the system are affected and testing such a wide scope was challenging.",[26,27,29],"h2",{"id":28},"why-was-testing-this-feature-hard","Why was testing this feature hard?",[12,31,32],{},"As we started testing with the QA team, it was clear that no one individual or team could know enough about the entire product to design a comprehensive QA plan. The more we tested, the more features we found to test - it was soon becoming an impossibly long list of tests to write for our small team.",[12,34,35],{},"We needed to prioritize manually testing the most important features, and save working on automated tests for another iteration.",[12,37,38],{},"But, what were the most important things to test?",[12,40,41,42,47],{},"This is where we decided to crowd-source testing. ",[16,43,46],{"href":44,"rel":45},"https://gitlab.com/dashboard/issues?scope=all&utf8=%E2%9C%93&state=closed&author_username=aakriti.gupta&search=crowd-sourced+maintenance+mode+testing",[],"We rolled-out discussion issues"," to each of the 13 stages and asked them to contribute the three most important features that they own, that we should prioritise testing.",[12,49,50],{},"We used these issues to share knowledge of maintenance mode, and responsibility of its development, testing and documentation.",[12,52,53],{},"The response was overwhelming!",[12,55,56],{},"Product managers and engineers from across the development department contributed to our list of tests and collaboratively reviewed and improved documentation. They proactively asked how their features would behave and in some cases, even started MRs to fix the documentation.",[12,58,59],{},"The conversations helped us hone our plan for future iterations of this feature.",[26,61,63],{"id":62},"what-we-learned","What we learned",[12,65,66,67],{},"1. ",[68,69,70],"strong",{},"Test iteratively and collaboratively",[12,72,73,74,79],{},"Get QA and developer teams working together early, instead of after development is almost done, or worse - after release. GitLab's Quad planning process was introduced last year to foster better collaboration between Quality, Development, UX, and Product teams. As ",[16,75,78],{"href":76,"rel":77},"https://gitlab.com/jennielouie",[],"Jennie from QA"," chalked out a plan for QA together with developers, she found a few edge cases that would have otherwise been discovered too late.",[12,81,82,83],{},"2. ",[68,84,85],{},"Don’t hesitate to ask other teams to contribute",[12,87,88],{},"When we rolled out a dozen plus issues to all development teams, we were not sure if we’d get even a few responses, but we were overwhelmed with the interest, response and active participation that came from all the teams.",[12,90,91,92],{},"3. ",[68,93,94],{},"Communicate well",[12,96,97],{},"Give people enough and succinct information. When requesting help from other teams, help them prioritize the request by explaining the why.",[12,99,100,101],{},"4. ",[68,102,103],{},"Documentation as a form of developer communication",[12,105,106],{},"As we worked through large documentation MRs, I realized the documentation was not only important for system administrators, but for developers of GitLab as well. Developers wanted to know how maintenance mode affected their features.",[12,108,109,110],{},"5. ",[68,111,112],{},"Iterate",[12,114,115,116,121],{},"Keep the discussions short-lived and focused on the most important aspects. Do not draw out the conversations too long, and move pending conversations over to follow-up issues.\nAs we learned of new test cases, ",[16,117,120],{"href":118,"rel":119},"https://gitlab.com/nwestbury",[],"Nick from QA"," and I created follow-up test issues to resolve together with DRIs.",[12,123,124,125],{},"6. ",[68,126,127],{},"The more, the merrier",[12,129,130],{},"While the discussions started only with Engineering Managers and Product Managers, they often invited engineers in their conversations and this brought more eyes to the project and helped us answer a lot of unknowns.",{"title":132,"searchDepth":133,"depth":133,"links":134},"",2,[135,136],{"id":28,"depth":133,"text":29},{"id":62,"depth":133,"text":63},"unfiltered","2021-03-17","Crowd-sourcing testing across teams","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677856/Blog/Hero%20Images/collaboration.png",{},true,"/en-us/blog/collaborating-on-a-cross-stage-feature",{"title":5,"description":139,"ogTitle":5,"ogDescription":139,"noIndex":142,"ogImage":143,"ogUrl":148,"ogSiteName":149,"ogType":150,"canonicalUrls":148},"https://about.gitlab.com/blog/collaborating-on-a-cross-stage-feature","https://about.gitlab.com","article","collaborating-on-a-cross-stage-feature","en-us/blog/collaborating-on-a-cross-stage-feature",[154,155,156,157,158],"collaboration","inside GitLab","remote work","testing","workflow","BlogPost","pr9i6LuH9fXlRi75SnepYOQbogGFOqf0eicEdY2Ryhg",{"logo":162,"freeTrial":167,"sales":172,"login":177,"items":182,"search":509,"minimal":540,"duo":559,"switchNav":568,"pricingDeployment":579},{"config":163},{"href":164,"dataGaName":165,"dataGaLocation":166},"/","gitlab logo","header",{"text":168,"config":169},"Get free trial",{"href":170,"dataGaName":171,"dataGaLocation":166},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":173,"config":174},"Request a demo",{"href":175,"dataGaName":176,"dataGaLocation":166},"/sales/?contact-topic=request-demo","sales",{"text":178,"config":179},"Sign in",{"href":180,"dataGaName":181,"dataGaLocation":166},"https://gitlab.com/users/sign_in/","sign in",[183,212,312,317,431,487],{"text":184,"config":185,"menu":187},"Platform",{"dataNavLevelOne":186},"platform",{"type":188,"columns":189},"cards",[190,196,204],{"title":184,"description":191,"link":192},"The intelligent orchestration platform for DevSecOps",{"text":193,"config":194},"Explore our Platform",{"href":195,"dataGaName":186,"dataGaLocation":166},"/platform/",{"title":197,"description":198,"link":199},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":200,"config":201},"Meet GitLab Duo",{"href":202,"dataGaName":203,"dataGaLocation":166},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":205,"description":206,"link":207},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":208,"config":209},"Learn more",{"href":210,"dataGaName":211,"dataGaLocation":166},"/why-gitlab/","why gitlab",{"text":213,"left":145,"config":214,"menu":216},"Product",{"dataNavLevelOne":215},"solutions",{"type":217,"link":218,"columns":222,"feature":291},"lists",{"text":219,"config":220},"View all Solutions",{"href":221,"dataGaName":215,"dataGaLocation":166},"/solutions/",[223,247,270],{"title":224,"description":225,"link":226,"items":231},"Automation","CI/CD and automation to accelerate deployment",{"config":227},{"icon":228,"href":229,"dataGaName":230,"dataGaLocation":166},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[232,236,239,243],{"text":233,"config":234},"CI/CD",{"href":235,"dataGaLocation":166,"dataGaName":233},"/solutions/continuous-integration/",{"text":197,"config":237},{"href":202,"dataGaLocation":166,"dataGaName":238},"gitlab duo agent platform - product menu",{"text":240,"config":241},"Source Code Management",{"href":242,"dataGaLocation":166,"dataGaName":240},"/solutions/source-code-management/",{"text":244,"config":245},"Automated Software Delivery",{"href":229,"dataGaLocation":166,"dataGaName":246},"Automated software delivery",{"title":248,"description":249,"link":250,"items":255},"Security","Deliver code faster without compromising security",{"config":251},{"href":252,"dataGaName":253,"dataGaLocation":166,"icon":254},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[256,260,265],{"text":257,"config":258},"Application Security Testing",{"href":252,"dataGaName":259,"dataGaLocation":166},"Application security testing",{"text":261,"config":262},"Software Supply Chain Security",{"href":263,"dataGaLocation":166,"dataGaName":264},"/solutions/supply-chain/","Software supply chain security",{"text":266,"config":267},"Software Compliance",{"href":268,"dataGaName":269,"dataGaLocation":166},"/solutions/software-compliance/","software compliance",{"title":271,"link":272,"items":277},"Measurement",{"config":273},{"icon":274,"href":275,"dataGaName":276,"dataGaLocation":166},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[278,282,286],{"text":279,"config":280},"Visibility & Measurement",{"href":275,"dataGaLocation":166,"dataGaName":281},"Visibility and Measurement",{"text":283,"config":284},"Value Stream Management",{"href":285,"dataGaLocation":166,"dataGaName":283},"/solutions/value-stream-management/",{"text":287,"config":288},"Analytics & Insights",{"href":289,"dataGaLocation":166,"dataGaName":290},"/solutions/analytics-and-insights/","Analytics and insights",{"title":292,"type":217,"items":293},"GitLab for",[294,300,306],{"text":295,"config":296},"Enterprise",{"icon":297,"href":298,"dataGaLocation":166,"dataGaName":299},"Building","/enterprise/","enterprise",{"text":301,"config":302},"Small Business",{"icon":303,"href":304,"dataGaLocation":166,"dataGaName":305},"Work","/small-business/","small business",{"text":307,"config":308},"Public Sector",{"icon":309,"href":310,"dataGaLocation":166,"dataGaName":311},"Organization","/solutions/public-sector/","public sector",{"text":313,"config":314},"Pricing",{"href":315,"dataGaName":316,"dataGaLocation":166,"dataNavLevelOne":316},"/pricing/","pricing",{"text":318,"config":319,"menu":321},"Resources",{"dataNavLevelOne":320},"resources",{"type":217,"link":322,"columns":326,"feature":420},{"text":323,"config":324},"View all resources",{"href":325,"dataGaName":320,"dataGaLocation":166},"/resources/",[327,360,387],{"title":328,"items":329},"Getting started",[330,335,340,345,350,355],{"text":331,"config":332},"Install",{"href":333,"dataGaName":334,"dataGaLocation":166},"/install/","install",{"text":336,"config":337},"Quick start guides",{"href":338,"dataGaName":339,"dataGaLocation":166},"/get-started/","quick setup checklists",{"text":341,"config":342},"Learn",{"href":343,"dataGaLocation":166,"dataGaName":344},"https://university.gitlab.com/","learn",{"text":346,"config":347},"Product documentation",{"href":348,"dataGaName":349,"dataGaLocation":166},"https://docs.gitlab.com/","product documentation",{"text":351,"config":352},"Best practice videos",{"href":353,"dataGaName":354,"dataGaLocation":166},"/getting-started-videos/","best practice videos",{"text":356,"config":357},"Integrations",{"href":358,"dataGaName":359,"dataGaLocation":166},"/integrations/","integrations",{"title":361,"items":362},"Discover",[363,368,373,378,382],{"text":364,"config":365},"Customer success stories",{"href":366,"dataGaName":367,"dataGaLocation":166},"/customers/","customer success stories",{"text":369,"config":370},"Blog",{"href":371,"dataGaName":372,"dataGaLocation":166},"/blog/","blog",{"text":374,"config":375},"Demo Hub",{"href":376,"dataGaName":377,"dataGaLocation":166},"/demo-hub/","demo hub",{"text":379,"config":380},"The Source",{"href":381,"dataGaName":372,"dataGaLocation":166},"/the-source/",{"text":383,"config":384},"Remote",{"href":385,"dataGaName":386,"dataGaLocation":166},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":388,"items":389},"Connect",[390,395,400,405,410,415],{"text":391,"config":392},"GitLab Services",{"href":393,"dataGaName":394,"dataGaLocation":166},"/services/","services",{"text":396,"config":397},"Contribute",{"href":398,"dataGaName":399,"dataGaLocation":166},"https://contributors.gitlab.com","contribute",{"text":401,"config":402},"Community",{"href":403,"dataGaName":404,"dataGaLocation":166},"/community/","community",{"text":406,"config":407},"Forum",{"href":408,"dataGaName":409,"dataGaLocation":166},"https://forum.gitlab.com/","forum",{"text":411,"config":412},"Events",{"href":413,"dataGaName":414,"dataGaLocation":166},"/events/","events",{"text":416,"config":417},"Partners",{"href":418,"dataGaName":419,"dataGaLocation":166},"/partners/","partners",{"config":421,"title":424,"text":425,"link":426},{"background":422,"textColor":423},"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":427,"config":428},"Read the latest",{"href":429,"dataGaName":430,"dataGaLocation":166},"/whats-new/","whats new",{"text":432,"config":433,"menu":435},"Company",{"dataNavLevelOne":434},"company",{"type":217,"columns":436},[437],{"items":438},[439,444,450,452,457,462,467,472,477,482],{"text":440,"config":441},"About",{"href":442,"dataGaName":443,"dataGaLocation":166},"/company/","about",{"text":445,"config":446,"footerGa":449},"Jobs",{"href":447,"dataGaName":448,"dataGaLocation":166},"/jobs/","jobs",{"dataGaName":448},{"text":411,"config":451},{"href":413,"dataGaName":414,"dataGaLocation":166},{"text":453,"config":454},"Leadership",{"href":455,"dataGaName":456,"dataGaLocation":166},"/company/team/e-group/","leadership",{"text":458,"config":459},"Handbook",{"href":460,"dataGaName":461,"dataGaLocation":166},"https://handbook.gitlab.com/","handbook",{"text":463,"config":464},"Investor relations",{"href":465,"dataGaName":466,"dataGaLocation":166},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":468,"config":469},"Trust Center",{"href":470,"dataGaName":471,"dataGaLocation":166},"/security/","trust center",{"text":473,"config":474},"AI Transparency Center",{"href":475,"dataGaName":476,"dataGaLocation":166},"/ai-transparency-center/","ai transparency center",{"text":478,"config":479},"Newsletter",{"href":480,"dataGaName":481,"dataGaLocation":166},"/company/contact/#contact-forms","newsletter",{"text":483,"config":484},"Press",{"href":485,"dataGaName":486,"dataGaLocation":166},"/press/","press",{"text":488,"config":489,"menu":490},"Contact us",{"dataNavLevelOne":434},{"type":217,"columns":491},[492],{"items":493},[494,499,504],{"text":495,"config":496},"Talk to sales",{"href":497,"dataGaName":498,"dataGaLocation":166},"/sales/","talk to sales",{"text":500,"config":501},"Support portal",{"href":502,"dataGaName":503,"dataGaLocation":166},"https://support.gitlab.com/hc/en-us","support portal",{"text":505,"config":506},"Customer portal",{"href":507,"dataGaName":508,"dataGaLocation":166},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":510,"login":511,"suggestions":518},"Close",{"text":512,"link":513},"To search repositories and projects, login to",{"text":514,"config":515},"gitlab.com",{"href":180,"dataGaName":516,"dataGaLocation":517},"search login","search",{"text":519,"default":520},"Suggestions",[521,523,527,529,533,537],{"text":197,"config":522},{"href":202,"dataGaName":197,"dataGaLocation":517},{"text":524,"config":525},"Code Suggestions (AI)",{"href":526,"dataGaName":524,"dataGaLocation":517},"/solutions/code-suggestions/",{"text":233,"config":528},{"href":235,"dataGaName":233,"dataGaLocation":517},{"text":530,"config":531},"GitLab on AWS",{"href":532,"dataGaName":530,"dataGaLocation":517},"/partners/technology-partners/aws/",{"text":534,"config":535},"GitLab on Google Cloud",{"href":536,"dataGaName":534,"dataGaLocation":517},"/partners/technology-partners/google-cloud-platform/",{"text":538,"config":539},"Why GitLab?",{"href":210,"dataGaName":538,"dataGaLocation":517},{"freeTrial":541,"mobileIcon":546,"desktopIcon":551,"secondaryButton":554},{"text":542,"config":543},"Start free trial",{"href":544,"dataGaName":171,"dataGaLocation":545},"https://gitlab.com/-/trials/new/","nav",{"altText":547,"config":548},"Gitlab Icon",{"src":549,"dataGaName":550,"dataGaLocation":545},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":547,"config":552},{"src":553,"dataGaName":550,"dataGaLocation":545},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":555,"config":556},"Get Started",{"href":557,"dataGaName":558,"dataGaLocation":545},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":560,"mobileIcon":564,"desktopIcon":566},{"text":561,"config":562},"Learn more about GitLab Duo",{"href":202,"dataGaName":563,"dataGaLocation":545},"gitlab duo",{"altText":547,"config":565},{"src":549,"dataGaName":550,"dataGaLocation":545},{"altText":547,"config":567},{"src":553,"dataGaName":550,"dataGaLocation":545},{"button":569,"mobileIcon":574,"desktopIcon":576},{"text":570,"config":571},"/switch",{"href":572,"dataGaName":573,"dataGaLocation":545},"#contact","switch",{"altText":547,"config":575},{"src":549,"dataGaName":550,"dataGaLocation":545},{"altText":547,"config":577},{"src":578,"dataGaName":550,"dataGaLocation":545},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":580,"mobileIcon":585,"desktopIcon":587},{"text":581,"config":582},"Back to pricing",{"href":315,"dataGaName":583,"dataGaLocation":545,"icon":584},"back to pricing","GoBack",{"altText":547,"config":586},{"src":549,"dataGaName":550,"dataGaLocation":545},{"altText":547,"config":588},{"src":553,"dataGaName":550,"dataGaLocation":545},{"title":590,"titleMobile":591,"button":592,"config":597},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":208,"config":593},{"href":594,"dataGaName":595,"dataGaLocation":596},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":598,"disabled":142},"release",{"data":600},{"text":601,"source":602,"edit":608,"contribute":613,"config":618,"items":623,"minimal":833},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":603,"config":604},"View page source",{"href":605,"dataGaName":606,"dataGaLocation":607},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":609,"config":610},"Edit this page",{"href":611,"dataGaName":612,"dataGaLocation":607},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":614,"config":615},"Please contribute",{"href":616,"dataGaName":617,"dataGaLocation":607},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":619,"facebook":620,"youtube":621,"linkedin":622},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[624,671,725,769,801],{"title":313,"links":625,"subMenu":640},[626,630,635],{"text":627,"config":628},"View plans",{"href":315,"dataGaName":629,"dataGaLocation":607},"view plans",{"text":631,"config":632},"Why Premium?",{"href":633,"dataGaName":634,"dataGaLocation":607},"/pricing/premium/","why premium",{"text":636,"config":637},"Why Ultimate?",{"href":638,"dataGaName":639,"dataGaLocation":607},"/pricing/ultimate/","why ultimate",[641],{"title":642,"links":643},"Contact Us",[644,647,649,651,656,661,666],{"text":645,"config":646},"Contact sales",{"href":497,"dataGaName":176,"dataGaLocation":607},{"text":500,"config":648},{"href":502,"dataGaName":503,"dataGaLocation":607},{"text":505,"config":650},{"href":507,"dataGaName":508,"dataGaLocation":607},{"text":652,"config":653},"Status",{"href":654,"dataGaName":655,"dataGaLocation":607},"https://status.gitlab.com/","status",{"text":657,"config":658},"Terms of use",{"href":659,"dataGaName":660,"dataGaLocation":607},"/terms/","terms of use",{"text":662,"config":663},"Privacy statement",{"href":664,"dataGaName":665,"dataGaLocation":607},"/privacy/","privacy statement",{"text":667,"config":668},"Cookie preferences",{"dataGaName":669,"dataGaLocation":607,"id":670,"isOneTrustButton":145},"cookie preferences","ot-sdk-btn",{"title":213,"links":672,"subMenu":681},[673,677],{"text":674,"config":675},"DevSecOps platform",{"href":195,"dataGaName":676,"dataGaLocation":607},"devsecops platform",{"text":678,"config":679},"AI-Assisted Development",{"href":202,"dataGaName":680,"dataGaLocation":607},"ai-assisted development",[682],{"title":683,"links":684},"Topics",[685,690,695,700,705,710,715,720],{"text":686,"config":687},"CICD",{"href":688,"dataGaName":689,"dataGaLocation":607},"/topics/ci-cd/","cicd",{"text":691,"config":692},"GitOps",{"href":693,"dataGaName":694,"dataGaLocation":607},"/topics/gitops/","gitops",{"text":696,"config":697},"DevOps",{"href":698,"dataGaName":699,"dataGaLocation":607},"/topics/devops/","devops",{"text":701,"config":702},"Version Control",{"href":703,"dataGaName":704,"dataGaLocation":607},"/topics/version-control/","version control",{"text":706,"config":707},"DevSecOps",{"href":708,"dataGaName":709,"dataGaLocation":607},"/topics/devsecops/","devsecops",{"text":711,"config":712},"Cloud Native",{"href":713,"dataGaName":714,"dataGaLocation":607},"/topics/cloud-native/","cloud native",{"text":716,"config":717},"AI for Coding",{"href":718,"dataGaName":719,"dataGaLocation":607},"/topics/devops/ai-for-coding/","ai for coding",{"text":721,"config":722},"Agentic AI",{"href":723,"dataGaName":724,"dataGaLocation":607},"/topics/agentic-ai/","agentic ai",{"title":726,"links":727},"Solutions",[728,730,732,737,741,744,748,751,753,756,759,764],{"text":257,"config":729},{"href":252,"dataGaName":257,"dataGaLocation":607},{"text":246,"config":731},{"href":229,"dataGaName":230,"dataGaLocation":607},{"text":733,"config":734},"Agile development",{"href":735,"dataGaName":736,"dataGaLocation":607},"/solutions/agile-delivery/","agile delivery",{"text":738,"config":739},"SCM",{"href":242,"dataGaName":740,"dataGaLocation":607},"source code management",{"text":686,"config":742},{"href":235,"dataGaName":743,"dataGaLocation":607},"continuous integration & delivery",{"text":745,"config":746},"Value stream management",{"href":285,"dataGaName":747,"dataGaLocation":607},"value stream management",{"text":691,"config":749},{"href":750,"dataGaName":694,"dataGaLocation":607},"/solutions/gitops/",{"text":295,"config":752},{"href":298,"dataGaName":299,"dataGaLocation":607},{"text":754,"config":755},"Small business",{"href":304,"dataGaName":305,"dataGaLocation":607},{"text":757,"config":758},"Public sector",{"href":310,"dataGaName":311,"dataGaLocation":607},{"text":760,"config":761},"Education",{"href":762,"dataGaName":763,"dataGaLocation":607},"/solutions/education/","education",{"text":765,"config":766},"Financial services",{"href":767,"dataGaName":768,"dataGaLocation":607},"/solutions/finance/","financial services",{"title":318,"links":770},[771,773,775,777,780,782,785,787,789,791,793,795,797,799],{"text":331,"config":772},{"href":333,"dataGaName":334,"dataGaLocation":607},{"text":336,"config":774},{"href":338,"dataGaName":339,"dataGaLocation":607},{"text":341,"config":776},{"href":343,"dataGaName":344,"dataGaLocation":607},{"text":346,"config":778},{"href":348,"dataGaName":779,"dataGaLocation":607},"docs",{"text":369,"config":781},{"href":371,"dataGaName":372,"dataGaLocation":607},{"text":783,"config":784},"What's new",{"href":429,"dataGaName":430,"dataGaLocation":607},{"text":364,"config":786},{"href":366,"dataGaName":367,"dataGaLocation":607},{"text":383,"config":788},{"href":385,"dataGaName":386,"dataGaLocation":607},{"text":391,"config":790},{"href":393,"dataGaName":394,"dataGaLocation":607},{"text":396,"config":792},{"href":398,"dataGaName":399,"dataGaLocation":607},{"text":401,"config":794},{"href":403,"dataGaName":404,"dataGaLocation":607},{"text":406,"config":796},{"href":408,"dataGaName":409,"dataGaLocation":607},{"text":411,"config":798},{"href":413,"dataGaName":414,"dataGaLocation":607},{"text":416,"config":800},{"href":418,"dataGaName":419,"dataGaLocation":607},{"title":432,"links":802},[803,805,807,809,811,813,817,822,824,826,828],{"text":440,"config":804},{"href":442,"dataGaName":434,"dataGaLocation":607},{"text":445,"config":806},{"href":447,"dataGaName":448,"dataGaLocation":607},{"text":453,"config":808},{"href":455,"dataGaName":456,"dataGaLocation":607},{"text":458,"config":810},{"href":460,"dataGaName":461,"dataGaLocation":607},{"text":463,"config":812},{"href":465,"dataGaName":466,"dataGaLocation":607},{"text":814,"config":815},"Sustainability",{"href":816,"dataGaName":814,"dataGaLocation":607},"/sustainability/",{"text":818,"config":819},"Diversity, inclusion and belonging (DIB)",{"href":820,"dataGaName":821,"dataGaLocation":607},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":468,"config":823},{"href":470,"dataGaName":471,"dataGaLocation":607},{"text":478,"config":825},{"href":480,"dataGaName":481,"dataGaLocation":607},{"text":483,"config":827},{"href":485,"dataGaName":486,"dataGaLocation":607},{"text":829,"config":830},"Modern Slavery Transparency Statement",{"href":831,"dataGaName":832,"dataGaLocation":607},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":834},[835,838,841],{"text":836,"config":837},"Terms",{"href":659,"dataGaName":660,"dataGaLocation":607},{"text":839,"config":840},"Cookies",{"dataGaName":669,"dataGaLocation":607,"id":670,"isOneTrustButton":145},{"text":842,"config":843},"Privacy",{"href":664,"dataGaName":665,"dataGaLocation":607},[845],{"id":846,"title":7,"body":141,"config":847,"content":849,"description":141,"extension":853,"meta":854,"navigation":145,"path":855,"seo":856,"stem":857,"__hash__":858},"blogAuthors/en-us/blog/authors/aakriti-gupta.yml",{"template":848},"BlogAuthor",{"name":7,"config":850},{"headshot":851,"ctfId":852},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681960/Blog/Author%20Headshots/aakriti.jpg","aakritigupta","yml",{},"/en-us/blog/authors/aakriti-gupta",{},"en-us/blog/authors/aakriti-gupta","rqXMw0EOY0z2C_MuDiZeOVcI1EFk5WXgr0mp5CuhqG4",[860,868,876],{"title":861,"description":862,"heroImage":863,"category":137,"date":864,"authors":865,"slug":867,"externalUrl":141},"CEO Shadow Takeaways from Jacie","Recap of my experience in the CEO Shadow Program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","2021-05-18",[866],"Jacie Bandur","ceo-shadow-recap",{"title":869,"description":870,"heroImage":871,"category":137,"date":872,"authors":873,"slug":875,"externalUrl":141},"Why I love contributing to GitLab","Making small meaningful changes is what it's all about.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679501/Blog/Hero%20Images/new-feature.png","2021-05-11",[874],"Austin Regnery","why-i-love-contributing-to-gitlab",{"title":877,"description":878,"heroImage":879,"category":137,"date":872,"authors":880,"slug":882,"externalUrl":141},"Placebo Lines on the Pipeline Graph","Have you noticed the connecting lines missing on your pipelines lately? Here's why","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679507/Blog/Hero%20Images/ci-cd.png",[881],"Sam Beckham","placebo-lines-on-the-pipeline-graph",{"promotions":884},[885,899,911,923],{"id":886,"categories":887,"header":889,"text":890,"button":891,"image":896},"ai-modernization",[888],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":892,"config":893},"Get your AI maturity score",{"href":894,"dataGaName":895,"dataGaLocation":372},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":897},{"src":898},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":900,"categories":901,"header":903,"text":890,"button":904,"image":908},"devops-modernization",[902,709],"product","Are you just managing tools or shipping innovation?",{"text":905,"config":906},"Get your DevOps maturity score",{"href":907,"dataGaName":895,"dataGaLocation":372},"/assessments/devops-modernization-assessment/",{"config":909},{"src":910},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":912,"categories":913,"header":915,"text":890,"button":916,"image":920},"security-modernization",[914],"security","Are you trading speed for security?",{"text":917,"config":918},"Get your security maturity score",{"href":919,"dataGaName":895,"dataGaLocation":372},"/assessments/security-modernization-assessment/",{"config":921},{"src":922},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":924,"paths":925,"header":928,"text":929,"button":930,"image":935},"github-azure-migration",[926,927],"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":931,"config":932},"See how GitLab compares to GitHub",{"href":933,"dataGaName":934,"dataGaLocation":372},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":936},{"src":910},{"header":938,"blurb":939,"button":940,"secondaryButton":945},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":941,"config":942},"Get your free trial",{"href":943,"dataGaName":171,"dataGaLocation":944},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":645,"config":946},{"href":497,"dataGaName":176,"dataGaLocation":944},1786803765616]