Incubation Engineering Department

Incubation Engineering Department

The Incubation Engineering Department focuses on projects that are pre-Product/Market fit. The projects they work on align with the term “new markets” from one of our product investment types. They are ideas that may contribute to our revenue in 3-5 years time. Their focus should be to move fast, ship, get feedback, and iterate. But first they’ve got to get from 0 to 1 and get something shipped.

We utilize Single-engineer Groups to draw benefits, but not distractions, from within the larger company and GitLab project to maintain that focus. The Single-engineer group encompasses all of product development (product management, engineering, design, and quality) at the smallest scale. They are free to learn from, and collaborate with, those larger departments at GitLab but not at the expense of slowing down unnecessarily.

The Department Head is the VP of Incubation Engineering.

FY25 Direction

In FY25 we will continue to mature some of our key projects and to contribute to new opportunities within the AI sphere to build upon the capabilities that GitLab offers. Our current batch of projects are building customer value and interest and achieving significant monthly growth milestones. Our aim is to reach a level of maturity with these projects that allows us to graduate or reassign these groups to new opportunities.

Our success is tied to the community of developers and users that can benefit from our features, and strong collaboration and engagement with those groups is a key focus for this year. As our team matures, we need to be mindful of setting a culture of innovation and results. We do this through encouraging experimentation and autonomy, whilst being collaborative and transparent to internal teams and external stakeholders. The Incubation Engineering team is unique within GitLab in that the team members are not working on shared problems, but have the same challenges and shared experiences. We should ensure that successes and failures are documented and shared amongst team members to help each other grow and to minimise the inherent isolation and stress that can be part of this role.

Investment Framework

The aim of the SEG’s in the Incubation Engineering Department is to get ideas for new markets into the Viable category from our maturity framework. Ideas that we successfully incubate will become a stage or feature within the relevant areas of our product, with full Product, Engineering, UX and Infrastructure support for future development.

In some cases we may invest in an SEG and then decide to acquire an existing product or team in the same area. These situations are disruptive, but unavoidable, and we will work closely with the affected SEG to adapt.

In order to determine our investment into an SEG, we use the following assumptions:

  • SEGs have a 25% success rate (as opposed to 5% of VC funded companies), due to the existing market reach and technical foundations of the GitLab product and the culture, processes and support from the wider organisation.
  • SEG’s mature categories at a 50% faster rate than regular GitLab Category Maturity features, due to the narrow focus of our investments.
  • SEG’s ramp up revenue as good as the best startups in the world (5 year to $100M ARR)

Reference:

What is a New Market?

A new market in our product roadmap is a long-term bet to help us expand our Serviceable Addressable Market (SAM) over a 3-5 year time horizon.

We look at areas that fit within our company mission that we currently do not service and have one or more competitors that have validated the customer need. Our criteria for entering these markets is that there is at least one competitor that is attaining over $100M annual recurring revenue, or at least 3 venture capital funded startups that have taken over $5M in funding. We track our understanding of these markets via this internal document.

We also manage projects that may not fit the above definition, but are well suited to the SEG model that we use as they require a degree of experimentation with significant risk of failure. These are significant defensive roadmap items that are important to work on to maintain our market share and competitive advantage in an area, but we cannot yet justify funding a larger R&D effort.

The Incubation Engineering Department is not suited to deliver regular roadmap items as they are typically smaller in effort, have less risk of failure, and have less scope for experimentation to determine product/user fit.

Approach

Key to the success of Incubation Engineering is the ability to iterate on ideas quickly and move on when we can’t find customer traction. We should be able to ship ideas and grow their usage quickly.

Each project should be able to identify a vision and ship working code within the first month after inception, and then have regular monthly goals of continuing iteration and usage growth. SEGs that aren’t well defined will require research to determine a direction. This research phase should include updates to the SEG handbook page, epics/issues, video update(s), and code where that makes sense. We should be aiming foremost for customer results, and not shipping features (even if they show usage) that don’t demonstrate clear customer value.

