- You are here:
- Objectives and Key Results (OKRs)
On this page
What are OKRs?
OKRs are our quarterly goals to execute our strategy. To 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
Before the quarter:
Owner: Key Result as a sentence. Metric
During and after the quarter:
Owner: Key Result as a sentence. Metric => Result
- Owner is the title of person that will own the result.
- 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 owner should have at most 9 key results. To make counting easier always mention the owner with a trailing colon, like
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 #okrs channel and at-mention the CEO.
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
It's important to score OKRs after the quarter ends to make sure we celebrate what went well, and learn from what didn't in order to set more effective goals and/or execute better next quarter.
- Move the current OKRs on this page to an archive page e.g. 2017 Q3 OKRs
- Add in-line comments for each key result briefly summarizing how much was achieved e.g.
- "=> Done"
- "=> 30% complete"
- Add a section to the archived page entitled "Retrospective"
- OKR owners should add a subsection for their role outlining…
- Promote the draft OKRs on this page to be the current OKRs
Spontaneous chat messages from team members after introducing this format:
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!
Hiring as an objective
The complete hiring plan is kept in the Hiring Forecast doc. Hiring is not an objective in-and-of-itself. However hiring critical members for a team can be considered a key result. This is because recruiting top technical talent in a competitive startup environment can consume a large proportion of management's time and those hires are modeled into our product development goals. Keep all hiring-related KR's in the 'Team' objective.
These are the OKRs for 2018 Q1.
Objective 1: Grow Incremental ACV according to plan
- CEO: IACV doubles year over year
- Customer Success: Identify success factors
- Customer Success: Do quarterly business reviews for all eligible customers
- Sales: Add growth pipeline of 1.5x annual growth plan
- Sales: Add 30 Fortune 500 companies
- CEO: Be at a sales efficiency of 1.0 or higher
- Marketing: know cost per SQO and customer for each of our campaigns
- CEO: Make sure that 70% of salespeople are at 70% of quota
- Marketing: Make sure each SAL has 10 SAO's per month
- Sales: Increase IACV by 15% for Strategic / Large / Mid Market
- Sales: 1 month boot-camp for sales people with rigorous testing
- Sales: Professional Services in 50% of Strategic / Large deals
- Support: 100% Premium and Ultimate SLA achievement
- Legal: Implement improved contract flow process for sales assisted opportunities
- Controller: Billing support added for EMEA region.
- Legal: GDPR policy fully implemented.
- CMO: Establish credibility and thought leadership with Enterprise Buyers delivering on pipeline generation plan through the development and activation of integrated marketing and sales development campaigns:
- MSD: Scale sales development organization hiring to plan, accelerating onboarding and getting reps productive to deliver on SCLAU growth plans.
- MSD: achieve volume target in inbound SCLAU generation.
- MSD: achieve volume target in outbound SCLAU generation.
- MSD: develop and execute Automate to accelerate CI; Kubernetes and Concurrent DevOps campaigns.
- PMM: Activate category strategy, positioning and messaging with sales enablement and certification program and website content.
- PMM: Develop and roll out updated pitch and analyst decks
- PMM: CE to EE Pitch Deck and SVN to EE pitch Deck
- CMO: Website redesign iteration, including information architecture update, to support our awareness and lead generation objectives, accounting for distinct audiences.
- CMO: Further develop thought leadership platforms for GitLab around topics including forecasting the future of development, redefining cultural excellence, and helping to make security an actionable priority for developers.
Objective 2: Popular next generation product
- CEO: GitLab.com ready for mission critical workloads
- VPE: Move GitLab.com to GKE
- Geo: Make Geo performant to work at GitLab.com scale
- Build: TBD?
- Gitaly: TBD?
- CI/CD: TBD?
- VPE: GitLab.com available 99.95% and monthly disaster recovery exercises
- VPE: GitLab.com speed index < 1.5s for all tested pages
- Product: Ship group-level authentication
- CEO: On track to deliver all features of complete DevOps
- CEO: Make it popular
- Marketing: Get unique contributors per release to 100
- Marketing: Increase total users by 5% per month
- Marketing: Facilitate 100 ambassador events (meetups, presentations)
- Marketing: Be a leader in all relevant analyst reports
- Product: Grow usage of security features to over 1000 projects
- Product: Grow usage of portfolio management features to over 1000 projects
- VPE: Use all of GitLab ourselves (monitoring, release management)
- Director of Backend
- Ensure SP1/SP2 issues for top tier customer get fixed
- Geo: Make Geo Disaster Recovery Generally Available
- Geo: Reduce bug backlog to 0
- Geo: Bugs squashed in month M ≥ bugs reported in month M-1
- Geo: Full project-standard unit test coverage for Geo functionality
- Geo: GitLab-QA tests cover all basic Geo functionality as described in GitLab EE documentation
- Estimated 20% coverage (attachments replication, project renames tested in 10.5)
- Geo: Deliver 100% of feature commits in 10.5, 10.6
- 10.5: 100% (delivered DR for 1-primary 1-secondary configuration, demoed 1-primary N-secondary work)
- Build: Upgrade omnibus and internal omnibus-gitlab Chef
- Build: Measure upgrade/installation time between two GitLab versions. Collect information on user installation methods.
- Build: Establish a roadmap for automated vulnerability reporting of shipped libraries
- Build: Cloud Native Helm charts in Alpha
- Build: Support for generating LE certificates from the omnibus-gitlab package
- Build: Ship 100% of committed deliverables issues each release
- Discussion: Ship 100% of committed deliverable issues each release.
- Discussion: Make it possible to run GitLab as a Rails 5 app from the master branch.
- Discussion: Resolve all Security SL1, Support SP1, and Availability AP1 issues.
- Discussion: Close 36 Discussion backend bug issues. Afterwards, we should verify that the backlog went down from the 280 we started with (and compare to the total of 385), because otherwise bugs are getting reported faster than we can fix them, and we are not making a dent.
- Discussion: Make sure all of the 17 Discussion backend community contributions that were created before 1 April 2017 are merged, closed, labeled "awaiting feedback", or taken over by us and in active development.
- CI/CD: Ship 100% of committed deliverables issues each release:
- CI/CD: Scalability: Make all CI/CD related data to be stored on Object Storage
- CI/CD: Resolve or schedule all AP1, SL1, SL2, bugs marked SP1 or SP2:
- 10.5: (0 / 1) AP2, (1 / 3) SP1, (0 / 1) SP2, (1 / 2) SL2
- CI/CD: Cost: Move all CI infrastructure to GCP
- CI/CD: Quality: Test CI workflow with Runner by GitLab QA
- Monitoring: Bundle Alertmanager for proactive customer alerting notifications
- Monitoring: Prometheus deploy for customer apps feature
- Monitoring: Ship 10 new alerts for monitoring GitLab
- Monitoring: Instrument gitlab-shell
- Monitoring: Ship 100% of committed deliverables issues each release
- 10.4: (Bugs: 3/6, Features: 5/11) 53%
- 10.5: (Bugs: 1/2, Features: 7/18) 40%
- Security: GDPR: Complete data breach notification policy and data mapping requirements (Compliance-KW)
- Security: FIPS 140-2: Research requirements and provide guidance to development team to implement (Compliance-KW)
- Security: Complete Remainder of 10 Risk Assessment Actions (Abuse-KW/JT/JR)
- Security: Automate metrics for vulnerability initiatives: HackerOne, external & internal assessments (Automation-JT)
- Security: Conduct 2 product application security reviews (AppSec-JR)
- Security: Manage Advance Notification Program for security releases (SecOps-KW/JT/JR)
- Security: All parts of security active (AppSec-JR, Automation-JT, SecOps-KW/JT/JR, Abuse-KW/JT/JR, Compliance-KW)
- Gitaly: Deliver 100% of committed scope for GCP migration milestone #2 by Jan 15
- Gitaly: Deliver 100% of committed scope for GCP migration milestone #3 by Feb 15
- Gitaly: Deliver 100% of committed scope for GCP migration milestone #4 by Mar 15
- Gitaly: All migration points complete to Ready-for-Testing state by 7 February
- Gitaly: Release Gitaly v1.0 (all endpoints complete to Opt-Out state)
- Gitaly: Defined roadmap for Gitaly v1.1, focused on Optimization and Performance
- Frontend: Write 200 unit tests to resolve test debt
- Frontend: Crush 300 backlogged bugs
- Frontend: Ship 100% of committed deliverables issues each release
- 10.5: 81% shipped (30/37)
- Frontend: Make sure all Frontend community contributions are merged, closed, labeled “awaiting feedback”, or taken over by us an in active development
- Frontend: Close our main JS technical debt topics: Library updates, Global Code splitting and reduce our bundle size significantly per page
- Frontend: Set up site speed docker container in our CI, running automated daily, and pushing stats to existing Grafana instance
- Data and Analytics: Create the execution plan for the data enabled user journey.
- CMO: Build trust of, and preference for GitLab among software developers.
- CMO: Hire Director, DevRel.
- MSD: Develop interactive content for Developer Survey results and promote results through digital/social channels.
- MSD: Grow followers by 20% through proactive sharing of useful and interesting information across our social channels.
- MSD: Grow number of opt-in subscribers to our newsletter by 20%.
- PMM: Plan and execute IBM Think corporate event.
- PMM: Plan and execute GTM for acquisitions and partner launches.
- PMM: Generate a customer persona map and 3 customer persona profiles.
- CMO: Generate more company and product awareness including increasing lead over BitBucket in Google Trends.
- MSD: Implement SEO/PPC program to drive increase in number of free trials by 20% compared to last quarter, increase number of contact sales requests by 22% compared to last quarter, increase amount of traffic to about.gitlab.com by 9% compared to last quarter.
- CMO: PR - G1, G2, T1 announcements.
- CMO: AR - conduct intro briefings with all key Gartner analysts to include reviewing new positioning.
Objective 3: Great team
- CEO: Hire according to plan
- CEO: Great and diverse hires
- Global hiring
- Sourced recruiting 50% of applicants
- Hired candidates, on average, from areas with a Rent Index of less than 0.7
- CEO: Keep the handbook up-to-date so we can scale further
- Handbook first (no presentations about evergreen content)
- Consolidate and standardize role descriptions
- VPE: Consolidate and standardize job descriptions
- VPE: Launch 2018 Q2 department OKRs before EOQ1 2018
- VPE: Set 2018 Q2 hiring plan before EOQ1 2018
- VPE: Implement issue taxonomy changes to improve prioritization
- VPE: Record an on-boarding video of how to do a local build and contribute to the GitLab handbook
- Backend: Deliver two iterations toward aligning backend teams with the DevOps lifecycle
- Support: Define HA Expertise with 7 support engineers updating HA documentation as defined by Product.
- Support: Define Kubernetes Expertise with 7 support engineers updating Kubernetes documentation as defined by Product.
- Quality: Document the context and background of release process improvements in the Handbook / Quality page
- Frontend: Establish and shape our Frontend specific on-boarding
- Data and Analytics: Corporate dashboard in place for 100% of company metrics.
- Data and Analytics: Capability to analyze cost per lead/SAO/SQO and marketing campaign effectiveness.
- Controller: ASC 606 implemented for 2017 revenue recognition
- Billing Specialist: Add cash collection, application and compensation to job responsibilities.
- Controller: Close cycle reduced to 9 days.
- Accounting Manager: All accounting policies needed to be in place for audit are documented in the handbook.
- Legal: Add at least one country in which headcount can be grown at scale.
- VPE: Hire a Director of Engineering
- VPE: Hire a Director of Infrastructure
- VPE: Hire a Database Manager
- VPE: Hire a Production Engineer
- Build: Hire a Build Engineer
- Discussion: Hire two developers
- Quality: Hire an Engineering Manager
- Security: Hire 2 Security Engineer, SecOps
- Platform: Hire 2 developers
- CI/CD: Hire 2 developers
- CMO: Hire Director, Product Marketing
- PMM: Hire to Product Marketing team plan
- CMO: Hire Director, Corporate Marketing
- CMO: Hire to Corproate Marketing team plan
- CMO: Hire Director, DevRel
- CMO: Hire to DevRel team plan
- MSD: Hire to SDR team plan
- MSD: Hire SMB Customer Advocates
- MSD: Hire Manager, Online Growth
- MSD: Hire to Online Growth team plan
- MSD: Hire to Field Marketing team plan
- CCO: Launch training for making employment decisions based on the GitLab Values.
- CCO: Ensure candidates are being interviewed for a fit to our Values as well as ability to do the job, through Manager Training and Follow-up by People Ops.
- CCO: Analyze and make recommendations based off of New Hire Survey and Pulse surveys which will drive future KRs. Have at least 3 areas to improve each quarter. Ideally, we will also have 3 areas to celebrate.
- CCO: Iterate on the Performance Review process with at least two changes initiated by March.
- CCO: Provide consistent training to managers on how to manage effectively. Success will mean that there are at least 15 live trainings a year in addition to curated online trainings.
- CCO: Align recruitings to Functional Groups with Focus on Low Rent Regions. At least 50% of GitLabbers should be hired from an Rent Index less than .07.
- CCO: Implement actional Recruiting Metrics, including the ability to track an accurate source of hire for the majority of all hires.
- CCO: Target 2 Diversity recruiting Events/sources to attend and recruit from. Measure success to determine future plan.
- CCO: Increase Employee Referrals by 5%.
- CCO: Launch Harassment Prevention Training to all managers.
- CCO: Identify the right LMS for GitLab.
- CCO: Now that hiring managers have been trained on Reference Checking, beginning ensuring that Hiring Managers are verifying at least one reference per hire personally.
- CCO: Hiring at least one sourcer and one recruiter for EMEA/Central Asia.
- CCO: Prioritize the future countries for increased hiring based on pipeline, regulations, future sales, rent index. Begin steps to enable increased hiring outside the U.S.