Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Engineering Function Performance Indicators

Executive Summary

KPI Maturity Health Reason(s)
Engineering Hiring Actual vs Plan Level 2 of 3 Okay
  • Engineering is on plan. But we are lending some of our recruiters to sales for this quarter. And we just put in place a new "one star minimum" rule that might decrease offer volume.
  • Health: Monitor health closely
Engineering Non-Headcount Plan vs Actuals Level 2 of 3 Unknown
  • Currently finance tells me when there is a problem, I’m not self-service.
  • Get the budget captured in a system
  • Chart budget vs. actual over time in periscope
Engineering Average Location Factor Level 3 of 3 Attention
  • We are trending upward.
  • We need to set the target location factors on our vacancies and make sure recruiting is targeting the right areas of the globe on a per role basis.
Engineering Recruiting Average Top-of-Funnel Location Factor Level 2 of 3 Unknown
  • We need to get this as a chart in periscope.
  • We have set the target location factors on our vacancies and make sure recruiting is targeting the right areas of the globe on a per role basis.
Engineering Handbook Update Frequency Level 3 of 3 Unknown
  • Unknown. But my sense is we are not doing enough. For instance, we have not been able to fully update the handbook after the development department re-org (dev backend, and ops backend are still present. Although many of the new teams do have their own pages already)
  • We’d like to query the API for merge requests that have files matching /source/handbook/engineering/** over time
  • Also facet by Department

Key Performance Indicators

Engineering Hiring Actual vs Plan

Are we able to hire high quality workers to build our product vision in a timely manner? Hiring information comes from BambooHR where employees are in the division `Engineering`. This KPI is tracked and reported on a monthly basis but year to date (headcount v plan) is also measured.

Target: 525 engineering members by Jan 31, 2019

URL(s)

Health: Okay

Maturity: Level 2 of 3

Engineering Non-Headcount Plan vs Actuals

We need to spend our investors' money wisely. We also need to run a responsible business to be successful, and to one day go on the public market.

Target: Unknown until FY21 planning process

URL(s)

Health: Unknown

Maturity: Level 2 of 3

Engineering Average Location Factor

We remain efficient financially if we are hiring globally, working asynchronously, and hiring great people in low-cost regions where we pay market rates. We track an average location factor by function and department so managers can make tradeoffs and hire in an expensive region when they really need specific talent unavailable elsewhere, and offset it with great people who happen to be in low cost areas.

Target: .58 average location factor

Chart (Sisense↗)

Health: Attention

Maturity: Level 3 of 3

Engineering Recruiting Average Top-of-Funnel Location Factor

We need to be proactive in measuring our location factor, starting with candidates who are at the top of the recruiting funnel.

Target: 0.58

URL(s)

Health: Unknown

Maturity: Level 2 of 3

Engineering Handbook Update Frequency

The handbook is essential to working remote successfully, to keeping up our transparency, and to recruiting successfully. Our processes are constantly evolving and we need a way to make sure the handbook is being updated at a regular cadence. This data is retrieved by querying the API with a python script for merge requests that have files matching `/source/handbook/engineering/**` or `/source/handbook/support/**` over time.

Target: Unknown until we reach maturity level 2

Chart (Sisense↗)

Health: Unknown

Maturity: Level 3 of 3

Regular Performance Indicators

Diversity

Diversity & Inclusion is one of our core values, and a general challenge for the tech industry. GitLab is in a privileged position to positively impact diversity in tech because our remote lifestyle should be more friendly to people who may have left the tech industry, or studied a technical field but never entered industry. This means we can add to the diversity of our industry, and not just play a zero-sum recruiting game with our competitors.

Target: It's against company policy to set diversity quotas (but we may add benchmarks to compare ourselves against).

URL(s)

Health: Attention

Maturity: Level 2 of 3

Team Member Retention

People are a priority and attrition comes at a great human cost to the individual and team. Additionally, recruiting (backfilling attrition) is a ludicrously expensive process, so we prefer to keep the people we have :)

Target: 90%

URL(s)

Health: Okay

Maturity: Level 2 of 3

Engineering Discretionary Bonus Rate

Discretionary bonuses offer a highly motivating way to reward individual GitLab team members who really shine as they live our values. Our goal is to award discretionary bonuses to 10% of GitLabbers in the Engineering function every month.

Target: 10%

URL(s)

Health: Unknown

Maturity: Level 2 of 3

Other PI Pages

Legends

Maturity

Level Meaning
Level 3 of 3 Has a description, target, and Sisense embed (if public) or URL (or not).
Level 2 of 3 Missing one of: description, target, or Sisense embed (if public) or URL (or not).
Level 1 of 3 Missing two of: description, target, or Sisense embed (if public) or URL (or not).
Level 0 of 3 Missing a description, a target, and Sisense embed (if public) or URL (or not).

Health

Level Meaning
Okay The KPI is at an acceptable level compared to the threshold
Attention This is a blip, or we’re going to watch it, or we just need to enact a proven intervention
Problem We'll prioritize our efforts here
Unknown Unknown

How to work with pages like this

Data

The heart of pages like this is a data file called /data/performance_indicators.yml which is in YAML format. Almost everything you need to do will involve edits to this file. Here are some tips:

Two flags to note:

Pages

Pages like /handbook/engineering/performance-indicators/ are rendered by and ERB template.

These ERB templates call the helper function performance_indicators() that is defined in /helpers/custom_helpers.rb. This helper function calls in several partial templates to do it's work.

This function takes a required argument named org in string format that limits the scope of the page to a portion of the data file. Possible valid values for this org argument are listed in the org property of each element in the array in /data/performance_indicators.yml.