The page below is intended to align GitLab sales and marketing efforts with a single source of truth for our go-to-market efforts around Source Code Management.
Software Delivery Automation allows organizations to automate manual, repetitive tasks from their SDLC to improve the overall velocity of the software factory and increase collaboration across dev and ops. This includes both application and infrastructure automation.
From a GitLab capabilities point of view - it includes DevOps essentials like SCM, CI, CD, GitOps and AutoDevOps.
Source Code Management is one part of the Software Delivery Automation solution. See how Source Code Management fits into the overall Software Delivery Automation solution.
The Market Viewpoint
Source Code Management (SCM)
As organizations accelerate delivery, through DevOps, controlling and managing different versions of the application assets from code to configuration and from design to deployment is incredibly important.
Velocity without robust version control and traceability is like driving a car with out a seatbelt.
Source Code Management is more than simply tracking changes, versions, and branches of code. Effectively, it includes practices such as:
Enabling development teams to work in distributed and asynchronous environments
Managing changes and versions of code and artifacts
Enabling Review and Collaboration of code and other assets
Tracking approvals of proposed changes
Resolving merge conflicts and related anomalies
In general, version control is required because software is constantly changing. Regardless of the stage of development, there will be change to deal with.
No matter where we are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle.
E.H. Bersoff, 1980.
Companies that excel at source code management create high quality code while integrating it at high frequency.
Personas
User Persona
Being the entry point to GitLab means that many user personas find utility and a solution to their problem in Source Code Management. Let’s go through the list of power user personas and describe briefly their key motivations to use Source Code Management in GitLab:
Parker the Product Manager
PMs coordinate feature development and project success among other things. The ability to monitor progress through commits, review app and validate those changes and provide feedback is key to they success of their role
These changes, in time will generate valuable statistical insight for the PM to assess accurately development efforts of planned new features
Delaney the Development Team Lead
Just like the PM, Team Leads need also to understand their team’s capacity to assign upcoming tasks to meet goals on time accordingly
Approval workflows in Code Review allows them to become faster real team work enablers
Sasha the Software Developer
Sasha takes advantage of both Command Line Tools and GitLab’s GUI to have complete control of every commit he does to complete his tasks
Even when scope changes, a frequent hurdle and a source of frustration, branching, merging and conflict resolution will be performed in Source Code Management and will trigger CI for fast resolution
Devon the DevOps Engineer
All information relevant to the role’s goals is congregated in Source Code Management to take action on it. Time to resolution and, in general, any other key metric in DevOps is measured and its performance tracked in Source Code Management
Any improvement applied to the development process will reflect in Source Code Management’s interfaces, whether its the Merge Requests or Issues.
Cameron the Compliance Manger
Cameron needs to all the company’s development processes are compliant. Given the amount of data that a software development and delivery lifecycle produces, he finds it difficult to find, aggregate, and report on all of the necessary data for audit purposes
He needs the information to be available quickly and easily so he can reduce the time and disruption involved in the evidence collection process
Presely the Product Designer
Presley is responsible for understanding user needs and product requirements to create and iterate on design proposals to solve user needs
He would like to have clear, up-to-date requirements that he can reliably refer back to throughout the design process
Sydney the Systems Administrator
Sydney is in charge of making tools such as GitLab available and accessible to everyone.
She needs to undertand in depth the provision and scalability of the infrastructure to provide the company with a solid, fault tolerant instance of the platform.
Buyer Personas
Source Code Management purchasing typically do not require executive involvement. It is usually acquired and installed via our freemium offering without procurement or IT’s approval. This process is commonly known as shadow IT and its a great opportunity for us to eventually become a paid for service. When the upgrade is required the VP of IT is the most frequent decision maker. The influence of the VP Application Development is notable too to the owner of the budget.
Alex the Application Development Manager
Alex is highly technical, and only one step removed from an individual contributor.
Managing his budget and ensuring that his team has the right skills and overall team engagement.
Dakota the Application Development Director
Dakota is a key IT leader who manages and leads several teams of developers supporting a specific set of business applications. She has both technical and business skills and as a manager she’s focused on delivering business innovation.
She balances her time between strategic planning with her business partners, and also resolving organizational issues and roadblocks her teams are facing. She develops organizational strategies and plans to secure budget and resources for her team.
Erin the Application Development Executive (VP, etc.)
Erin is a strategic leader focused on business challenges and the big picture.
Market Requirements is a collection of capabilites we recognize are present in the Source Code Management use case. People looking to solve this use case will consider fundamental that at least one, if not all of these requirements is present in the solution they implement. To gather these in a way that represents the market with acuracy we collect data from several sources like analysts, users, competitors and thought leaders.
Market Requirement
Description
Typical features that enable this capability
Value / ROI
Protect and secure assets
The solution provides mechanisms to host (repos) project assets (source code, designs, graphics, media, etc), place and manage different change permissions for the users that access those repos as well as keep a detailed chain of custody of all changes these assets are subject of.
Single sign-on, code ownership, change reviews, change approvals, IP Allowlist/Denylist, Activity stream, GPG signed commit, Reject unsigned commits, Protected branches, branching, committer access rules, Compliance dashboard etc.
Secures IP and valuable assets. Provides information on project history changes
Enterprise Ready
The solution is robust enough to make critical functionality available at large scale, widely distributed teams in highly regulated markets. It supports multiple project structures from monorepos to service-oriented architectures such as microservices.
Geo, Geo High Availability, Disaster Recovery, Git protocol v2 support, Deduplicate Git objects for forked repositories, Download single repository files, fast and responsive application, project templates, file templates, access controls, and traceability.
Prevents outages and disruptions of development team work. Enables traceability to authors of changes to address defects or bugs in the product and auditability throughout
Supports numerous assets
The solution is able to manage and maintain the version history of the diverse assets and support the development patterns that each asset implies
Able to manage assets and files for the entire development team, no matter how diverse, creating a single source of truth for the product configuration and making visibility and communication available at every level
Foster Collaboration
The solution is designed to enable and foster collaboration among team members. The collaboration system includes manual gates and approvals as well as automated workflows.
Create fast new branches of the project, add new files/assets, collaborate on proposed changes, review comments, suggest changes, webIDE, suggestion approvals, conflict resolution, merge, diffing, hand-offs, Design management and operations, workflow automation, Wiki, snippets, version controlled snippets, Automatically update or close related issue(s) when a merge request is merged, Configurable issue closing pattern, display merge request status for builds in CI system, visibility into security scans and build stats.
Code quality increase and improved release velocity through team review and validation.
Secure Development
The solution allows for security practices to be enabled at the creation phases of the project
GitLab provides capabilities to serve huge, geographically distributed teams organized into groups, subgroups, and projects with high availability requirements. GitLab SCM supports [Geo](https://docs.gitlab.com/ee/administration/geo/index.html replicates GitLab instances to create a Disaster Recovery system for failover scenarios. Gitaly Clusters makes Git highly available for every team, hosted in gitlab.com or on prem
Repositories can host numerous types of assets such as Source Code, data narratives in Jupyter notebooks for annotated, data-driven projects, and rendered markup like GitLab flavoured Markdown, Markdown, RDoc, AsciiDoc, and Org in wikis. GitLab also hosts graphic assets and support the handover communication in issues
GitLab incorporates several security capabilities to make development more secure even before build happens. They can detect secrets and license compliance issues, find vulnerabilities in source code or in its dependencies before merging, find vulnerabilities in running apps before merging too, and in containers too. These capabilities can even reproduce what thousand of users input in seconds to detect faults and other issues with Fuzz testing
It allows for asynch, remote, collaborative work to flourish since a single copy of the complete project’s history can be stored in any machine, branching is easy and powerful so almost endless workflow possibilities open in opposition to centralized VCS like Perforce or CVS. All the information different teams produce while collaborating on source code and other digital assets in GitLab can be easily analyzed, authorized and streamlined from the Merge Request with clockwork precision. This, in turn, allows for team leads to correctly implement best practice workflows like GitLab Flow
The ability to connect every phase of the Software Development Lifecycle in one single DevOps platform. One data layer, one design system, one set of commands to manage all the different stages of software design, development, build and deployment
GitLab is the only product that increasingly provides collaboration functionality to Product teams that work not only with source code but also and IP, graphic assets, animations and binaries to mention a few.
A message house contains all the pieces of content that will clearly convey GitLab’s values and differentiators in each touch point with prospects and clients. Each touchpoint should be worth their while and should also be relevant in their relationship with GitLab in order to move the needle in their decision-making process. In other words, every single item of the message house is in context with each persona, connect with their intents, resonates with their inflection points (value drivers) and provides an easy narrative of the SCM use case to lay out next steps and make progress.
The message house for the use case provides a structure to describe and discuss the value and differentiators for the use case.
Discovery Questions
The sample discovery questions below are meant to provide a baseline and help you uncover opportunities when speaking with prospects or customers who are not currently using GitLab for SCM. See a more complete list of questions, provide feedback, or comment with suggestions for GitLab’s SCM discovery questions and feel free to contribute!
Sample Discovery Questions
How do your teams stay updated of updates/changes to the codebase?
How do different members of the team keep their changes synced with the efforts of others?
Do the software development teams keep end to end compliance? From requirement to versioned release?
How many times do your teams integrate their code?
How do your teams communicate?
What do you use to allow developers to quickly create dev environments that mimic production environments as closely as possible? (infrastructure as code + innersourcing, but if they are using Docker it might be that simple)
How well integrated is Security in your DevSecOps workflow? Are they truly integrated, or an after-thought? How does your security team see what changes are coming down the pipe, works in progress, and when things will be ready for their input? How do they quickly understand the nature of the changes and what to test? (seeing active MRs, WIP, issue boards for planning, and code/review/commits for understanding scope and nature of the change)
How is QA integrated into your dev workflow? Do they have access to the issues and code changes in one place? Are they able to see review apps for testing?
GitHub-specific discovery Questions
How did you implement your HA setup? How do you run the zero-downtime upgrades?
Remarks:
GitHub HA is not a real HA setup, it’s more like a failover solution (with sync between 2 virtual machines, there is no bare metal solution)
Moreover, zero-downtime upgrade seems not possible
How long have you been operational on GitHub Actions? Can you do whatever you want with GitHub Actions?
Any security issue with GitHub Actions? How do you protect your secret variables to not be displayed in the logs of the runners?
How do you scale your GitHub Actions runners? (versus the GitLab Kubernetes executor)
Do you use GitHub as a project management tool? Are you able to implement all of Scrum’s artifacts? How do you manage complex user stories or related to the same topic?
Remarks:
There are no Epics within GitHub
Are the vulnerability alerts sufficient for you? Do you need to use them in offline mode?
Remarks:
(pending verification) “security alerts for vulnerable dependencies” of GitHub need that your GitHub instance should be connected to GitHub Enterprise Cloud (no air-gapped version)
Are you using Codespaces? If so, what for?
Remarks:
Chances are they haven’t used it yet because it’s in pre release. But even so, an excellent time to mention the webIDE: light weight, embedded in GitLab’s GUI, configurable, linting…
If they mention the Super Linter recently released in GitHub you can mention our CodeQuality feature that supports almost as many languages as Super Linter and the fact that Super Linter can be run without much hassle in GitLab
Remarks:
GitHub Enterprise provides Organization level Analytics (Insights) on a separate self-managed server and requires the GitHub One License.
For details specific to each use case, and in respect of our contractual confidentiality agreements with Industry Analyst firms, our engagement plans are available to GitLab team members in the following protected document: IAR Use Case Profile and Engagement Plan.
For a list of analysts with a current understanding of GitLab’s capabilities for this use case, please reach out to Analyst Relations via Slack (#analyst-relations) or by submitting an issue and selecting the “AR-Analyst-Validation” template.
Gartner Peer Insights reviews constitute the subjective opinions of individual end users based on their own experiences and do not represent the views of Gartner or its affiliates. Obvious typos have been amended.
“The software is intuitive and quite easy to use. Since many software development projects require more than one person, this makes it easy to create teams and collaborate.”
“This has really aided in our ability to automate software delivery and return wasted overhead back to the pool of resources! This is a very simple to use and fast delivery tool to assist your code pipeline.”
“We use this platform in our company to version our source [code] ensure they are up to date and as a backup option. It enables us build scalable and high quality products. Ease of use and compatible with most development environments.”
“I appreciate its ability to run limitless. It has various features like issue tracker, protected branches and merge requests, which gives very nice experience.”
“GitLab is a very useful SCM. In our [organization] we have used it as a source code repository. We have extensively used branching and tags creation feature. As we work in a sprints, we have several sprint and feature branches.”
“Before GitLab, we used to make local copies of code or backup the code and then pass on the code through the server. But if our organization knew about GitLab from start, we would have immediately integrated with our development practises for ease of deployment.”
Problem Geographic separation led to software deployment that used to take weeks.
Solution GitLab Core (SCM,CI) allow opportunities for collaboration, synergies and multiple exploitations of efforts in visible way.
Result More than 140 groups adopted GitLab and more than 1500 software projects have been created. These range from mission control systems, onboard software for spacecraft, image processing and monitoring tools for Labs.
Problem Needed to increase developer efficiency and software quality
Solution: GitLab Premium (CI/CD, SCM)
Result: Improved from 1 build every two weeks to over a 1000/day, or releasing 6 times per day per developer, and an average cycle time from branch to merge is now 30 minutes; simplified workflow and simplified administration
All the new strategic pieces of ‘software development platforms are tied into GitLab. GitLab is used as a complete ecosystem for development, source code control and reviews, builds, testing, QA, and production deployments.
Problem Worldline faced bottlenecks and lack of ownership when it was using Subversion. It took 1-2 weeks to get a source code repo.
Solution GitLab Core (SCM)
Result: With GitLab Core it now takes a few seconds. Within six months, over 1,000 users were active users because GitLab is so easy to use. People excited to contribute code reviews with GitLab Merge Requests. Previous code review tools had 10-20 developers using them, while Worldline currently has 3,000 active users of GitLab - an adoption rate increase of 12,000 percent.
Problem Code base was fragmented and dev permissions were also complex to handle. This prevented devs from collaborating, deploying faster and fixing bugs and security holes.
Solution GitLab Premium (SCM, CI)
Result A full migration to their Enterprise environment was completed in 8 months. After implementation they managed to reduce friction with the ease of use of GitLab’s CI.
The following section provides resources to help CSMs lead capabilities adoption, but can also be used for prospects or customers interested in adopting GitLab stages and categories.
Playbook Steps
SCM is one part of the broader Delivery Automation solution. See Solution Selling for Delivery Automation in HighSpot for playbook guidance.
Adoption Recommendation
This table shows the recommended use cases to adopt, links to product documentation, the respective subscription tier for the use case, and product analytics metrics.
Feature / Use Case
F/C
Basic
S/P
G/U
Notes
Product Analytics
Adopt GitLab Flow
X
X
X
X
Native Highly Available / Performance Git Storage Support
X
X
X
X
Technical Support for Gitaly Cluster only availabe for Premium/Utlimate
GitLab training for Project Managers - Training to teach Project Managers how to use GitLab issues and how that relates to the create stage in the development lifecycle
DevOps Fundamentals Training - Training to teach Project Managers how to use GitLab issues and how that relates to the create stage in the development lifecycle
SCM Migration Services - Data and user migration from a previous software Version Control System to GitLab self-managed or cloud-delivered solutions
Key Value (at tiers)
Premium
Why choose GitLab Premium for SCM? Make your projects always available and keep all teams connected throughout the globe. With Premium access to source code and global collaboration is as trivial as pair programming in the office.
GitLab’s GEO functionality can improve download speeds 300% by removing network frustration from globally distributed teams. It enables innovation at scale without compromising performance, security and uptime, especially combined with Gitaly Clusters which means High Availability, high performance, and disaster recovery.
Serve your different remote teams with filtered LDAP access to specific IP hosting repos. Be able to request signed commits and enforce collaboration rules like code review rules. Leverage the power of Git protocol v2, sparse checkout and partial clone to have the most relevant copy of the centralized repo anywhere, anytime.
Key features with Premium:
Geo and DR
Approval rules for code review
Reject unsigned commits
Verified Committer
File Locking
Supports geolocation-aware DNS
Instance file templates
Group file templates
Merge request reviews
Merge Request Dependencies
Ultimate
Why choose GitLab Ultimate for SCM? Keep your IP and teams compliant and secure all the time. Provide GitLab admin’s with state of the art capability to handle large, widely distributed instances of GitLab in the most secure and flexible way. Verify everything is in place and take immediate, concise action when something goes wrong in the Security Dashboard.
Compliance programs are fully supported in GitLab. Compliance professionals can use the Compliance Dashboard to promptly find the information they need by having the relevant information surfaced from the different projects to the dashboard. Time required to manage compliance needs is thus dramatically reduced.
Application development and DevOps is fast and iterative, making it essential that teams can rapidly collaborate and iterate on new features and deliver business value. They must avoid working in silos which creates complex integration conflicts and constantly broken builds. GitLab is a comprehensive Version Control and Collaboration (VC&C) solution to deliver better software faster. A Git-based web repository that aggregates all development milestones and metadata, GitLab enables clear code reviews, asset version control, feedback loops, and powerful branching patterns to streamline software delivery. GitLab helps you deliver faster, more efficiently, and increase compliance.
Short Description
GitLab makes sense of version control and collaboration by a seamless interface to collaborate and coordinate work, review changes, and manage delivery so team members focus on solving problems and shipping value
Long Description
Version control coordinates all changes in a software project, effectively tracking changes to source files, designs, and all digital assets required for the project as well as related metadata. Projects without version control and collaboration can easily devolve into an uncontrollable mess of different versions of tonnes of project files, hindering the ability of any software development team to deliver value. GitLab makes SCM easy assembling all critical project files and assets in one seamless interface and delivering it through a single application for the entire software development lifecycle.
Key-Values
VISIBILITY
COLLABORATION
VELOCITY
Promise
Visibility across projects, groups, epics and issues. Gain insight from aggregate dev metrics and assess gaps and bottlenecks. Analyse in detail each work flow and monitor task and feature progress
Effective, contextual and actionable communication to improve code quality. Set permissions, code owners and process approvers. Keep compliance frictionless and enable team members to push progress one commit at a time
Lightning-speed branching, automation rules for Merge Requests and CI/CD
Pain points
Development teams require a specific project file structure often dictated by the technology, architecture, domain, and goals of the project. Team leads and dev managers struggle to organize projects and teams to meet the company and leadership’s expectations the most efficient way. It is not easy to connect the dots
It is difficult to collaborate and share feedback in the appropriate context and make it actionable immediately. At the same time, projects and groups require different levels of access and privileges which in turn result in a complex maze of permissions
Projects can become heavy and bloated over time with tens of thousands of files, versions, and associated metadata history, effectively making future changes and branching complex, error-prone and expensive. Lightweight projects, on the other hand, can be over-engineered easily
Why GitLab
GitLab Insights and Compliance Dashboard can aggregate and compose dashboards for Team Leads and Product Managers to capture bottlenecks, apply solutions and foster continuous improvement
GitLab’s Merge Requests and Code Quality provide the perfect canvas to manage all aspects of changing code and project assets, enabling reviews, feedback, and immediate action to improve code
GitLab Merge Request design, automated merge approvals, issue closing, and more automate tedious tasks and allow developers to focus on shipping features
Gartner Peer Insights reviews constitute the subjective opinions of individual end users based on their own experiences and do not represent the views of Gartner or its affiliates. Obvious typos have been amended.