- You are here:
- Objectives and Key Results (OKRs)
What are OKRs?
OKRs are our quarterly goals to execute our strategy. The make sure our goals are clearly defined and aligned throughout the organization. For more information see Wikipedia and Google Drive (GitLab internal). The OKRs are our quarterly goals
Owner: Key Result as a sentence. Metric
- We use two spaces to indent instead of tabs.
- OKRs start with the owner of the key result. When referring to a team lead we don't write 'lead' since it is shorter and the team goal is the same.
- The key result can link to an issue.
- The metric can link to real time data about the current state.
- The three company/CEO objectives are level 3 headers to provide some visual separation.
We only list your key results, these have your (team) name on them. Your objectives are the key results under which your key results are nested, these should normally be owned by your manager. We do OKRs up to the team or director level, we don't do individual OKRs. Part of the individual performance review is the answer to: how much did this person contribute to the team key objects? We have no more than five layers in our team structure. Because we go no further than the team level we end up with a maximum 4 layers of indentation on this page (this layer count excludes the three company/CEO objectives). The match of one "nested" key result with the "parent" key result doesn't have to be perfect. Every team should have at most 9 key results. To make counting easier only mention the team and people when they are the owner. The advantage of this format is that the OKRs of the whole company will fit on 3 pages, making it much easier to have an overview.
The key results are updated continually throughout the quarter when needed. Everyone is welcome to a suggestion to improve them. To update: make a merge request and assign it to the CEO. If you're a team member or in the core team please post a link to the MR in the #ceo channel.
At the top of the OKRs is a link to the state of the OKRs at the start of the quarter so people can see a diff.
Timeline of how we draft the OKRs:
- Executive team pushes updates to this page: 4 weeks before the start of the quarter
- Executive team 90 minute planning meeting: 3 weeks before the start of the quarter
- Discuss with the board and the teams: 2 weeks before the start of the quarter
- Executive team 'how to achieve' presentations: 1 week before the start of the quarter
- Add Key Results to top of 1:1 agenda's: before the start of the quarter
- Present OKRs at a functional group update: first week of the quarter
- Present 'how to achieve' at a functional group update: during first three weeks of the quarter
- Review previous quarter and next during board meeting: after the start of the quarter
Spontaneous chat messages from team members after introducing this:
- As the worlds biggest OKR critic, This is such a step in the right direction :heart: 10 million thumbs up
- I like it too, especially the fact that it is in one page, and that it stops at the team level.
- I like: stopping at the team level, clear reporting structure that isn't weekly, limiting KRs to 9 per team vs 3 per team and 3 per each IC.
- I've been working on a satirical blog post called called "HOT NEW MANAGEMENT TREND ALERT: RJGs: Really Just Goals" and this is basically that. :wink: Most of these are currently just KPIs but I won't say that too loudly :wink: It also embodies my point from that OKR hit piece: "As team lead, it’s your job to know your team, to keep them accountable to you, and themselves, and to be accountable for your department to the greater company. Other departments shouldn’t care about how you measure internal success or work as a team, as long as the larger agreed upon KPIs are aligned and being met."
- I always felt like OKRs really force every person to limit freedom to prioritize and limit flexibility. These ones fix that!
Summary: With a great team make a popular next generation product that grows revenue.
TODO: Link to Diff with the start of the quarter
Objective 1: Grow incremental ACV according to plan.
- CEO: Build sales qualified leads (SQL) pipeline for new business. 300% of incremental annual contract value (IACV) plan
- CMO: Identify CE installations within strategic organizations with installations with over 500 users and launch demand generation campaigns.
- CMO: More demand coming from inbound marketing activities. 50% of sales pipeline quota
- CMO: Increase EE Trials. 21% Quarter over Quarter (QoQ)
- CMO: Increase EE Trial SQL $ pipeline contribution 43% QoQ
- CFO: Forecast accuracy and delivery of relevant information
- Controller: Zuora to Salesforce reconciliation complete and tested.
- CFO: Forecasting model projects forecast +/- 10% normalized for big deals.
- Controller: Zuora to Salesforce to Zendesk data synch completed.
- CFO: Deliver 10 SQLs > $10k during quarter through investor outreach
- VP Prod: Salesforce shows usage. Version check, usage ping, and ConvDev index are available in SFDC.
- VP Prod: Import documentation for all major platforms. Five new import docs shipped.
- CRO: 100% of quota-carrying reps at 3x pipeline of quarterly IACV goal
- Alliances: generates 10% of sales pipeline
- Federal: generates 10% of sales pipleine
- Customer Success: generate 15% of sales pipeline quota
- SDR lead: Generate 25% of sales pipeline quota
- SDR lead: Get an SQL from Fortune 1000 companies identified using CE. 50% of identified companies using CE.
- SDR lead: Double Win Rate. 10%
- CRO: Increase new business sales velocity. Grow 200% YoY to 602 new business deals closed won.
- CRO: Decrease age of non-web direct deals by 10%
- CRO: Keep sales efficient. Sales efficiency ratio > 1.8 (IACV / sales spend)
- CMO: Keep marketing efficient. Marketing efficiency ratio > 3.4 (IACV / marketing spend)
- CEO: Understand and improve existing account growth. 200% YoY
- CEO: Increase average sales price (ASP) (IACV per won) by 25% QoQ
- CRO: Triple average new business deal size YoY
- CRO: [50% of IACV from EEP](https://gitlab.com/gitlab-com/sales/issues/143_
- CMO: More sales assets. 3 new for each stage (TOFU, MOFU, BOFU) of the sales process
- PMM: Sales Demo easy to give. At least one Account Executive can do it in 10 minutes.
- CRO: Sales Demo trained. 75% of customer facing team passes test.
- VP Prod: Conversational Development Index in product and SFDC.
- VP Prod: Improve JIRA support. Better than Bitbucket. Support transitions, references and development panel.
- Technical writing: Create a page on our JIRA integration and how to move to Issues. 100% increased usage of JIRA integration.
Objective 2: Popular next generation product.
- CEO: GitLab.com ready for mission-critical tasks. 99% of user requests < 1s
- VP Scaling: Highly Available. 99.9%
- Production: Scalable and HA setup for cache and background jobs storage. Persistence of cache (Redis) and background job storage (Sidekiq) split and HA is setup for persistent storage.
- Production: Robust backups with automatic periodic restores. Counter on monitor.gitlab.net shows days since last automatic restore of database and file system.
- Production: Multi-canary deployments enabled. PoC of two canaries via kubernetes with Build team's Helm charts.
- Production: Enable GitLab.com search using ElasticSearch. Provide a cluster that is 99% available for > 2 months in Q3.
- Database: Run pgbouncer from Omnibus. Shipped
- Database: Use Omnibus provided software for HA / failover instead of using a GitLab.com specific setup. Shipped and In Use
- VP Eng: Enable High Availability
- Platform: Enable graceful degradation when file servers are down
- Platform: Support multiple Redis clusters for persistent and cache stores
- Platform: Use Geo DR to move between clouds and Area Zones
- Support: Improve GitLab provided debugging tools. We'll log all times we need terminal access and create an issue for each to improve GitLab tools.
- Prometheus: Allow monitoring of Unicorn, Sidekiq, and gitlab-shell. Deprecate InfluxDB
- Edge: Make GitLab QA test backup/restore, LDAP, Container Registry, and Mattermost
- CI/CD: Decrease monthly per minute cost of shared runners. Cost down by 30%
- CI/CD: Improve responsiveness for pipelines without any existing builds. 99% start within 1s
- VP Scaling: Lower latency. 99% of user requests < 1 second
- Gitaly: Gitaly service active on file-servers.
- Gitaly: Roll out Gitaly migrations. 24 additional endpoints migrated to Gitaly and in acceptance testing
- Gitaly: Reduce “idea to production” time of migrations. 80% of all migrations started in Q3 are enabled on GitLab.com within two GitLab releases.
- Database: Reduce the p99 of SQL timings across the board to 200 ms (100-200 ms less than what we have now).
- VP Eng: Lower latency in application
- Discussion: Solve performance issues. Reduce p95 of discussion-related actions with over 10 hits/day to < 1 s. Reduce p99 to < 3 s.
- Platform: Solve performance issues. Reduce p95 of platform-related actions with over 10 hits/day to < 1 s. Reduce p99 to < 3 s.
- Frontend: Measure end-to-end performance of frontend rendering
- Edge: Ship large database seeder for developers
- Edge: Enable Bullet by default
- VP Eng: Eliminate critical stability issues
- Discussion: Merge requests get merged 100% without ever getting into stuck locked state
- Platform: Project authorizations fast (< 1 s) and consistent (requires no manual refreshes). DONE
- Platform: Project imports and forks complete 100% without ever getting stuck
- Platform: Namespace and project renames work 100% of the time
- Platform: Repository cache state eventually consistent within minutes (no manual expiration needed)
- Frontend: Implement cross-browser automated testing. Catch at least one browser regression before release date.
- CI/CD: In case of runners infrastructure failure, do automatic failover. Done
- CI/CD: Make runners work on Google Compute Engine without dying halfway. Done
- CI/CD: Track and ensure the number of job failures due to system failure. Number < 0.01%
- VP Scaling: Secure platform
- Security: Improve defenses. Implement top 10 actions from Risk Assessment.
- Security: Vulnerability testing. Conduct external testing.
- Security: Improve security practices through people and processes. Backlog of security issues reduced by 50% (currently 148 issues in gitlab-ce, 9 in gitlab-ee, 69 on infrastructure).
- CEO: Increased usage of idea to production. 100% growth
- CEO: Next generation product. Ship Auto DevOps demo.
Objective 3: Great team.
- CEO: Effective leadership. NPS of leaders as rated by their reports 10% improvement
- Sr.Dir.PO: Management completed basic management (MGR) classes. 75% completed
- Sr.Dir.PO: 5 GitLab specific courses for the management team. Published and delivered.
- CFO: Real-time analytics platform. 40% of metrics live
- CEO: Attract great people. New hire score 2% improvement
- Sr.Dir.PO: More sourced recruiting. 20% of total hires
- Sr.Dir.PO: Hires from lower cost locations. 20% increase
- Sr.Dir.PO: Great recruiting process. NPS of applications 5%
- Sr.Dir.PO: Structured interview questions. Implemented for 4 positions
- Sr.Dir.PO: Interviewer rating (ELO). Implemented
- Sr.Dir.PO: Quicker hiring cycle (plan interviews upfront). Hiring time -25%
- Sr.Dir.PO: Improve our global compensation framework. Structured on better data.
- CEO: Retain great people. eNPS 0% change
- CRO: Sales training program to advance sales skills. 80% of sales people trained.
- Customer Success: Hiring talent to plan and ramping up SA’s so that on day 31 they are certified and ready to be assigned to accounts.
- Sr.Dir.PO: Improve diversity. Two initiatives deployed.