[{"data":1,"prerenderedAt":1192},["ShallowReactive",2],{"/blog/iterate-like-a-gitlab-designer":3,"navigation-en-us":407,"banner-en-us":835,"footer-en-us":845,"blog-post-authors-en-us-Holly Reynolds":1090,"blog-related-posts-en-us-iterate-like-a-gitlab-designer":1104,"blog-promotions-en-us":1128,"next-steps-en-us":1182},{"id":4,"title":5,"authors":6,"body":8,"category":383,"date":384,"description":385,"extension":386,"externalUrl":387,"faq":387,"featured":388,"heroImage":389,"meta":390,"navigation":391,"path":392,"seo":393,"slug":397,"stem":398,"tags":399,"template":405,"updatedDate":387,"__hash__":406},"blogPosts/en-us/blog/iterate-like-a-gitlab-designer.md","Iterate Like a GitLab Designer",[7],"Holly Reynolds",{"type":9,"value":10,"toc":372},"minimark",[11,22,31,40,46,49,74,77,84,89,97,100,103,107,110,122,125,152,161,176,185,189,192,199,206,215,230,234,241,258,261,276,279,283,292,295,309,313,316,331,335],[12,13,14,15,21],"p",{},"Any GitLab team member can tell you that ",[16,17,20],"a",{"href":18,"rel":19},"https://handbook.gitlab.com/handbook/values/#iteration",[],"iteration"," is often the most challenging organizational value to practice. Designing and shipping the smallest thing possible can often feel like it goes against our desire to beautify, polish, and perfect.",[12,23,24,25,30],{},"The major challenge is in scoping down the initial vision. Sometimes, we may have to cut scope so much that we do not feel we are shipping anything of value. We often feel a ",[16,26,29],{"href":27,"rel":28},"https://handbook.gitlab.com/handbook/values/#low-level-of-shame",[],"low level of shame"," that it doesn't look complete. We sometimes worry that perhaps even a paying customer will feel this pain too.",[12,32,33,34,39],{},"In a ",[16,35,38],{"href":36,"rel":37},"https://www.youtube.com/watch?v=0lhjzU-QZ2w&feature=youtu.be",[],"GitLab Unfiltered conversation"," about iteration between two GitLab product designers, they talk about our iteration value and some of the challenges teams experience while practicing it:",[12,41,42],{},[43,44,45],"em",{},"\"What we try to do differently than other companies is that we try to make something embarrassingly small. Sometimes I feel that we get trapped in that thought. We become too focused on minimal. Then we've gone past the point of being viable for our business or valuable for our users.\"",[12,47,48],{},"At best, the goal of making a feature smaller can cause a low level of shame. And at worst, it can create tension on a team that worries about shipping an incomplete vision to customers.",[12,50,51,52,57,58,63,64,67,68,73],{},"When we try to deliver an MVC (or ",[16,53,56],{"href":54,"rel":55},"https://handbook.gitlab.com/handbook/values/#minimal-viable-change-mvc",[],"Minimal Viable Change","), a challenging aspect is when the problem feels too large. Perhaps there is a clear ",[16,59,62],{"href":60,"rel":61},"https://handbook.gitlab.com/handbook/values/#boring-solutions",[],"boring solution",", but the amount of time and resources needed to accomplish it is too large. We ask ourselves: ",[43,65,66],{},"\"What needs to be cut while still providing immediate value and paving the way for scalable improvements?\""," We often address this question with our ",[16,69,72],{"href":70,"rel":71},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/",[],"Product Development Flow",", which includes steps to validate the problem or solution and test in advance to minimize the more significant unknowns.",[12,75,76],{},"Another challenge is keeping our eyes on the bigger picture while also creating MVC solutions. It's easy to focus on the trees we're trimming at the time, but this can cause erosion in the forest elsewhere if we cut them back too much. Collaboration amongst Product Designers and Product Managers in various stages is critical to ensuring we're not making choices that could have a negative ripple effect throughout the application.",[12,78,79,80,83],{},"As our team members phrase it, the solution to all of this is to ",[43,81,82],{},"think big, ship small, and learn fast",".",[85,86,88],"h2",{"id":87},"keeping-mvcs-as-cs-not-ps","Keeping MVCs as C's, not P's",[12,90,91,92,96],{},"We can balance smaller with viable if we define the ",[16,93,95],{"href":54,"rel":94},[],"MVC",". MVC (Minimal Viable Change) is not the same as MVP (Minimum Viable Product). Thousands of little changes make up a product, and there is often more than one right way to solve a problem. An MVC is a singular yet mighty change that takes a step in the right direction to improving the product for the user.",[12,98,99],{},"A series of incremental, step-wise MVCs make a feature more complete. It can often take multiple releases to discern if this is the right direction. However, we can also learn more and at a faster pace along the way. The inverse would be to ship extensive features that take longer to build, which means we're less likely to learn quickly.",[12,101,102],{},"At GitLab, we currently release in a 1-month milestone cadence. That said, there are many opportunities to learn faster, and we employ a variety of methods to do so. Designers work with Product Managers (PMs) to incrementally de-risk feature ideas. We break solutions down into smaller experiments, all while considering the impact of these experiments both in the short and long term. Our approach requires both divergent and convergent thinking at any given time on an idea. We need to think big to know what small changes will make sense within the broader vision.",[85,104,106],{"id":105},"think-big-define-the-vision","Think Big: Define the Vision",[12,108,109],{},"Thinking big helps us keep a high-level view of the overall product while exploring ways to learn from small, valuable features that we can ship quickly.",[12,111,112,113,116,117,121],{},"So, what does it look like to ",[43,114,115],{},"Think Big","? We start with a known problem and examine how that problem impacts our users, the organization, and the product as a whole. The ",[16,118,120],{"href":70,"rel":119},[],"GitLab product development flow"," helps us balance being reactive to known issues while proactively identifying UX improvements. Before we begin to generate solutions for a problem we hear about, we first must weigh this problem against all others in our backlog.",[12,123,124],{},"This process of determining what to work on first can be a bit tricky at times. However, some of the criteria we consider when we prioritize include:",[126,127,128,132,143,146,149],"ol",{},[129,130,131],"li",{},"New product category work",[129,133,134,135,138,139,142],{},"Determining the next maturity state for a product category (e.g., ",[43,136,137],{},"viable"," to ",[43,140,141],{},"complete",")",[129,144,145],{},"The envisioned feature is large or introduces a significant change to the product's UX",[129,147,148],{},"Understanding if a JTBD is relevant to why customers buy or use the product",[129,150,151],{},"When targeting a new user or buyer persona",[12,153,154,155,160],{},"Once we've determined what we want to address first, ideas enter a phase known as ",[16,156,159],{"href":157,"rel":158},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/#validation-phase-2-problem-validation",[],"Problem Validation",". When a problem is known, our ideas for a solution also become more focused. An important signal to watch for revolves around whether we have a shared language about the problem, who feels it, and if we have a collection of reasonably small solution proposals.",[12,162,163,164,169,170,175],{},"Product and UX Research may work together to run studies, user interviews, competitor analysis, and other research efforts within the problem validation phase. We also review data from previous studies surrounding the ",[16,165,168],{"href":166,"rel":167},"https://handbook.gitlab.com/handbook/product/ux/category-maturity/category-maturity-scorecards/",[],"category maturity"," and ",[16,171,174],{"href":172,"rel":173},"https://handbook.gitlab.com/handbook/product/ux/ux-resources/#system-usability-score",[],"System Usability Score (SUS)"," results.",[12,177,178,179,184],{},"As the conversational thread coalesces around a viable range of solutions, we know what to do next. At this point, the idea may move into our ",[16,180,183],{"href":181,"rel":182},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/#validation-phase-3-design",[],"Design phase",", where we create wireframes and prototypes.",[85,186,188],{"id":187},"solution-evolution","Solution Evolution",[12,190,191],{},"At GitLab, nothing should ever happen in a silo. If we are to think big, we need to be sure that we are sharing and collaborating on our ideas with others in the organization and even the wider GitLab community.",[12,193,194,195,198],{},"The ",[16,196,183],{"href":181,"rel":197},[]," is often a highly collaborative phase involving at the very least: Design, Product (for insight on business needs, strategy and priorities), and Engineering (to help determine the feasibility of possible solutions). Others involved may include Tech Writing, UX Research, Sales, Customer Success, the CEO, and GitLab community members.",[12,200,201,202,205],{},"This phase's challenge is not to let the conversation stall or the participants get into ",[43,203,204],{},"analysis paralysis",". As the DRI (directly responsible individual) of this phase, the Designer often needs to select a path and move forward.",[12,207,208,209,214],{},"Lastly, the ",[16,210,213],{"href":211,"rel":212},"https://design.gitlab.com/",[],"GitLab Pajamas design system"," is an excellent resource for providing a solid foundation for UI and design patterns. It reduces the time needed to think through solutions and create visual deliverables for those solutions. Again, thinking about the big picture of being consistent while exploring ways to move fast and ship small.",[12,216,217,218,223,224,229],{},"Once design solutions are in place, the idea can move into the ",[16,219,222],{"href":220,"rel":221},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/#validation-phase-4-solution-validation",[],"Solution Validation phase"," to test and validate the MVC with users. Suppose users' feedback proves that the solution is right - meaning, it aligns with the business needs, and it's feasible. In that case, we can move into the ",[16,225,228],{"href":226,"rel":227},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/#build-phase-1-plan",[],"Planning Breakdown phase",", where it is weighted and prioritized by engineers.",[85,231,233],{"id":232},"ship-small-build-and-ship","Ship Small: Build and Ship",[12,235,236,237,240],{},"An aspect of GitLab's value proposition revolves around helping teams release faster and at a ",[43,238,239],{},"sustainable"," pace. Organizations will evolve their workflows to fit their context. Every process seeks to understand what customers need, deploy the solution, and learn. We utilize our product to its fullest extent to accelerate iterations that converge toward optimal solutions to real-world problems.",[12,242,243,244,247,248,251,252,257],{},"We strive in the ",[16,245,183],{"href":181,"rel":246},[]," to both understand the big picture and define the smallest ",[16,249,95],{"href":54,"rel":250},[]," solution. We use tools like ",[16,253,256],{"href":254,"rel":255},"https://www.figma.com/community/plugin/860845891704482356/GitLab",[],"Figma"," to create prototypes and other deliverables. With Figma, engineers can view coded aspects of the design, saving time in translating design expectations during design hand-off.",[12,259,260],{},"Design and Engineering review the proposed solution and collaborate to:",[262,263,264,267,270,273],"ul",{},[129,265,266],{},"Ensure the MVC is as small as possible in terms of both the frontend and backend.",[129,268,269],{},"Identify impacts on other areas of the product.",[129,271,272],{},"Discuss possible performance issues.",[129,274,275],{},"Decide whether to implement new vs. existing patterns and UI elements.",[12,277,278],{},"Additional design iterations could occur if the idea is still too large to deliver within a single milestone.",[85,280,282],{"id":281},"learn-fast-measure-and-learn","Learn Fast: Measure and Learn",[12,284,285,286,291],{},"Throughout the entire GitLab Product Development Flow, we're learning. We're not just uncovering what needs our users have. We're also learning about ways to improve our methods to make our process more efficient. Because we ship small, our learnings can and should happen quickly. We're always exploring ways to get feedback faster from our users and empathize with their needs. We also ",[16,287,290],{"href":288,"rel":289},"https://handbook.gitlab.com/handbook/engineering/development/principles/#dogfooding",[],"dogfood"," our product, which helps us to experience and identify the same usability and performance pains as our users.",[12,293,294],{},"Finally, we regularly:",[262,296,297,300,303,306],{},[129,298,299],{},"Have 1:1 conversations with our users",[129,301,302],{},"Evaluate quantitative data",[129,304,305],{},"Document and tag the qualitative feedback for future reference",[129,307,308],{},"Take action on insights",[85,310,312],{"id":311},"conclusion","Conclusion",[12,314,315],{},"Practice and theory don't always align. Sometimes, we'll realize later that we could have made something smaller or better. Instead of charging ahead with the plan, we take a step back and make the idea smaller. The ultimate goal of iteration is to release the smallest change possible to learn from real-world usage.",[12,317,318,319,324,325,330],{},"We also embrace contributions from team members and the wider community. In the words of ",[16,320,323],{"href":321,"rel":322},"https://gitlab.com/jeldergl",[],"Jeremy Elder",": \"",[16,326,329],{"href":327,"rel":328},"https://www.youtube.com/watch?v=apQTxlqZeBA&feature=youtu.be&list=PL05JrBw4t0KpgzLWbRCXf8o7iap-uoe7o&t=1278",[],"In the cycle of iteration, there are multiple on-ramps",".\"",[85,332,334],{"id":333},"explore-further","Explore further",[262,336,337,344,351,358,365],{},[129,338,339],{},[16,340,343],{"href":341,"rel":342},"https://www.youtube.com/playlist?list=PL05JrBw4t0KpgzLWbRCXf8o7iap-uoe7o",[],"GitLab design talks: Iteration",[129,345,346],{},[16,347,350],{"href":348,"rel":349},"https://handbook.gitlab.com/handbook/product/ux/product-designer/#present-an-mvc-solution",[],"Presenting an MVC solution",[129,352,353],{},[16,354,357],{"href":355,"rel":356},"https://handbook.gitlab.com/handbook/product/ux/jobs-to-be-done/",[],"Conduct a Job statement activity with the team",[129,359,360],{},[16,361,364],{"href":362,"rel":363},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/#opportunity-canvas",[],"Opportunity Canvas",[129,366,367],{},[16,368,371],{"href":369,"rel":370},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/#build-phase-4-improve",[],"Improvement phase in the Product Development Flow",{"title":373,"searchDepth":374,"depth":374,"links":375},"",2,[376,377,378,379,380,381,382],{"id":87,"depth":374,"text":88},{"id":105,"depth":374,"text":106},{"id":187,"depth":374,"text":188},{"id":232,"depth":374,"text":233},{"id":281,"depth":374,"text":282},{"id":311,"depth":374,"text":312},{"id":333,"depth":374,"text":334},"unfiltered","2020-10-16","Think big, ship small, learn fast","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{},true,"/en-us/blog/iterate-like-a-gitlab-designer",{"title":5,"description":385,"ogTitle":5,"ogDescription":385,"noIndex":388,"ogImage":389,"ogUrl":394,"ogSiteName":395,"ogType":396,"canonicalUrls":394},"https://about.gitlab.com/blog/iterate-like-a-gitlab-designer","https://about.gitlab.com","article","iterate-like-a-gitlab-designer","en-us/blog/iterate-like-a-gitlab-designer",[400,401,402,403,404],"design","UX","UI","research","collaboration","BlogPost","GVaEovX5VlLZqnJL2KQLq6S9BQ1sIHXtxLJBCnCO4O8",{"logo":408,"freeTrial":413,"sales":418,"login":423,"items":428,"search":755,"minimal":786,"duo":805,"switchNav":814,"pricingDeployment":825},{"config":409},{"href":410,"dataGaName":411,"dataGaLocation":412},"/","gitlab logo","header",{"text":414,"config":415},"Get free trial",{"href":416,"dataGaName":417,"dataGaLocation":412},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":419,"config":420},"Request a demo",{"href":421,"dataGaName":422,"dataGaLocation":412},"/sales/?contact-topic=request-demo","sales",{"text":424,"config":425},"Sign in",{"href":426,"dataGaName":427,"dataGaLocation":412},"https://gitlab.com/users/sign_in/","sign in",[429,458,558,563,677,733],{"text":430,"config":431,"menu":433},"Platform",{"dataNavLevelOne":432},"platform",{"type":434,"columns":435},"cards",[436,442,450],{"title":430,"description":437,"link":438},"The intelligent orchestration platform for DevSecOps",{"text":439,"config":440},"Explore our Platform",{"href":441,"dataGaName":432,"dataGaLocation":412},"/platform/",{"title":443,"description":444,"link":445},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":446,"config":447},"Meet GitLab Duo",{"href":448,"dataGaName":449,"dataGaLocation":412},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":451,"description":452,"link":453},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":454,"config":455},"Learn more",{"href":456,"dataGaName":457,"dataGaLocation":412},"/why-gitlab/","why gitlab",{"text":459,"left":391,"config":460,"menu":462},"Product",{"dataNavLevelOne":461},"solutions",{"type":463,"link":464,"columns":468,"feature":537},"lists",{"text":465,"config":466},"View all Solutions",{"href":467,"dataGaName":461,"dataGaLocation":412},"/solutions/",[469,493,516],{"title":470,"description":471,"link":472,"items":477},"Automation","CI/CD and automation to accelerate deployment",{"config":473},{"icon":474,"href":475,"dataGaName":476,"dataGaLocation":412},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[478,482,485,489],{"text":479,"config":480},"CI/CD",{"href":481,"dataGaLocation":412,"dataGaName":479},"/solutions/continuous-integration/",{"text":443,"config":483},{"href":448,"dataGaLocation":412,"dataGaName":484},"gitlab duo agent platform - product menu",{"text":486,"config":487},"Source Code Management",{"href":488,"dataGaLocation":412,"dataGaName":486},"/solutions/source-code-management/",{"text":490,"config":491},"Automated Software Delivery",{"href":475,"dataGaLocation":412,"dataGaName":492},"Automated software delivery",{"title":494,"description":495,"link":496,"items":501},"Security","Deliver code faster without compromising security",{"config":497},{"href":498,"dataGaName":499,"dataGaLocation":412,"icon":500},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[502,506,511],{"text":503,"config":504},"Application Security Testing",{"href":498,"dataGaName":505,"dataGaLocation":412},"Application security testing",{"text":507,"config":508},"Software Supply Chain Security",{"href":509,"dataGaLocation":412,"dataGaName":510},"/solutions/supply-chain/","Software supply chain security",{"text":512,"config":513},"Software Compliance",{"href":514,"dataGaName":515,"dataGaLocation":412},"/solutions/software-compliance/","software compliance",{"title":517,"link":518,"items":523},"Measurement",{"config":519},{"icon":520,"href":521,"dataGaName":522,"dataGaLocation":412},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[524,528,532],{"text":525,"config":526},"Visibility & Measurement",{"href":521,"dataGaLocation":412,"dataGaName":527},"Visibility and Measurement",{"text":529,"config":530},"Value Stream Management",{"href":531,"dataGaLocation":412,"dataGaName":529},"/solutions/value-stream-management/",{"text":533,"config":534},"Analytics & Insights",{"href":535,"dataGaLocation":412,"dataGaName":536},"/solutions/analytics-and-insights/","Analytics and insights",{"title":538,"type":463,"items":539},"GitLab for",[540,546,552],{"text":541,"config":542},"Enterprise",{"icon":543,"href":544,"dataGaLocation":412,"dataGaName":545},"Building","/enterprise/","enterprise",{"text":547,"config":548},"Small Business",{"icon":549,"href":550,"dataGaLocation":412,"dataGaName":551},"Work","/small-business/","small business",{"text":553,"config":554},"Public Sector",{"icon":555,"href":556,"dataGaLocation":412,"dataGaName":557},"Organization","/solutions/public-sector/","public sector",{"text":559,"config":560},"Pricing",{"href":561,"dataGaName":562,"dataGaLocation":412,"dataNavLevelOne":562},"/pricing/","pricing",{"text":564,"config":565,"menu":567},"Resources",{"dataNavLevelOne":566},"resources",{"type":463,"link":568,"columns":572,"feature":666},{"text":569,"config":570},"View all resources",{"href":571,"dataGaName":566,"dataGaLocation":412},"/resources/",[573,606,633],{"title":574,"items":575},"Getting started",[576,581,586,591,596,601],{"text":577,"config":578},"Install",{"href":579,"dataGaName":580,"dataGaLocation":412},"/install/","install",{"text":582,"config":583},"Quick start guides",{"href":584,"dataGaName":585,"dataGaLocation":412},"/get-started/","quick setup checklists",{"text":587,"config":588},"Learn",{"href":589,"dataGaLocation":412,"dataGaName":590},"https://university.gitlab.com/","learn",{"text":592,"config":593},"Product documentation",{"href":594,"dataGaName":595,"dataGaLocation":412},"https://docs.gitlab.com/","product documentation",{"text":597,"config":598},"Best practice videos",{"href":599,"dataGaName":600,"dataGaLocation":412},"/getting-started-videos/","best practice videos",{"text":602,"config":603},"Integrations",{"href":604,"dataGaName":605,"dataGaLocation":412},"/integrations/","integrations",{"title":607,"items":608},"Discover",[609,614,619,624,628],{"text":610,"config":611},"Customer success stories",{"href":612,"dataGaName":613,"dataGaLocation":412},"/customers/","customer success stories",{"text":615,"config":616},"Blog",{"href":617,"dataGaName":618,"dataGaLocation":412},"/blog/","blog",{"text":620,"config":621},"Demo Hub",{"href":622,"dataGaName":623,"dataGaLocation":412},"/demo-hub/","demo hub",{"text":625,"config":626},"The Source",{"href":627,"dataGaName":618,"dataGaLocation":412},"/the-source/",{"text":629,"config":630},"Remote",{"href":631,"dataGaName":632,"dataGaLocation":412},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":634,"items":635},"Connect",[636,641,646,651,656,661],{"text":637,"config":638},"GitLab Services",{"href":639,"dataGaName":640,"dataGaLocation":412},"/services/","services",{"text":642,"config":643},"Contribute",{"href":644,"dataGaName":645,"dataGaLocation":412},"https://contributors.gitlab.com","contribute",{"text":647,"config":648},"Community",{"href":649,"dataGaName":650,"dataGaLocation":412},"/community/","community",{"text":652,"config":653},"Forum",{"href":654,"dataGaName":655,"dataGaLocation":412},"https://forum.gitlab.com/","forum",{"text":657,"config":658},"Events",{"href":659,"dataGaName":660,"dataGaLocation":412},"/events/","events",{"text":662,"config":663},"Partners",{"href":664,"dataGaName":665,"dataGaLocation":412},"/partners/","partners",{"config":667,"title":670,"text":671,"link":672},{"background":668,"textColor":669},"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":673,"config":674},"Read the latest",{"href":675,"dataGaName":676,"dataGaLocation":412},"/whats-new/","whats new",{"text":678,"config":679,"menu":681},"Company",{"dataNavLevelOne":680},"company",{"type":463,"columns":682},[683],{"items":684},[685,690,696,698,703,708,713,718,723,728],{"text":686,"config":687},"About",{"href":688,"dataGaName":689,"dataGaLocation":412},"/company/","about",{"text":691,"config":692,"footerGa":695},"Jobs",{"href":693,"dataGaName":694,"dataGaLocation":412},"/jobs/","jobs",{"dataGaName":694},{"text":657,"config":697},{"href":659,"dataGaName":660,"dataGaLocation":412},{"text":699,"config":700},"Leadership",{"href":701,"dataGaName":702,"dataGaLocation":412},"/company/team/e-group/","leadership",{"text":704,"config":705},"Handbook",{"href":706,"dataGaName":707,"dataGaLocation":412},"https://handbook.gitlab.com/","handbook",{"text":709,"config":710},"Investor relations",{"href":711,"dataGaName":712,"dataGaLocation":412},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":714,"config":715},"Trust Center",{"href":716,"dataGaName":717,"dataGaLocation":412},"/security/","trust center",{"text":719,"config":720},"AI Transparency Center",{"href":721,"dataGaName":722,"dataGaLocation":412},"/ai-transparency-center/","ai transparency center",{"text":724,"config":725},"Newsletter",{"href":726,"dataGaName":727,"dataGaLocation":412},"/company/contact/#contact-forms","newsletter",{"text":729,"config":730},"Press",{"href":731,"dataGaName":732,"dataGaLocation":412},"/press/","press",{"text":734,"config":735,"menu":736},"Contact us",{"dataNavLevelOne":680},{"type":463,"columns":737},[738],{"items":739},[740,745,750],{"text":741,"config":742},"Talk to sales",{"href":743,"dataGaName":744,"dataGaLocation":412},"/sales/","talk to sales",{"text":746,"config":747},"Support portal",{"href":748,"dataGaName":749,"dataGaLocation":412},"https://support.gitlab.com/hc/en-us","support portal",{"text":751,"config":752},"Customer portal",{"href":753,"dataGaName":754,"dataGaLocation":412},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":756,"login":757,"suggestions":764},"Close",{"text":758,"link":759},"To search repositories and projects, login to",{"text":760,"config":761},"gitlab.com",{"href":426,"dataGaName":762,"dataGaLocation":763},"search login","search",{"text":765,"default":766},"Suggestions",[767,769,773,775,779,783],{"text":443,"config":768},{"href":448,"dataGaName":443,"dataGaLocation":763},{"text":770,"config":771},"Code Suggestions (AI)",{"href":772,"dataGaName":770,"dataGaLocation":763},"/solutions/code-suggestions/",{"text":479,"config":774},{"href":481,"dataGaName":479,"dataGaLocation":763},{"text":776,"config":777},"GitLab on AWS",{"href":778,"dataGaName":776,"dataGaLocation":763},"/partners/technology-partners/aws/",{"text":780,"config":781},"GitLab on Google Cloud",{"href":782,"dataGaName":780,"dataGaLocation":763},"/partners/technology-partners/google-cloud-platform/",{"text":784,"config":785},"Why GitLab?",{"href":456,"dataGaName":784,"dataGaLocation":763},{"freeTrial":787,"mobileIcon":792,"desktopIcon":797,"secondaryButton":800},{"text":788,"config":789},"Start free trial",{"href":790,"dataGaName":417,"dataGaLocation":791},"https://gitlab.com/-/trials/new/","nav",{"altText":793,"config":794},"Gitlab Icon",{"src":795,"dataGaName":796,"dataGaLocation":791},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":793,"config":798},{"src":799,"dataGaName":796,"dataGaLocation":791},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":801,"config":802},"Get Started",{"href":803,"dataGaName":804,"dataGaLocation":791},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":806,"mobileIcon":810,"desktopIcon":812},{"text":807,"config":808},"Learn more about GitLab Duo",{"href":448,"dataGaName":809,"dataGaLocation":791},"gitlab duo",{"altText":793,"config":811},{"src":795,"dataGaName":796,"dataGaLocation":791},{"altText":793,"config":813},{"src":799,"dataGaName":796,"dataGaLocation":791},{"button":815,"mobileIcon":820,"desktopIcon":822},{"text":816,"config":817},"/switch",{"href":818,"dataGaName":819,"dataGaLocation":791},"#contact","switch",{"altText":793,"config":821},{"src":795,"dataGaName":796,"dataGaLocation":791},{"altText":793,"config":823},{"src":824,"dataGaName":796,"dataGaLocation":791},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":826,"mobileIcon":831,"desktopIcon":833},{"text":827,"config":828},"Back to pricing",{"href":561,"dataGaName":829,"dataGaLocation":791,"icon":830},"back to pricing","GoBack",{"altText":793,"config":832},{"src":795,"dataGaName":796,"dataGaLocation":791},{"altText":793,"config":834},{"src":799,"dataGaName":796,"dataGaLocation":791},{"title":836,"titleMobile":837,"button":838,"config":843},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":454,"config":839},{"href":840,"dataGaName":841,"dataGaLocation":842},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":844,"disabled":388},"release",{"data":846},{"text":847,"source":848,"edit":854,"contribute":859,"config":864,"items":869,"minimal":1079},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":849,"config":850},"View page source",{"href":851,"dataGaName":852,"dataGaLocation":853},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":855,"config":856},"Edit this page",{"href":857,"dataGaName":858,"dataGaLocation":853},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":860,"config":861},"Please contribute",{"href":862,"dataGaName":863,"dataGaLocation":853},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":865,"facebook":866,"youtube":867,"linkedin":868},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[870,917,971,1015,1047],{"title":559,"links":871,"subMenu":886},[872,876,881],{"text":873,"config":874},"View plans",{"href":561,"dataGaName":875,"dataGaLocation":853},"view plans",{"text":877,"config":878},"Why Premium?",{"href":879,"dataGaName":880,"dataGaLocation":853},"/pricing/premium/","why premium",{"text":882,"config":883},"Why Ultimate?",{"href":884,"dataGaName":885,"dataGaLocation":853},"/pricing/ultimate/","why ultimate",[887],{"title":888,"links":889},"Contact Us",[890,893,895,897,902,907,912],{"text":891,"config":892},"Contact sales",{"href":743,"dataGaName":422,"dataGaLocation":853},{"text":746,"config":894},{"href":748,"dataGaName":749,"dataGaLocation":853},{"text":751,"config":896},{"href":753,"dataGaName":754,"dataGaLocation":853},{"text":898,"config":899},"Status",{"href":900,"dataGaName":901,"dataGaLocation":853},"https://status.gitlab.com/","status",{"text":903,"config":904},"Terms of use",{"href":905,"dataGaName":906,"dataGaLocation":853},"/terms/","terms of use",{"text":908,"config":909},"Privacy statement",{"href":910,"dataGaName":911,"dataGaLocation":853},"/privacy/","privacy statement",{"text":913,"config":914},"Cookie preferences",{"dataGaName":915,"dataGaLocation":853,"id":916,"isOneTrustButton":391},"cookie preferences","ot-sdk-btn",{"title":459,"links":918,"subMenu":927},[919,923],{"text":920,"config":921},"DevSecOps platform",{"href":441,"dataGaName":922,"dataGaLocation":853},"devsecops platform",{"text":924,"config":925},"AI-Assisted Development",{"href":448,"dataGaName":926,"dataGaLocation":853},"ai-assisted development",[928],{"title":929,"links":930},"Topics",[931,936,941,946,951,956,961,966],{"text":932,"config":933},"CICD",{"href":934,"dataGaName":935,"dataGaLocation":853},"/topics/ci-cd/","cicd",{"text":937,"config":938},"GitOps",{"href":939,"dataGaName":940,"dataGaLocation":853},"/topics/gitops/","gitops",{"text":942,"config":943},"DevOps",{"href":944,"dataGaName":945,"dataGaLocation":853},"/topics/devops/","devops",{"text":947,"config":948},"Version Control",{"href":949,"dataGaName":950,"dataGaLocation":853},"/topics/version-control/","version control",{"text":952,"config":953},"DevSecOps",{"href":954,"dataGaName":955,"dataGaLocation":853},"/topics/devsecops/","devsecops",{"text":957,"config":958},"Cloud Native",{"href":959,"dataGaName":960,"dataGaLocation":853},"/topics/cloud-native/","cloud native",{"text":962,"config":963},"AI for Coding",{"href":964,"dataGaName":965,"dataGaLocation":853},"/topics/devops/ai-for-coding/","ai for coding",{"text":967,"config":968},"Agentic AI",{"href":969,"dataGaName":970,"dataGaLocation":853},"/topics/agentic-ai/","agentic ai",{"title":972,"links":973},"Solutions",[974,976,978,983,987,990,994,997,999,1002,1005,1010],{"text":503,"config":975},{"href":498,"dataGaName":503,"dataGaLocation":853},{"text":492,"config":977},{"href":475,"dataGaName":476,"dataGaLocation":853},{"text":979,"config":980},"Agile development",{"href":981,"dataGaName":982,"dataGaLocation":853},"/solutions/agile-delivery/","agile delivery",{"text":984,"config":985},"SCM",{"href":488,"dataGaName":986,"dataGaLocation":853},"source code management",{"text":932,"config":988},{"href":481,"dataGaName":989,"dataGaLocation":853},"continuous integration & delivery",{"text":991,"config":992},"Value stream management",{"href":531,"dataGaName":993,"dataGaLocation":853},"value stream management",{"text":937,"config":995},{"href":996,"dataGaName":940,"dataGaLocation":853},"/solutions/gitops/",{"text":541,"config":998},{"href":544,"dataGaName":545,"dataGaLocation":853},{"text":1000,"config":1001},"Small business",{"href":550,"dataGaName":551,"dataGaLocation":853},{"text":1003,"config":1004},"Public sector",{"href":556,"dataGaName":557,"dataGaLocation":853},{"text":1006,"config":1007},"Education",{"href":1008,"dataGaName":1009,"dataGaLocation":853},"/solutions/education/","education",{"text":1011,"config":1012},"Financial services",{"href":1013,"dataGaName":1014,"dataGaLocation":853},"/solutions/finance/","financial services",{"title":564,"links":1016},[1017,1019,1021,1023,1026,1028,1031,1033,1035,1037,1039,1041,1043,1045],{"text":577,"config":1018},{"href":579,"dataGaName":580,"dataGaLocation":853},{"text":582,"config":1020},{"href":584,"dataGaName":585,"dataGaLocation":853},{"text":587,"config":1022},{"href":589,"dataGaName":590,"dataGaLocation":853},{"text":592,"config":1024},{"href":594,"dataGaName":1025,"dataGaLocation":853},"docs",{"text":615,"config":1027},{"href":617,"dataGaName":618,"dataGaLocation":853},{"text":1029,"config":1030},"What's new",{"href":675,"dataGaName":676,"dataGaLocation":853},{"text":610,"config":1032},{"href":612,"dataGaName":613,"dataGaLocation":853},{"text":629,"config":1034},{"href":631,"dataGaName":632,"dataGaLocation":853},{"text":637,"config":1036},{"href":639,"dataGaName":640,"dataGaLocation":853},{"text":642,"config":1038},{"href":644,"dataGaName":645,"dataGaLocation":853},{"text":647,"config":1040},{"href":649,"dataGaName":650,"dataGaLocation":853},{"text":652,"config":1042},{"href":654,"dataGaName":655,"dataGaLocation":853},{"text":657,"config":1044},{"href":659,"dataGaName":660,"dataGaLocation":853},{"text":662,"config":1046},{"href":664,"dataGaName":665,"dataGaLocation":853},{"title":678,"links":1048},[1049,1051,1053,1055,1057,1059,1063,1068,1070,1072,1074],{"text":686,"config":1050},{"href":688,"dataGaName":680,"dataGaLocation":853},{"text":691,"config":1052},{"href":693,"dataGaName":694,"dataGaLocation":853},{"text":699,"config":1054},{"href":701,"dataGaName":702,"dataGaLocation":853},{"text":704,"config":1056},{"href":706,"dataGaName":707,"dataGaLocation":853},{"text":709,"config":1058},{"href":711,"dataGaName":712,"dataGaLocation":853},{"text":1060,"config":1061},"Sustainability",{"href":1062,"dataGaName":1060,"dataGaLocation":853},"/sustainability/",{"text":1064,"config":1065},"Diversity, inclusion and belonging (DIB)",{"href":1066,"dataGaName":1067,"dataGaLocation":853},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":714,"config":1069},{"href":716,"dataGaName":717,"dataGaLocation":853},{"text":724,"config":1071},{"href":726,"dataGaName":727,"dataGaLocation":853},{"text":729,"config":1073},{"href":731,"dataGaName":732,"dataGaLocation":853},{"text":1075,"config":1076},"Modern Slavery Transparency Statement",{"href":1077,"dataGaName":1078,"dataGaLocation":853},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1080},[1081,1084,1087],{"text":1082,"config":1083},"Terms",{"href":905,"dataGaName":906,"dataGaLocation":853},{"text":1085,"config":1086},"Cookies",{"dataGaName":915,"dataGaLocation":853,"id":916,"isOneTrustButton":391},{"text":1088,"config":1089},"Privacy",{"href":910,"dataGaName":911,"dataGaLocation":853},[1091],{"id":1092,"title":7,"body":387,"config":1093,"content":1095,"description":387,"extension":1098,"meta":1099,"navigation":391,"path":1100,"seo":1101,"stem":1102,"__hash__":1103},"blogAuthors/en-us/blog/authors/holly-reynolds.yml",{"template":1094},"BlogAuthor",{"name":7,"config":1096},{"headshot":373,"ctfId":1097},"hollyreynolds","yml",{},"/en-us/blog/authors/holly-reynolds",{},"en-us/blog/authors/holly-reynolds","4RPNkh--uyg8tOK3WIT2Sb3NAJdhmERqRP6TcgjOBto",[1105,1113,1121],{"title":1106,"description":1107,"heroImage":1108,"category":383,"date":1109,"authors":1110,"slug":1112,"externalUrl":387},"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",[1111],"Jacie Bandur","ceo-shadow-recap",{"title":1114,"description":1115,"heroImage":1116,"category":383,"date":1117,"authors":1118,"slug":1120,"externalUrl":387},"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",[1119],"Austin Regnery","why-i-love-contributing-to-gitlab",{"title":1122,"description":1123,"heroImage":1124,"category":383,"date":1117,"authors":1125,"slug":1127,"externalUrl":387},"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",[1126],"Sam Beckham","placebo-lines-on-the-pipeline-graph",{"promotions":1129},[1130,1144,1156,1168],{"id":1131,"categories":1132,"header":1134,"text":1135,"button":1136,"image":1141},"ai-modernization",[1133],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1137,"config":1138},"Get your AI maturity score",{"href":1139,"dataGaName":1140,"dataGaLocation":618},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1142},{"src":1143},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1145,"categories":1146,"header":1148,"text":1135,"button":1149,"image":1153},"devops-modernization",[1147,955],"product","Are you just managing tools or shipping innovation?",{"text":1150,"config":1151},"Get your DevOps maturity score",{"href":1152,"dataGaName":1140,"dataGaLocation":618},"/assessments/devops-modernization-assessment/",{"config":1154},{"src":1155},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1157,"categories":1158,"header":1160,"text":1135,"button":1161,"image":1165},"security-modernization",[1159],"security","Are you trading speed for security?",{"text":1162,"config":1163},"Get your security maturity score",{"href":1164,"dataGaName":1140,"dataGaLocation":618},"/assessments/security-modernization-assessment/",{"config":1166},{"src":1167},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1169,"paths":1170,"header":1173,"text":1174,"button":1175,"image":1180},"github-azure-migration",[1171,1172],"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":1176,"config":1177},"See how GitLab compares to GitHub",{"href":1178,"dataGaName":1179,"dataGaLocation":618},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1181},{"src":1155},{"header":1183,"blurb":1184,"button":1185,"secondaryButton":1190},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1186,"config":1187},"Get your free trial",{"href":1188,"dataGaName":417,"dataGaLocation":1189},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":891,"config":1191},{"href":743,"dataGaName":422,"dataGaLocation":1189},1786803752630]