Each SEG page has a list of the targets and progress for each month, and these should also be demonstrated in a monthly showcase.

Current Focus

Future Interest

Matured Projects

On Hold / Cancelled

Demonstrating Progress

Our key focus is to ship software, we do this Iteratively and Transparently in an Agile way, concentrating on having something that works as soon as possible that we can build upon.

For each of our Investment areas, we aim to showcase our progress using the Engineering Demo Process. On the tracking issue for each area, each SEG should provide a status update and a link to a video of the current functionality. We should aim to develop a scorecard to help grade our progress against each of the key features we are trying to develop, and include this in the update.

We do this in order to ensure alignment with impacted teams at GitLab, to provide opportunties for Collaboration from interested GitLab team members, community members, and users, and finally to demonstrate Results.

Mid Month Update Video

Around the 15th of the month each SEG should provide a short update video that covers the following key points:

  • What progress have we made? Each week we should be moving closer to our goal of having a Viable product or feature.
  • Current Usage and Used Feedback We should strive to measure usage of our ideas from the beggining. How is the adoption of the idea we are working on?
  • What have we learnt? Either through technical research, experiementation, or feedback, do we better understand the problem we are trying to solve?
  • What new decisions do we need to make? Have we identified any new opportunities or options that need wider consultation to help address?
  • What is our next focus? Our next demo is in a week - what do we want to showcase?
  • What is the recommended video duration? We strive to maintain an “executive briefing” format for these videos, thus keeping the length around the ~3 minute mark.

End of Month Showcase

At the end of the month, we should have a monthly showcase which demonstrates the current state of each project and future plans, and does not assume any prior knowledge of the progress or vision.

Conventions for SEG Videos

When uploading a video to our YouTube channel, we should:

  • Make sure they are public
  • Use a consistent naming convention for the SEG. Take these as inspiration:
    • “Incubation Engineering - Mobile Ops - Update 4”
    • “Incubation Engineering - Breach and Attack Simulation - Update 2023-02-21”
    • “Incubation Engineering - Service Desk - January 2023 Showcase”
  • Add the video to the Incubation Engineering playlist, and the playlist dedicated to each section
  • Add it to the specific Incubation Engineer direction handbook page

Latest Demos

YouTube Playlists

OKRs

The Incubation Engineering department commits to and tracks quarterly Objectives and Key Results (OKRs).

See the list of Incubation Engineering OKRs in GitLab.

SEG Lifecycle

When an SEG is ready to be handed off to a product development group or other team inside GitLab, there will necessarily be some handover required. Product development groups who are going to be taking over the SEG can accelerate their work by borrowing the Incubation Engineer. This will allow full-time and continuous support for up to 3 milestones.

Key Performance Indicators

Incubation Engineering Key Performance Indicators

Where to find us

Incubation Engineering Projects and Issues

You can also reach us on Slack at #incubation-eng in Slack (GitLab internal)

Playbook

The Incubation Engineer’s Playbook contains useful tips and tricks an Incubation Engineer may employ for SEG and project success.

Offsites

From time-to-time Incubation Engineers get together to discuss and share ideas, learn from each other, and discuss the latest trends in the industry.

Details are logged in the Incubation Offsites page.

The Incubation Engineer’s Playbook contains useful tips and tricks an Incubation Engineer may employ for SEG and project success.


