[{"data":1,"prerenderedAt":790},["ShallowReactive",2],{"/en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo":3,"navigation-en-us":32,"banner-en-us":432,"footer-en-us":442,"blog-post-authors-en-us-Jason Chen":684,"blog-related-posts-en-us-building-an-open-source-company-interview-with-gitlabs-ceo":698,"assessment-promotions-en-us":740,"next-steps-en-us":780},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":21,"isFeatured":12,"meta":22,"navigation":23,"path":24,"publishedDate":19,"seo":25,"stem":29,"tagSlugs":30,"__hash__":31},"blogPosts/en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo.yml","Building An Open Source Company Interview With Gitlabs Ceo",[7],"jason-chen",null,"insights",{"slug":11,"featured":12,"template":13},"building-an-open-source-company-interview-with-gitlabs-ceo",false,"BlogPost",{"title":15,"description":15,"authors":16,"heroImage":18,"date":19,"body":20,"category":9},"Building an Open Source Company: Interview with GitLab's CEO",[17],"Jason Chen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684717/Blog/Hero%20Images/team_gitlab.png","2016-07-14","\n\nPlease note that while we think of ourselves as an open source company it would be more accurate to call it an open core company since we ship both the open source GitLab Community Edition and the close source GitLab Enterprise Edition. Thanks to paxcoder for [pointing this out on Hacker News](https://news.ycombinator.com/item?id=12129626).\n\n[GitLab] began as a labor of love from [Dmitriy Zaporozhets] and [Valery Sizov], who built the first version together in 2011. Like many open source authors, they were only able to work on the project part time. [Sid Sijbrandij] joined forces a year later and created [GitLab.com], the first SaaS offering and first experiment with monetization.\n\n\u003C!-- more -->\n\nToday GitLab is a model for open source sustainability and [stewardship]. It is being used in over 100,000 organizations including RedHat, NASA, Intel, Uber, to name just a few. Large organizations buy [enterprise licenses], sustaining and growing both the company and the free open source project. GitLab now has over 90 employees, including Sid and Dmitriy who serve as CEO and CTO, respectively.\n\n**There has been a lot of discussion recently around long term sustainability in open source. Naturally, some of these conversations have turned towards companies. GitLab is one of the most successful examples of a company born out of and supporting an open source project. How do you think about open source in GitLab’s DNA and other similar open source companies?**\n\n\n**Sid:** I think people are realizing more and more that open source is not just a license. It is also a way your company behaves. I think if you want to get the benefits of open source, it’s better to have an open development process. Everyone can see what’s going on all the time - what features are planned, who’s working on them, what was the decision process of how they would be implemented. We sometimes then receive comments on our issue tracker from real users explaining that a feature, given the way we designed and planned to build it, does not address their need. We learn from that and we get a better end product.\n\nWe took that a bit further at GitLab. We also just try to be very open as a company. Our complete company handbook - with many, many pages describing everything from sales, marketing, infrastructure - is completely open. We’re even going so far that our issue trackers for finance and marketing are open as well, so you can see what they are working on too. I’m not sure this is necessary, but being open is something we enjoy. It helps us be better and helps attract great new people to work with us.\n\n**For open source projects that have gone down the company path, do you think open source itself is enough of a differentiator to be competitive against a similar proprietary product?**\n\n\n**Sid:** I don’t think open source by itself is enough. Open source is wind in your back. It’s something that users and customers prefer. It’s a great go-to market, so it makes it a lot easier for people to adopt. It allows you, compared to previous enterprise software plays, to focus more on building a great product, and a bit less than previously on building a sales force. You’ll always need both the product and sales and marketing to be able to build a sustainable company.\n\nWe think GitLab is already the best product but we want to keep building to make it even better and communicate its value. GitLab is now the most popular solution for single-tenant installations. Our immediate goal is most revenue for single-tenant installations. Then we want to focus on private repositories through SaaS, then maybe someday public repositories. We’re not going to get there by just the power of open source.\n\n**How did GitLab’s business model come about?**\n\n\n**Sid:** At first I thought SaaS would be the sustainable business model for GitLab. People were using it, but mostly with smaller teams, not larger teams. The larger organizations were all running single tenant installations in house. They had a lot of feature requests so we kind of pivoted towards serving them better. Listening to those customers worked out really well. We built what they needed but shipped most of the features to everyone. The ones that were more appropriate for very large organizations with 100+ users, we put them into our proprietary enterprise product.\nWe then looked at the SaaS product and realized most of the revenue is going to come from single-tenant installations, so we decided to make the GitLab.com totally free - no restrictions on the number of private projects or collaborators and free CI.\n\n**How did GitLab figure out its pricing?**\n\n\n**Sid:** By making lots of mistakes. The common mistake that we’ve also made is that we priced too low. GitLab used to be $20/user/year, now it’s $40. I think it’s probably still on the low side.\n\n**At Salesforce, I was told by an SVP if 20% of your customers are not upset at you over pricing, you are leaving money on the table.**\n\n\n**Sid:** I think we have very few. I actually can’t think of a customer that’s really upset at us for our pricing, so probably we’re leaving too much money on the table. The great thing is we can make it work right now and we’re always close to being cash flow positive. We give away a lot, but that also helps companies adopt a product quickly. If it’s great value for money, it will spread faster.\n\n**GitLab has a pretty impressive list of customers. How did they find out about GitLab? Did you do any marketing or outbound?**\n\n\n**Sid:** No, nothing. They just found the open source project. If you wanted proper version control, single tenant, and open source, GitLab was and is the best option. We are just now beginning to do sales and hired three inbound SDRs and an outbound SDR Lead in the last two months, so we're just now starting to build those teams.\n\n**Does GitLab’s success with the on premise model challenge the conventional wisdom that everything, including the enterprise is moving to the cloud?**\n\n\n**Sid:** Yeah, I think it challenges it a bit. We still believe in the cloud, as in computing infrastructure. I think most GitLab installations run on AWS. But if you look according to research, in 2019, 80 cents of every dollar spent on software will go to on premises or single tenant software.\n\nIt differs for the product as well. I think right now everybody has accepted a cloud CRM solution. But we see that, for various reasons, source control is one of the last movers. Sometimes it’s for security reasons - companies want to put it behind a VPN - and sometimes it’s for legal reasons - companies want to know exactly where it’s hosted, and who has access to it.\n\n**With so many of your users behind private installations, how do you get analytics and feedback from them?**\n\n\n**Sid:** That’s hard. We don’t have a lot of data since GitLab doesn’t call home per se and we don’t want it to, as a good steward of the open source project. What GitLab does have is a version check. It shows you an image whether your version is up to date, out of date, or whether there’s a security problem with it. We receive those checks, so we can see what is out there in the wild, which helps a bit.\n\n**Do you have to rely on users asking for features then?**\n\n\n**Sid:** Yeah, we want to make user feedback easier by having open issue tracking. Anything we do feature-wise, it’s all happening on our issue tracker. When a sales person is talking with a customer and they have a request, we’ll post a public issue about it. We won’t tell you who the customer is, but the issue will be linked in our CRM system so internally we can all see who it is and what the interaction is or reach out to the customer to get more information. We really try to make everything happen in public. Before we used to have internal and external issue trackers, and we found there was a lot of duplication. This way, whatever we’re making, we get the best input. We get to get input from our developers, from the community, from our sales people and sometimes customers actually engage on the issue tracker themselves too.\n\n**Has GitLab’s open source and SaaS offering been a good funnel into the enterprise offering?**\n\n\n**Sid:** We actually crunched some numbers the other day, with some help of external people. We kind of expected our open source version to be a really good indicator of people getting the enterprise version. But it turned out that GitLab.com was an even better indicator. It was a lot more important than we thought as a go-to market and making people aware. Which is, for us, kind of nice, because we have e-mail addresses of the people using GitLab.com, so we can reach out to them. We don’t have that for people that download the community edition. So that finding was a relief to us.\n\n**How did you decide to take GitLab from the sustainable business path, onto the venture funded company track?**\n\n\n**Sid:** In 2014, we had a customer that was using GitLab, who then switched to GitHub, not because they didn’t like it, but because somewhere up the corporate hierarchy, it was decided that the whole company should use GitHub.\n\nThey were super happy with GitLab, but they still had to switch. We were like “Oh, wow. This might happen with all our large customers,” because every company in the world is going to standardize on one solution within the company. We want that to be GitLab. So we need to grow a lot faster to be able to convince those people at the top that make the decisions - the CIOs. And to reach them we need sales and marketing. We don’t have 10 years to do this, this standardization will happen in the next three years.\n\nThat’s why we decided to apply to YCombinator to grow faster. I think that’s been a good decision. By March of 2015, we were 9 people and fit into one large car. Now we’re 93 people and it takes two buses. We’ve since won back this customer, so we’re very glad about that. We don’t want to leave any customer behind. Our mission right now is to make sure all those large enterprises, who are probably using a couple of solutions internally right now, standardize on GitLab.\n\n**It has been said that lot of software markets is winner takes all. Do you think, in the git hosting space, there will be a winner takes all?**\n\n\n**Sid:** I think there’s room for multiple solutions. I think most companies will standardize on one thing for the whole company. I’ve talked to a few venture capitalists, and they say it’s common that 70% of the profit in the market goes to **#1**. Then **#2** has something, and number **3** ends up with very little.\n\nAs soon as you take VC money, you want to make sure you end up as **#1**. Also, we think it makes a lot of sense for developer collaboration software to be open source. And so we want people to use GitLab.\n\nWe’re excited. We think we have a great product, and we’re even more excited of what’s coming out next month and the month after that. We just want to make it a little bit better every month. That served us well so far, and that’s what we’re going to continue to do. We think there’s a big advantage to having the whole flow in one product, so we’re going to try to make the market aware of that.\n\n_This post was originally posted on [medium.com] by [Jason Chen] himself._\n\n\u003C!-- Identifiers -->\n\n[Jason Chen]: https://medium.com/@jhchen\n[medium.com]: https://medium.com/@jhchen/290180d172da#.niptat9rb\n[GitLab]:\n[GitLab.com]: https://gitlab.com/users/sign_in\n[Dmitriy Zaporozhets]: https://twitter.com/dzaporozhets\n[Valery Sizov]: https://twitter.com/Sizov_Valeriy\n[Sid Sijbrandij]: https://twitter.com/sytses\n[stewardship]: https://handbook.gitlab.com/handbook/company/stewardship/#our-stewardship-of-gitlab-ce\n[enterprise licenses]: /pricing/\n","yml",{},true,"/en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo",{"title":15,"description":15,"ogTitle":15,"ogDescription":15,"noIndex":12,"ogImage":18,"ogUrl":26,"ogSiteName":27,"ogType":28,"canonicalUrls":26},"https://about.gitlab.com/blog/building-an-open-source-company-interview-with-gitlabs-ceo","https://about.gitlab.com","article","en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo",[],"YL5212kNnSG3vK6eUhn5teqOFOJx1muNHvqTEoNETNc",{"data":33},{"logo":34,"freeTrial":39,"sales":44,"login":49,"items":54,"search":362,"minimal":393,"duo":412,"pricingDeployment":422},{"config":35},{"href":36,"dataGaName":37,"dataGaLocation":38},"/","gitlab logo","header",{"text":40,"config":41},"Get free trial",{"href":42,"dataGaName":43,"dataGaLocation":38},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":45,"config":46},"Talk to sales",{"href":47,"dataGaName":48,"dataGaLocation":38},"/sales/","sales",{"text":50,"config":51},"Sign in",{"href":52,"dataGaName":53,"dataGaLocation":38},"https://gitlab.com/users/sign_in/","sign in",[55,82,177,182,283,343],{"text":56,"config":57,"cards":59},"Platform",{"dataNavLevelOne":58},"platform",[60,66,74],{"title":56,"description":61,"link":62},"The intelligent orchestration platform for DevSecOps",{"text":63,"config":64},"Explore our Platform",{"href":65,"dataGaName":58,"dataGaLocation":38},"/platform/",{"title":67,"description":68,"link":69},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":70,"config":71},"Meet GitLab Duo",{"href":72,"dataGaName":73,"dataGaLocation":38},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":75,"description":76,"link":77},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":78,"config":79},"Learn more",{"href":80,"dataGaName":81,"dataGaLocation":38},"/why-gitlab/","why gitlab",{"text":83,"left":23,"config":84,"link":86,"lists":90,"footer":159},"Product",{"dataNavLevelOne":85},"solutions",{"text":87,"config":88},"View all Solutions",{"href":89,"dataGaName":85,"dataGaLocation":38},"/solutions/",[91,115,138],{"title":92,"description":93,"link":94,"items":99},"Automation","CI/CD and automation to accelerate deployment",{"config":95},{"icon":96,"href":97,"dataGaName":98,"dataGaLocation":38},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[100,104,107,111],{"text":101,"config":102},"CI/CD",{"href":103,"dataGaLocation":38,"dataGaName":101},"/solutions/continuous-integration/",{"text":67,"config":105},{"href":72,"dataGaLocation":38,"dataGaName":106},"gitlab duo agent platform - product menu",{"text":108,"config":109},"Source Code Management",{"href":110,"dataGaLocation":38,"dataGaName":108},"/solutions/source-code-management/",{"text":112,"config":113},"Automated Software Delivery",{"href":97,"dataGaLocation":38,"dataGaName":114},"Automated software delivery",{"title":116,"description":117,"link":118,"items":123},"Security","Deliver code faster without compromising security",{"config":119},{"href":120,"dataGaName":121,"dataGaLocation":38,"icon":122},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[124,128,133],{"text":125,"config":126},"Application Security Testing",{"href":120,"dataGaName":127,"dataGaLocation":38},"Application security testing",{"text":129,"config":130},"Software Supply Chain Security",{"href":131,"dataGaLocation":38,"dataGaName":132},"/solutions/supply-chain/","Software supply chain security",{"text":134,"config":135},"Software Compliance",{"href":136,"dataGaName":137,"dataGaLocation":38},"/solutions/software-compliance/","software compliance",{"title":139,"link":140,"items":145},"Measurement",{"config":141},{"icon":142,"href":143,"dataGaName":144,"dataGaLocation":38},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[146,150,154],{"text":147,"config":148},"Visibility & Measurement",{"href":143,"dataGaLocation":38,"dataGaName":149},"Visibility and Measurement",{"text":151,"config":152},"Value Stream Management",{"href":153,"dataGaLocation":38,"dataGaName":151},"/solutions/value-stream-management/",{"text":155,"config":156},"Analytics & Insights",{"href":157,"dataGaLocation":38,"dataGaName":158},"/solutions/analytics-and-insights/","Analytics and insights",{"title":160,"items":161},"GitLab for",[162,167,172],{"text":163,"config":164},"Enterprise",{"href":165,"dataGaLocation":38,"dataGaName":166},"/enterprise/","enterprise",{"text":168,"config":169},"Small Business",{"href":170,"dataGaLocation":38,"dataGaName":171},"/small-business/","small business",{"text":173,"config":174},"Public Sector",{"href":175,"dataGaLocation":38,"dataGaName":176},"/solutions/public-sector/","public sector",{"text":178,"config":179},"Pricing",{"href":180,"dataGaName":181,"dataGaLocation":38,"dataNavLevelOne":181},"/pricing/","pricing",{"text":183,"config":184,"link":186,"lists":190,"feature":270},"Resources",{"dataNavLevelOne":185},"resources",{"text":187,"config":188},"View all resources",{"href":189,"dataGaName":185,"dataGaLocation":38},"/resources/",[191,224,242],{"title":192,"items":193},"Getting started",[194,199,204,209,214,219],{"text":195,"config":196},"Install",{"href":197,"dataGaName":198,"dataGaLocation":38},"/install/","install",{"text":200,"config":201},"Quick start guides",{"href":202,"dataGaName":203,"dataGaLocation":38},"/get-started/","quick setup checklists",{"text":205,"config":206},"Learn",{"href":207,"dataGaLocation":38,"dataGaName":208},"https://university.gitlab.com/","learn",{"text":210,"config":211},"Product documentation",{"href":212,"dataGaName":213,"dataGaLocation":38},"https://docs.gitlab.com/","product documentation",{"text":215,"config":216},"Best practice videos",{"href":217,"dataGaName":218,"dataGaLocation":38},"/getting-started-videos/","best practice videos",{"text":220,"config":221},"Integrations",{"href":222,"dataGaName":223,"dataGaLocation":38},"/integrations/","integrations",{"title":225,"items":226},"Discover",[227,232,237],{"text":228,"config":229},"Customer success stories",{"href":230,"dataGaName":231,"dataGaLocation":38},"/customers/","customer success stories",{"text":233,"config":234},"Blog",{"href":235,"dataGaName":236,"dataGaLocation":38},"/blog/","blog",{"text":238,"config":239},"Remote",{"href":240,"dataGaName":241,"dataGaLocation":38},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":243,"items":244},"Connect",[245,250,255,260,265],{"text":246,"config":247},"GitLab Services",{"href":248,"dataGaName":249,"dataGaLocation":38},"/services/","services",{"text":251,"config":252},"Community",{"href":253,"dataGaName":254,"dataGaLocation":38},"/community/","community",{"text":256,"config":257},"Forum",{"href":258,"dataGaName":259,"dataGaLocation":38},"https://forum.gitlab.com/","forum",{"text":261,"config":262},"Events",{"href":263,"dataGaName":264,"dataGaLocation":38},"/events/","events",{"text":266,"config":267},"Partners",{"href":268,"dataGaName":269,"dataGaLocation":38},"/partners/","partners",{"backgroundColor":271,"textColor":272,"text":273,"image":274,"link":278},"#2f2a6b","#fff","Insights for the future of software development",{"altText":275,"config":276},"the source promo card",{"src":277},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":279,"config":280},"Read the latest",{"href":281,"dataGaName":282,"dataGaLocation":38},"/the-source/","the source",{"text":284,"config":285,"lists":287},"Company",{"dataNavLevelOne":286},"company",[288],{"items":289},[290,295,301,303,308,313,318,323,328,333,338],{"text":291,"config":292},"About",{"href":293,"dataGaName":294,"dataGaLocation":38},"/company/","about",{"text":296,"config":297,"footerGa":300},"Jobs",{"href":298,"dataGaName":299,"dataGaLocation":38},"/jobs/","jobs",{"dataGaName":299},{"text":261,"config":302},{"href":263,"dataGaName":264,"dataGaLocation":38},{"text":304,"config":305},"Leadership",{"href":306,"dataGaName":307,"dataGaLocation":38},"/company/team/e-group/","leadership",{"text":309,"config":310},"Team",{"href":311,"dataGaName":312,"dataGaLocation":38},"/company/team/","team",{"text":314,"config":315},"Handbook",{"href":316,"dataGaName":317,"dataGaLocation":38},"https://handbook.gitlab.com/","handbook",{"text":319,"config":320},"Investor relations",{"href":321,"dataGaName":322,"dataGaLocation":38},"https://ir.gitlab.com/","investor relations",{"text":324,"config":325},"Trust Center",{"href":326,"dataGaName":327,"dataGaLocation":38},"/security/","trust center",{"text":329,"config":330},"AI Transparency Center",{"href":331,"dataGaName":332,"dataGaLocation":38},"/ai-transparency-center/","ai transparency center",{"text":334,"config":335},"Newsletter",{"href":336,"dataGaName":337,"dataGaLocation":38},"/company/contact/#contact-forms","newsletter",{"text":339,"config":340},"Press",{"href":341,"dataGaName":342,"dataGaLocation":38},"/press/","press",{"text":344,"config":345,"lists":346},"Contact us",{"dataNavLevelOne":286},[347],{"items":348},[349,352,357],{"text":45,"config":350},{"href":47,"dataGaName":351,"dataGaLocation":38},"talk to sales",{"text":353,"config":354},"Support portal",{"href":355,"dataGaName":356,"dataGaLocation":38},"https://support.gitlab.com","support portal",{"text":358,"config":359},"Customer portal",{"href":360,"dataGaName":361,"dataGaLocation":38},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":363,"login":364,"suggestions":371},"Close",{"text":365,"link":366},"To search repositories and projects, login to",{"text":367,"config":368},"gitlab.com",{"href":52,"dataGaName":369,"dataGaLocation":370},"search login","search",{"text":372,"default":373},"Suggestions",[374,376,380,382,386,390],{"text":67,"config":375},{"href":72,"dataGaName":67,"dataGaLocation":370},{"text":377,"config":378},"Code Suggestions (AI)",{"href":379,"dataGaName":377,"dataGaLocation":370},"/solutions/code-suggestions/",{"text":101,"config":381},{"href":103,"dataGaName":101,"dataGaLocation":370},{"text":383,"config":384},"GitLab on AWS",{"href":385,"dataGaName":383,"dataGaLocation":370},"/partners/technology-partners/aws/",{"text":387,"config":388},"GitLab on Google Cloud",{"href":389,"dataGaName":387,"dataGaLocation":370},"/partners/technology-partners/google-cloud-platform/",{"text":391,"config":392},"Why GitLab?",{"href":80,"dataGaName":391,"dataGaLocation":370},{"freeTrial":394,"mobileIcon":399,"desktopIcon":404,"secondaryButton":407},{"text":395,"config":396},"Start free trial",{"href":397,"dataGaName":43,"dataGaLocation":398},"https://gitlab.com/-/trials/new/","nav",{"altText":400,"config":401},"Gitlab Icon",{"src":402,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":400,"config":405},{"src":406,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":408,"config":409},"Get Started",{"href":410,"dataGaName":411,"dataGaLocation":398},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":413,"mobileIcon":418,"desktopIcon":420},{"text":414,"config":415},"Learn more about GitLab Duo",{"href":416,"dataGaName":417,"dataGaLocation":398},"/gitlab-duo/","gitlab duo",{"altText":400,"config":419},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":421},{"src":406,"dataGaName":403,"dataGaLocation":398},{"freeTrial":423,"mobileIcon":428,"desktopIcon":430},{"text":424,"config":425},"Back to pricing",{"href":180,"dataGaName":426,"dataGaLocation":398,"icon":427},"back to pricing","GoBack",{"altText":400,"config":429},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":431},{"src":406,"dataGaName":403,"dataGaLocation":398},{"title":433,"button":434,"config":439},"See how agentic AI transforms software delivery",{"text":435,"config":436},"Watch GitLab Transcend now",{"href":437,"dataGaName":438,"dataGaLocation":38},"/events/transcend/virtual/","transcend event",{"layout":440,"icon":441},"release","AiStar",{"data":443},{"text":444,"source":445,"edit":451,"contribute":456,"config":461,"items":466,"minimal":673},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":446,"config":447},"View page source",{"href":448,"dataGaName":449,"dataGaLocation":450},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":452,"config":453},"Edit this page",{"href":454,"dataGaName":455,"dataGaLocation":450},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":457,"config":458},"Please contribute",{"href":459,"dataGaName":460,"dataGaLocation":450},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":462,"facebook":463,"youtube":464,"linkedin":465},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[467,514,568,612,639],{"title":178,"links":468,"subMenu":483},[469,473,478],{"text":470,"config":471},"View plans",{"href":180,"dataGaName":472,"dataGaLocation":450},"view plans",{"text":474,"config":475},"Why Premium?",{"href":476,"dataGaName":477,"dataGaLocation":450},"/pricing/premium/","why premium",{"text":479,"config":480},"Why Ultimate?",{"href":481,"dataGaName":482,"dataGaLocation":450},"/pricing/ultimate/","why ultimate",[484],{"title":485,"links":486},"Contact Us",[487,490,492,494,499,504,509],{"text":488,"config":489},"Contact sales",{"href":47,"dataGaName":48,"dataGaLocation":450},{"text":353,"config":491},{"href":355,"dataGaName":356,"dataGaLocation":450},{"text":358,"config":493},{"href":360,"dataGaName":361,"dataGaLocation":450},{"text":495,"config":496},"Status",{"href":497,"dataGaName":498,"dataGaLocation":450},"https://status.gitlab.com/","status",{"text":500,"config":501},"Terms of use",{"href":502,"dataGaName":503,"dataGaLocation":450},"/terms/","terms of use",{"text":505,"config":506},"Privacy statement",{"href":507,"dataGaName":508,"dataGaLocation":450},"/privacy/","privacy statement",{"text":510,"config":511},"Cookie preferences",{"dataGaName":512,"dataGaLocation":450,"id":513,"isOneTrustButton":23},"cookie preferences","ot-sdk-btn",{"title":83,"links":515,"subMenu":524},[516,520],{"text":517,"config":518},"DevSecOps platform",{"href":65,"dataGaName":519,"dataGaLocation":450},"devsecops platform",{"text":521,"config":522},"AI-Assisted Development",{"href":416,"dataGaName":523,"dataGaLocation":450},"ai-assisted development",[525],{"title":526,"links":527},"Topics",[528,533,538,543,548,553,558,563],{"text":529,"config":530},"CICD",{"href":531,"dataGaName":532,"dataGaLocation":450},"/topics/ci-cd/","cicd",{"text":534,"config":535},"GitOps",{"href":536,"dataGaName":537,"dataGaLocation":450},"/topics/gitops/","gitops",{"text":539,"config":540},"DevOps",{"href":541,"dataGaName":542,"dataGaLocation":450},"/topics/devops/","devops",{"text":544,"config":545},"Version Control",{"href":546,"dataGaName":547,"dataGaLocation":450},"/topics/version-control/","version control",{"text":549,"config":550},"DevSecOps",{"href":551,"dataGaName":552,"dataGaLocation":450},"/topics/devsecops/","devsecops",{"text":554,"config":555},"Cloud Native",{"href":556,"dataGaName":557,"dataGaLocation":450},"/topics/cloud-native/","cloud native",{"text":559,"config":560},"AI for Coding",{"href":561,"dataGaName":562,"dataGaLocation":450},"/topics/devops/ai-for-coding/","ai for coding",{"text":564,"config":565},"Agentic AI",{"href":566,"dataGaName":567,"dataGaLocation":450},"/topics/agentic-ai/","agentic ai",{"title":569,"links":570},"Solutions",[571,573,575,580,584,587,591,594,596,599,602,607],{"text":125,"config":572},{"href":120,"dataGaName":125,"dataGaLocation":450},{"text":114,"config":574},{"href":97,"dataGaName":98,"dataGaLocation":450},{"text":576,"config":577},"Agile development",{"href":578,"dataGaName":579,"dataGaLocation":450},"/solutions/agile-delivery/","agile delivery",{"text":581,"config":582},"SCM",{"href":110,"dataGaName":583,"dataGaLocation":450},"source code management",{"text":529,"config":585},{"href":103,"dataGaName":586,"dataGaLocation":450},"continuous integration & delivery",{"text":588,"config":589},"Value stream management",{"href":153,"dataGaName":590,"dataGaLocation":450},"value stream management",{"text":534,"config":592},{"href":593,"dataGaName":537,"dataGaLocation":450},"/solutions/gitops/",{"text":163,"config":595},{"href":165,"dataGaName":166,"dataGaLocation":450},{"text":597,"config":598},"Small business",{"href":170,"dataGaName":171,"dataGaLocation":450},{"text":600,"config":601},"Public sector",{"href":175,"dataGaName":176,"dataGaLocation":450},{"text":603,"config":604},"Education",{"href":605,"dataGaName":606,"dataGaLocation":450},"/solutions/education/","education",{"text":608,"config":609},"Financial services",{"href":610,"dataGaName":611,"dataGaLocation":450},"/solutions/finance/","financial services",{"title":183,"links":613},[614,616,618,620,623,625,627,629,631,633,635,637],{"text":195,"config":615},{"href":197,"dataGaName":198,"dataGaLocation":450},{"text":200,"config":617},{"href":202,"dataGaName":203,"dataGaLocation":450},{"text":205,"config":619},{"href":207,"dataGaName":208,"dataGaLocation":450},{"text":210,"config":621},{"href":212,"dataGaName":622,"dataGaLocation":450},"docs",{"text":233,"config":624},{"href":235,"dataGaName":236,"dataGaLocation":450},{"text":228,"config":626},{"href":230,"dataGaName":231,"dataGaLocation":450},{"text":238,"config":628},{"href":240,"dataGaName":241,"dataGaLocation":450},{"text":246,"config":630},{"href":248,"dataGaName":249,"dataGaLocation":450},{"text":251,"config":632},{"href":253,"dataGaName":254,"dataGaLocation":450},{"text":256,"config":634},{"href":258,"dataGaName":259,"dataGaLocation":450},{"text":261,"config":636},{"href":263,"dataGaName":264,"dataGaLocation":450},{"text":266,"config":638},{"href":268,"dataGaName":269,"dataGaLocation":450},{"title":284,"links":640},[641,643,645,647,649,651,653,657,662,664,666,668],{"text":291,"config":642},{"href":293,"dataGaName":286,"dataGaLocation":450},{"text":296,"config":644},{"href":298,"dataGaName":299,"dataGaLocation":450},{"text":304,"config":646},{"href":306,"dataGaName":307,"dataGaLocation":450},{"text":309,"config":648},{"href":311,"dataGaName":312,"dataGaLocation":450},{"text":314,"config":650},{"href":316,"dataGaName":317,"dataGaLocation":450},{"text":319,"config":652},{"href":321,"dataGaName":322,"dataGaLocation":450},{"text":654,"config":655},"Sustainability",{"href":656,"dataGaName":654,"dataGaLocation":450},"/sustainability/",{"text":658,"config":659},"Diversity, inclusion and belonging (DIB)",{"href":660,"dataGaName":661,"dataGaLocation":450},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":324,"config":663},{"href":326,"dataGaName":327,"dataGaLocation":450},{"text":334,"config":665},{"href":336,"dataGaName":337,"dataGaLocation":450},{"text":339,"config":667},{"href":341,"dataGaName":342,"dataGaLocation":450},{"text":669,"config":670},"Modern Slavery Transparency Statement",{"href":671,"dataGaName":672,"dataGaLocation":450},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":674},[675,678,681],{"text":676,"config":677},"Terms",{"href":502,"dataGaName":503,"dataGaLocation":450},{"text":679,"config":680},"Cookies",{"dataGaName":512,"dataGaLocation":450,"id":513,"isOneTrustButton":23},{"text":682,"config":683},"Privacy",{"href":507,"dataGaName":508,"dataGaLocation":450},[685],{"id":686,"title":17,"body":8,"config":687,"content":689,"description":8,"extension":21,"meta":693,"navigation":23,"path":694,"seo":695,"stem":696,"__hash__":697},"blogAuthors/en-us/blog/authors/jason-chen.yml",{"template":688},"BlogAuthor",{"name":17,"config":690},{"headshot":691,"ctfId":692},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Jason-Chen",{},"/en-us/blog/authors/jason-chen",{},"en-us/blog/authors/jason-chen","G0l3wRpQroChNZfNOl-R70TLoQJG6NkNFdUQWqfv5YM",[699,714,727],{"content":700,"config":712},{"title":701,"description":702,"authors":703,"heroImage":705,"date":706,"body":707,"category":9,"tags":708},"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.",[704],"Ashley Knobloch","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682884/Blog/Hero%20Images/navigation.jpg","2023-08-15","\nGitLab navigation was complex and confusing - that was the message we received from our users through issues and other feedback channels. Initially, to address these concerns, we conducted research around proposed solutions, but quickly found they wouldn't help users achieve their goals well enough to warrant implementing them. In the process of learning what wasn't working and what wouldn't work, we still didn't have clarity around *why* the navigation wasn't working. This article chronicles our journey to finding that clarity and developing navigation that is easier to use and better suited to our users' needs.\n\n## Our approach\nAs a first step, we reviewed past research and user feedback to ensure we had a solid understanding of what we had done and learned already. We found that we still needed more insight into why proposed changes weren’t receiving enough positive feedback to implement them.\n\nOur goals were straightforward:\n- understand what users are doing in GitLab\n- study how they navigate the platform\n- learn why they need certain navigation elements\n\nOur perspective shifted from validating proposed solutions to going back to revalidate the problems that exist with our navigation experience. Our hypothesis was that with a deeper understanding of our users’ behavior and mental models for how they navigate around GitLab, we could develop concepts to better match their needs and improve their overall experience.\n\nThe scope of features in GitLab and the number of user personas across GitLab made this challenging. We have [16 personas](https://handbook.gitlab.com/handbook/product/personas/#user-personas) to represent different types of users, all with unique goals and techniques to achieve those goals. We focused our efforts on a subset of those personas that best represented usage across GitLab to ensure a holistic understanding of different user needs. We wanted to learn how navigation among different personas was similar and where it differed, what worked well with the current navigation, and what challenges users faced.\n\n## Studying key persona cohorts\nWe conducted [diary studies](https://handbook.gitlab.com/handbook/product/ux/ux-research/diary-studies/) with cohorts of our key personas to learn what their primary tasks and workflows were at a deeper level. This provided us with many real-world examples of how they navigate to their tasks and why. We also learned what worked well with their current workflows, what pain points existed, and what workarounds were being used (such as creating browser bookmarks, typing in the URL to pull browser history, or keeping a bunch of browser tabs open) to streamline their tasks in GitLab.\n\nWe learned that for some users, many of their primary tasks don’t require much navigation within GitLab because they use outside tools that link into GitLab through notifications (e.g., Slack and email) or use direct links through other tools. We also learned that often users’ work is quite scoped in GitLab, and they would like easier access to some of their core features without having to wade through all of the other features they don’t use. This illuminated some unmet needs that would improve their workflows, such as having the ability to customize navigation to access things important to them more quickly and streamline their path to relevant projects.\n\nLearning more about our users from a foundational perspective ensured that we had a solid base to build upon when considering changes to the navigation.\n\n## Anchoring to a North Star\nTo anchor the redesign process in user problems more broadly, a review of past feedback was analyzed that revealed three overarching themes with navigation-related feedback. These themes helped to guide the process and to remind us of the key problems we were trying to solve:\n- minimize feeling overwhelmed (ability to customize left sidebar)\n- orient users across the platform (differentiating groups and projects)\n- pick up where you left off (switching contexts)\n\nThe team continually mapped back design concepts to these themes to ensure potential solutions were rooted in user problems.\n\n## Evaluating and iterating\nNext, several navigation design concepts were developed and shared with users for feedback. Multiple rounds of [solution validation testing](https://handbook.gitlab.com/handbook/product/ux/ux-research/solution-validation-and-methods/) were conducted with our key personas to determine which design concepts to move forward with. The testing revealed how users felt about each design and also how well each design supported users completing core tasks. We identified a final concept that supported mature and new GitLab users with common workflows.\n\n## Understanding mental models for sidebar organization\nWe wanted to revisit our groupings in the left sidebar because we’ve heard over time that the organization can be confusing and unintuitive, especially some categories such as Operations. We needed to understand our users’ mental models for how they would group these items, and why. Learning the thought processes behind their organization was critical for us to know what changes to make that would align with user expectations.\n\nWe ran facilitated [card sort](https://handbook.gitlab.com/handbook/product/ux/ux-research/mental-modeling/#card-sorting) studies with our key personas to understand how they would group items in the left sidebar, and why. This helped us learn some areas that could benefit from readjusting, such as the Manage and Operate categories. We learned that users most often preferred to have analytics items together, for example, which is reflected in the Analyze tab. This insight, combined with patterns in analytics data, informed changes to the groupings in the left sidebar to better support workflows.\n\n## Launching and learning\nPrior to launching to external users, the new navigation was released to internal team members and we collected [feedback](https://gitlab.com/gitlab-org/gitlab/-/issues/403059) to help iterate and improve the experience.\n\nNext, we launched the new navigation to external users as a toggle that could be turned on optionally. During this initial launch, a [longitudinal study](https://handbook.gitlab.com/handbook/product/ux/ux-research/longitudinal-studies/) was conducted with a sample of GitLab users to learn how they experienced the change in the context of their real work. Over time, the study would provide insight into adoption among the entire user base.\n\nWe interviewed users prior to the monthlong study to learn more about their experience with the existing navigation. Then, they began using the new navigation while completing surveys and participating in interviews at checkpoints in the beginning, middle, and end of the month. This enabled us to capture their initial impressions of the new navigation, what they liked/disliked, how the new experience compared to the previous one, and if their sentiment changed over the course of the month as they continued to use the new navigation.\n\nUsers in this study found the new navigation to be an improvement from the previous one, and most preferred its features, including:\n- the ability to pin items streamlined common workflows\n- the new task-based sidebar categories in the sidebar, which they said felt more approachable, especially for newer users\n- the new navigation changes, which they said weren’t too overwhelming and felt familiar\n\nWe also learned about some opportunities to iterate and improve the new experience. For instance, some users pointed out:\n- the inability to pin entire Projects, Groups, or specific pages makes it difficult to streamline other workflows\n- some users unpin items accidentally\n- the overall lack of color can cause some features to blend in or be missed\n- it's not always easy to know what’s new in GitLab\n\n## What’s next: Iterate, listen, and iterate again\nTo capture large-scale feedback on navigation over time, we launched a new navigation-focused quarterly survey in Q1 (February) of this year. This first quarter data established a baseline of our old navigation, and beginning in Q2 (May), we began collecting data on the new navigation experience. We will monitor this closely, and look for themes to help us learn what is working well and what may need further iteration.\n\nThis survey, along with our longitudinal study feedback and various other user feedback sources, will provide insights to help prioritize iterative improvements to the new navigation experience. Stay tuned for changes, and keep sharing [your navigation feedback](https://gitlab.com/gitlab-org/gitlab/-/issues/409005) with us!\n",[709,710,711],"inside GitLab","UX","research",{"slug":713,"featured":12,"template":13},"navigation-research-blog-post",{"content":715,"config":725},{"title":716,"description":717,"authors":718,"heroImage":720,"date":721,"body":722,"category":9,"tags":723},"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.",[719],"Veethika Mishra","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682807/Blog/Hero%20Images/beautify.jpg","2023-07-05","\n\nThe current technical landscape is completely different from what it was this time last year. As the software development industry is busy evolving its understanding of _automating early and often_ in the presence of new AI capabilities, we have been focused on feature work. However, it's equally important to make sure we are adapting our UI to match up to the experience and addressing, where necessary, the misalignment between the two.\n\nIn a scaling product, where issues are competing to be prioritized, it might feel convenient to tackle the next feature issue as opposed to focusing on small visual design improvements. Advocating for the value that a small visual design change in isolation brings to the product is never easy for all the practical reasons, and this is where [the \"Beautifying our UI\" initiative](https://handbook.gitlab.com/handbook/product/ux/product-design/#beautifying-our-ui) becomes useful at GitLab. It allows a product designer and a frontend engineer to voluntarily pair up, like we did, and make self-directed improvements to the usability of GitLab.\n\nWe collaborated on many pipeline-related features in the past three years. As our responsibilities pulled us in different directions, we had to put many of our aspirational plans for improving the presentation of CI/CD features in GitLab on hold in favor of other more important things.\n\nHowever, once those were addressed, we decided to volunteer for a session of Beautifying our UI in the 16.1 milestone. To make the most of a single milestone, we began preparing a couple months in advance, soliciting ideas from team members and getting the design proposals ready in [an issue](https://gitlab.com/gitlab-org/gitlab/-/issues/394768/). After a quick prioritization exercise to understand which of the suggested improvements would be most meaningful to our users, we made a number of contributions to the product.\n\nHere are some of those contributions:\n\n### Improvement to pipeline detail page\nIn the process of troubleshooting a failing pipeline, users often have to visit their detail page for better insight into what's causing the failure. The top of the page previously had a table with all the metadata around that pipeline. Over the years, a lot of information was added to this table but the layout was never optimized to accommodate that information, which in return impacted the usability of the page. The page headers were also very different from other examples found in GitLab.\n\nBy critically looking at every piece of information displayed on the page, we made informed decisions using the qualitative insights and the usage data at hand to completely redesign the pipeline header.\n\n![image of pipeline detail page before](https://about.gitlab.com/images/blogimages/Beautifying-of-our-ui-16-1/pipeline-detail-before.png)\nBefore\n\n\n![image of pipeline detail page after making changes](https://about.gitlab.com/images/blogimages/Beautifying-of-our-ui-16-1/pipeline-detail-after.png)\nAfter\n\n\nThis work was substantial and while we did our best to avoid any negative impact to our users, we realize there might be a few issues. Please share your comments in this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/414756) about the redesign and we'll prioritize addressing them.\n\nRedesigning the pipeline header came with a few technical challenges because a lot of the code was a mix between HAML and Vue. We had to slowly refactor the pipeline header over to Vue/GraphQL to allow our code to be more performant and maintainable. It’s pretty much like building a completely new feature — we had to get creative with passing data to the Vue app from Rails.\n\n### Harmonizing badges and link styles on pipeline list view\nThe pipeline index page (list view) is one of the most visited pages in GitLab because users need to make sure any failing pipelines are identified quickly for troubleshooting. Since there's a lot going on on this page, it is critical that the UI leads users' attention to the right areas. Previously, almost every link presented in the pipeline column had a different visual treatment, which made the page visually noisy and harmed the usability and scannability of the information. Our goal was to remove anything that isn't required and harmonize the visual language so it is easy for CI/CD users to perform their jobs effectively.\n\n![image of pipeline detail page before](https://about.gitlab.com/images/blogimages/Beautifying-of-our-ui-16-1/pipeline-index-page-before.png)\nBefore\n\n\n\n![image of pipeline detail page after making changes](https://about.gitlab.com/images/blogimages/Beautifying-of-our-ui-16-1/pipeline-index-page-after.png)\nAfter\n\n\n### Linking runner number to runner admin page\nTo allow easy management of runners across an instance, we've now provided easy access to the runner admin page right from the job detail page. Previously a static test, now the runner number can directly take users with the runner admin page where they can make changes to the specific runner's configuration.\n\n![image of cancel pipeline label](https://about.gitlab.com/images/blogimages/Beautifying-of-our-ui-16-1/runner-link-from-job-logs.png)\nLinking runner admin page from job logs page\n\n\n### Improving tooltips and button text\nThe tooltips on the jobs list view were using native browser tooltips. We've changed those to use a design-system-compliant tooltip for consistency and better readability.\n\nWe gathered some useful feedback on the usability of the button labels and took this as an opportunity to improve a few of them. Here's one example where we changed the label text for the button for canceling a running pipeline from **Cancel running** to **Cancel pipeline** and added an appropriate tooltip to clearly communicate the action.\n\n![image of cancel pipeline label](https://about.gitlab.com/images/blogimages/Beautifying-of-our-ui-16-1/cancel-pipeline-label.png)\nButton with new label text\n\n\n## More to come\nWe are not stopping with this list! We will continue our partnership to bring in more visual and usability improvements to the continuous integration area in the coming months. If you are interested in taking a look at the complete list of changes we have made and the ones we still plan to make, [you can find the issue here](https://gitlab.com/gitlab-org/gitlab/-/issues/394768/).\n\n\n",[710,724],"design",{"slug":726,"featured":12,"template":13},"beautifying-of-our-ui",{"content":728,"config":738},{"title":729,"description":730,"authors":731,"heroImage":733,"date":734,"body":735,"category":9,"tags":736},"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.",[732],"Kristina Weis","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","2023-06-08","\nReleasing software faster is one of the biggest goals of many organizations — and for good reason. It helps them keep up with competitors, land and keep more customers, improve employee satisfaction, and much more. But maintaining that velocity requires investment in processes and technologies that help DevSecOps teams deliver, secure, and deploy software faster without compromising quality.\n\nIn our [2023 Global DevSecOps Survey](https://about.gitlab.com/developer-survey/) we asked more than 5,000 development, security, and operations professionals about everything from deployment frequency to the practices teams have adopted – all to learn what the most agile and efficient organizations have in common. One respondent, a director of IT security in the retail sector, summed up the challenge as follows: “Software customers are increasingly vocal and demanding, expecting faster releases and greater customizability. Developers will need to keep up with these demands while still maintaining stability and usability.”\n\nSo what’s helping organizations be more productive and efficient? Here are four of the best practices that, according to the survey, help organizations release software faster and deploy more frequently:\n\n## 1. Running applications in the cloud\nOne of the benefits people commonly attribute to deploying to the cloud is increased development speed. As it turns out, this year’s survey shows there’s some serious truth to that. Respondents with at least a quarter of their applications in the cloud were 2.2 times more likely to be releasing software faster than they were a year ago — and respondents with at least half of their applications in the cloud were 4.2 times more likely to deploy to production multiple times per day.\n\nSeveral respondents commented on the value of the cloud while also acknowledging the complexities cloud computing can bring to software development. An IT operations manager in the industrial manufacturing sector shared that “developing software that is designed for the cloud-native environment” is one of the top challenges facing software development this year. Likewise, an IT operations manager in the telecommunications sector said: “With the increase in the use of cloud computing and IoT devices, there is a greater need for secure coding practices to protect sensitive data from cyber attacks.” As organizations move to a cloud-first model for software development, they will need to adopt technologies that allow them to build natively in the cloud while keeping security top of mind throughout the development process.\n\n## 2. BizDevOps\nThough DevOps and DevSecOps mostly steal the show in terms of methodologies, some organizations go a step further and [practice BizDevOps](https://about.gitlab.com/blog/a-snapshot-of-modern-devops-practices-today/) — that is, incorporating business teams alongside development, security, and operations teams. An IT operations manager in the software sector emphasized the importance of collaboration with the business, sharing that “as software projects become larger and more complex, developers will need to work closely with other team members, including designers, testers, project managers, and business stakeholders.” This approach appears to be paying off for some: Respondents whose organizations practice BizDevOps were 1.4 times more likely to be releasing software faster than they were a year ago.\n\n## 3. CI/CD\nIt’s not surprising that automating the software development lifecycle with [CI/CD](https://docs.gitlab.com/ee/ci/) would help teams release software faster and more efficiently; however, it’s nice to see confirmation and put some numbers to the difference it can make. The survey shows that respondents [practicing CI/CD](https://about.gitlab.com/blog/how-to-keep-up-with-ci-cd-best-practices/) were twice as likely to deploy multiple times per day and 1.2 times more likely to release software faster than they did a year ago.\n\nDespite the value of CI/CD for driving efficiency, respondents also identified challenges. For instance, an IT operations associate in the aerospace/defense sector pointed to “management that doesn't understand CI/CD at all” as a blocker to more efficient software development. Meanwhile, a software development intern in the biotech sector shared that “tools to automate CI/CD, together with code editors, APM software, and defect trackers, can help with a faster and quality development cycle,” but “companies are hesitant to spend on tools that can help increase their developers’ productivity.” These responses underscore the value of investing in tools that unify CI/CD with other DevSecOps practices — such as incorporating security early in the development process and creating tighter feedback loops — to help organizations break down development silos.\n\n## 4. DORA and other metrics\nOrganizations that [make a conscious effort to track key development metrics](https://about.gitlab.com/blog/how-zoopla-uses-dora-metrics-and-your-team-can-too/) are more likely to improve them, according to the survey. This makes sense because by virtue of an organization choosing to track a metric, they’re signaling to their teams that it’s important, likely reminding them of whether the metric is improving (or not) periodically, and quite possibly prioritizing initiatives aimed at improving those metrics. We found that respondents whose organizations track their [DORA metrics](https://docs.gitlab.com/ee/user/analytics/dora_metrics.html) and other similar metrics were 1.4 times more likely to deploy multiple times per day.\n\n## A deeper dive on productivity and efficiency\n\nFor a deeper look into release velocity and deployment frequency, and all the practices that made respondents more likely to release software faster and deploy multiple times per day, check out our [2023 DevSecOps Report: Productivity & Efficiency Within Reach](https://about.gitlab.com/developer-survey/).\n\nThe report also digs into two other key factors that can have a big impact on productivity and efficiency: how long it takes to onboard new developers and how difficult or easy it is for organizations to attract, hire, and retain developers. We’ll show you where things stand and the practices that made respondents more likely to be successful.\n\n_[Read the highlights from “Security Without Sacrifices,” the first report in our 2023 Global DevSecOps Report series.](/blog/gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops/)_\n",[737,101,557,549],"developer survey",{"slug":739,"featured":12,"template":13},"best-practices-leading-orgs-to-release-software-faster",{"promotions":741},[742,756,768],{"id":743,"categories":744,"header":746,"text":747,"button":748,"image":753},"ai-modernization",[745],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":749,"config":750},"Get your AI maturity score",{"href":751,"dataGaName":752,"dataGaLocation":236},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":754},{"src":755},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":757,"categories":758,"header":760,"text":747,"button":761,"image":765},"devops-modernization",[759,552],"product","Are you just managing tools or shipping innovation?",{"text":762,"config":763},"Get your DevOps maturity score",{"href":764,"dataGaName":752,"dataGaLocation":236},"/assessments/devops-modernization-assessment/",{"config":766},{"src":767},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":769,"categories":770,"header":772,"text":747,"button":773,"image":777},"security-modernization",[771],"security","Are you trading speed for security?",{"text":774,"config":775},"Get your security maturity score",{"href":776,"dataGaName":752,"dataGaLocation":236},"/assessments/security-modernization-assessment/",{"config":778},{"src":779},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":781,"blurb":782,"button":783,"secondaryButton":788},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":784,"config":785},"Get your free trial",{"href":786,"dataGaName":43,"dataGaLocation":787},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":488,"config":789},{"href":47,"dataGaName":48,"dataGaLocation":787},1772652063078]