⛅🌱 Cloud Seed
⛅🌱 Cloud Seed GitLab is the one DevOps platform. Teams use GitLab (SaaS or self-managed) for development, planning, collaboration and automation. However, digital transformation is incomplete without cloud adoption. Thus, Cloud Seed — a collaboration with Google Cloud — makes it trivial to consume cloud services from GitLab. Capabilities Generate Google Cloud Service Accounts Service accounts are authentication credentials that can be generated from the GitLab web interface Used for a wide range of integrations and automation with Google Cloud services Deploy to Google Cloud Run Cloud Run is a fully managed deployment platform for containerized applications Setup automated deployments to Cloud Run via the GitLab web interface including support for Preview Environments Every Git commit, branch and tag is automatically deployed to the appropriate Cloud Run service environment Provision Google Cloud SQL databases Provision popular database instances easily from the GitLab web interface Support all major versions of PostgreSQL, MySQL and SQL Service Generate instances, databases and users to be used with deployment and test automations Environment (i.
AI Assist Single-Engineer Group
About the AI Assist SEG The AI Assist SEG has matured to be part of the AI Assisted product group to support the development of Code Suggestions which was released as a Beta in GitLab 15.9.
Airflow Single-Engineer Group
About the Airflow SEG Latest video Previous 5 videos Date Tl;DW; Video 2023-01-12 DAG overview page is now pretty https://youtu.be/E3_YGF7Wr2k{:target="_blank"} 2023-01-05 Developed the first Airflow page with an overview of Dags https://youtu.be/oFs4OsHZfRw{:target="_blank"} 2022-12-21 First video that started this SEG https://youtu.be/Jrjp6_rdDo4{:target="_blank"} Apache Airflow Airflow is the de facto tool for data teams to schedule and execute ELT pipelines, Machine Learning pipelines, DevOps tasks and really any task that requires scheduling. Its cronjob turned up to 11.
Application Performance Monitoring Single-Engineer Group
About the Application Performance Monitoring (APM) SEG The APM SEG aims to integrate monitoring and observability into our DevOps Platform in order to provide a convenient and cost effective solution that allows our customers to monitor the state of their applications, understand how changes they make can impact their applications performance characteristics and give them the tools to resolve issues that arise. This group is split into three APM’s that will focus on each part of the architecture:
Breach and Attack Simulation (BAS) Single-Engineer Group
Breach and Attack Simulation (BAS) Single-Engineer Group The Breach and Attack Simulation (BAS) SEG is a Single-Engineer Group within our Incubation Engineering Department. Updates The Single Source of Truth for status is tracked in the Breach and Attack Simulation epic. Product Development Group affinity Composition Analysis group in the Secure stage is charged with Dependency Scanning and [Operational] Container Scanning which both lend themselves to the reconnaissance. Dynamic Analysis group in the Secure stage owns API Security and DAST which can be expanded upon by emulating attacker behavior.
Dependency Firewall Single-Engineer Group
Dependency Firewall Single-Engineer Group The Dependency Firewall SEG is a Single-Engineer Group within our Incubation Engineering Department. We have an existing Dependency Firewall category which aims to prevent any unknown or unverified providers from introducing potential security vulnerabilities. This SEG will work closely with that group to accelerate the development of the Dependency Firewall feature, and integrate closely with the work taking place on the Dependency Proxy. An initial MVP may be to implement NPM Audit with a UX that allows a user to specify an allow/deny list against criteria for the container registry.
Developer Portal Single-Engineer Group
Developer Portal Single-Engineer Group The Developer Portal SEG is a Single-Engineer Group within our Incubation Engineering Department. This SEG aims to provide a developer portal for our customers, hosted on GitLab, that is a conduit to various metrics, tools and documentation. Examples include: Infrastructure health Metrics such as MR numbers, service desk requests, open issues etc Deployment and pipeline status and progress Quick links to documentation and internal tools. Additional Reading Introduction to Backstage
DevOps for Salesforce Single-Engineer Group
DevOps for Salesforce Single-Engineer Group The DevOps for Salesforce SEG is a Single-Engineer Group within our Incubation Engineering Department. Our aim is to improve GitLab’s capabilities for customers deploying applications onto Salesforce by integrating our DevOps capabilities. Our first iteration will be to build visual pipelines specific to the Salesforce CI/CD requirements, and develop community templates that can quickly help developers manage their end to end test and release requirements.
Five Minute Production
Five Minute Production Important The Five Minute Production project has evolved into ⛅🌱 Cloud Seed. This page is dated and being maintained for archival purposes. Check out ⛅🌱 Cloud Seed for the latest version The objective of the Five Minute Production (5MP) incubation project is to make (non-k8s) deployments trivial for GitLab users. This includes, but is not restricted to, AWS and Google Cloud as deployment targets. The original 5MP prototype was built between November 2020 and January 2021 and a short video description of it’s usage and internals is available.
Incubation Engineer's Playbook
Incubation Engineer’s Playbook This playbook contains useful tips and tricks an Incubation Engineer may employ for SEG and project success. Structuring each Project page Each Incubation Engineering project has its own handbook page which is linked from our list of current projects. The following sections are should be included: Problem Statement Outline the problem that we’re trying to solve for our users. Vision How do we intend to solve the problem?
Incubation Engineering Department Performance Indicators
Executive Summary KPI Health Status SEG Category Maturity Okay New metric Community Engagement Okay New metric Key Performance Indicators SEG Category Maturity Incubation Engineering Single-Engineer Groups aim to reach a Viable level of maturity for each of our areas of focus. We aim to accomplish this within 12 months of inception. This metric focuses on our ability to ship a product, not on the success or failure of usage, market share, or revenue based metrics.
Incubation Engineering Maturity Stages
Incubation Engineering Maturity Stages This guide provides guidelines and best practices for how to properly position an Incubation Engineering project, and what needs to be accomplished in order for a project to mature from Experiment to Beta to Generally Available. Establish an Experiment The first step when releasing the first iteration for an Incubation Engineering project is to establish the experiment. See the documentation for more details on what makes a GitLab Experiment.
Incubation Engineering Offsites
Incubation Engineering Offsites 2022 - May 17th, 18th and 18th - Amsterdam, The Netherlands The team got together in the Mindspace Dam office at the heart of Amsterdam, spending three days together sharing learnings and brainstorming paths to success. Retrospectives Post-event retrospectives were held to help the team reflect on the offsite. Bartek Good Team enjoyed meeting each other, and I could see lots of conversations on overlap between different SEG’s.
Istio Single-Engineer Group
Istio Single-Engineer Group The Istio SEG is a Single-Engineer Group within our Incubation Engineering Department. Istio is an open source service mesh platform that provides a way to control how microservices share data with one another and allows users to run distributed applications at scale. Istio solves connectivity challenges inherent to distributed services: Routing traffic correctly between distributed applications Providing retries and failsafes for connectivity issues Connection security Observability of connectivity and traffic flows.
Jamstack Single-Engineer Group
Jamstack Single-Engineer Group The Jamstack SEG is a Single-Engineer Group within our Incubation Engineering Department. This group’s mission is to enable Frontend developers to build, deploy and manage externally facing, static websites using Jamstack architecture in a simple, configurable and scalable way. Frontend engineers should be able to use GitLab as the primary place to manage Jamstack Frontends. Latest Update See the “Weekly Update” Epic for a list of all prior updates.
Low-Code / No-Code Single-Engineer Group
Low-Code / No-Code Single-Engineer Group The LCNC SEG is a Single-Engineer Group within our Incubation Engineering Department. Low-code and no-code are two distinct concepts that target different personas and require separate product strategies. This page presents low-code and no-code work streams in two sections. Latest video Recent updates Date Summary Video 2023-02-01 Showcase #1 https://youtu.be/7RQreQQk1NY{:target="_blank"} 2022-12-17 Visual Workflow Builder POC https://youtu.be/DI-IcY6vm6g{:target="_blank"} 2022-11-28 Automation UX POC https://youtu.be/w-dGDBlIr0Y{:target="_blank"} 2022-10-31 Workflow Automation MVC https://youtu.
MLOps Incubation Engineering
MLOps Single-Engineer Group DRI: @eduardobonet MLOps is a Single-Engineer Group within our Incubation Engineering Department. This group works on early feature exploration and validation related to the MLOps group within the ModelOps stage. Vision & Mission Mission: Make GitLab a tool Data Scientists and Machine Learning Engineers love to use. Vision: Identify opportunities in our portfolio to explore ways where GitLab can provide a better user experience for Data Science and Machine Learning across the entire Machine Learning life cycle (model creation, testing, deployment, monitoring, and iteration).
Mobile DevOps Single-Engineer Group
Mobile DevOps Single-Engineer Group The Mobile DevOps SEG is a Single-Engineer Group within our Incubation Engineering Department. Vision GitLab’s vision for Mobile DevOps is to provide high-value, best-in-class capabilities for enterprise flagship apps. What’s Available Today? Feature Status macOS Build Environments Public Beta Project-level Secure Files GA Apple App Store Integration GA Google Play Integration GA What’s Next & Why? The future roadmap for Mobile DevOps will look to mature the build, sign, and release capabilities that exist today while introducing new features to support the test and secure stages of the process.
Monitor APM Single-Engineer Group
Monitor APM Single-Engineer Group Monitor APM is a Single-Engineer Group within our Incubation Engineering Department. Our aim is to integrate monitoring and observability into our DevOps Platform in order to provide a convenient and cost effective solution that allows our customers to monitor the state of their applications, understand how changes they make can impact their applications performance characteristics and give them the tools to resolve issues that arise. APM is a core part of the DevOps workflow as it shows the direct impact of deployed changes.
OKR Management Single-Engineer Group
OKR Management Single-Engineer Group The OKR Management SEG is a Single-Engineer Group within our Incubation Engineering Department. Goal To develop Objectives & Key Results(OKR) functionality within GitLab. Philosophy To create an MVP that is: Very loose and un-opinionated to accommodate different styles of OKRs across companies, or departments within the same company Separate from planning and project management features, but optional linkage Accommodating of non-product development persona use from customer/user organizations Specific areas that we aim to address within Incubation Engineering are:
Real-time Editing of Issue Descriptions (REID) Single-Engineer Group
The Real-time Editing of Issue Descriptions (REID) Single-Engineer Group Real-time Editing of Issue Descriptions (REID) was a Single-Engineer Group (SEG) investment within GitLab’s Incubation Engineering Department. This SEG effort has ended due to a team member departure, effective March 16, 2023. Vision The goal of REID was to ship an MVP to enable real-time collaborative editing of issue descriptions. This would also serve as the foundation for building additional real-time collaborative text-editing use cases at GitLab.
Secrets Rotation Single-Engineer Group
Secrets Rotation Single-Engineer Group The Secret Rotation SEG is a Single-Engineer Group within our Incubation Engineering Department. Our aim is to create a secrets management solution that automatically rotates secrets in both CI pipelines at runtime, as well as into an already deployed running application. We can iterate towards this solution by integrating with existing well known tools.
Self Healing Dependencies
Self Healing Dependencies Single-Engineer Group The Self Healing Dependencies is a Single-Engineer Group within our Incubation Engineering Department. The Self Healing Dependencies group aims to provide users/developments with automated assistance that helps them to keep their dependencies updated. In GitLab we understand which customer repositories and containers are affected by problems or vulnerabilities with an underlying library used by your code. This allows us to create a merge request that fixes the issue.
Server Runtime Single-Engineer Group
Introduction This page provides a comprehensive overview of Server Runtime and catalogs relevant links and pages. It is created and maintained by @shekharpatnaik. The Server Runtime SEG Single-Engineer Group is a part of Incubation Engineering Department. About Server Runtime Server Runtime is aimed at engineering a performant, scalable remote development experience & productizing it as a customer offering. When this comes to fruition, we envision being able to bring to bear a remote development experience that is browser and platform agnostic and lets GitLab users build, run and test their code right within the GitLab platform.
Service Desk Single-Engineer Group
Service Desk Single-Engineer Group The Service Desk SEG is a Single-Engineer Group within our Incubation Engineering Department. Vision Our goal is to provide a complete, yet lightweight and customizable customer support solution that seamlessly integrates with the GitLab ecosystem and brings customers, support staff and developers closer together. Mission Make Service Desk useful for professional support teams so they efficiently and effectively work through their support issues. Helping organizations build a professional and on-brand customer support workflow that grows with the business.
Last modified February 29, 2024: Minor changes to Incubation page (5146212c)