| --- |
| title: "Google quarterly objectives" |
| permalink: google-okrs.html |
| hide_sidebar: true |
| hide_navtoggle: true |
| toc: false |
| --- |
| |
| Google plans work per-quarter, using the OKR (Objective/Key-Result) framework. |
| |
| # Q1 2023 |
| |
| ## O: Improve developer productivity |
| |
| ### KR: Improve email notifications to reduce context switches. |
| |
| ### KR: Optimistic updates for comment saving reduces latency. |
| |
| ### KR: User suggested edits |
| |
| ## O: Integration with other products |
| |
| ### KR: Migrate gerrit-review CI to LUCI |
| |
| |
| # Q4 2022 |
| |
| ## O: Improve user experience |
| |
| ### KR: Land push notifications |
| |
| ### KR: Improve code-owners UI: show which reviewers own which files |
| |
| ### KR: Improve code-owners UI: owner approvals are sticky across patchsets |
| |
| ### KR: Submit Requirement predicate to prevent merges that create submodule updates |
| |
| ### KR: implement UI and API for rebasing a chain of changes |
| |
| ### KR: per-label ACL to remove votes of other users |
| |
| ### KR: allow change creation from supplied textual patch |
| |
| ## O: Increase system reliability |
| |
| ### KR: migrate further components to Lit |
| |
| |
| # Q3 2022 |
| |
| ## O: Increase system reliability |
| |
| ### KR: Make the token highlight layer more efficient. |
| |
| ### KR: Prevent HTML injection through commentLink feature |
| |
| ### KR: Add shadowdom tests for each FE component |
| |
| ### KR: Lit based gr-diff rendering |
| |
| This increases maintainability and makes it faster. |
| |
| ### KR: Better plugins |
| |
| Work with SAP on checks-jenkins plugin. Deprecate the checks plugin on gerrit-review. |
| |
| |
| ## O: Improve Gerrit customer satisfaction |
| |
| ### KR: Land bulk actions |
| |
| Provide actions on multiple changes from the dashboard page. Polish in |
| response to user feedback. |
| |
| ### KR: Allow patchset upload creation from textual patch |
| |
| This provides a mechanism that could execute cherry-picks across gerrit hosts. |
| |
| ### KR: Land push notifications |
| |
| Show browser notifications if the attentionset for a user changes. |
| |
| ### KR: Implement suggested edits |
| |
| Allow reviewers to suggest changes through specially formatted |
| comments. Authors can apply the change as a change-edit. |
| |
| ### KR: Land enhanced file status information |
| |
| Show file status diffs (added, removed) between patchsets. |
| |
| ## O: Reduce toil, increase developer velocity, and improve developer happiness |
| |
| |
| # Q2 2022 |
| |
| ## O: Increase system reliability |
| |
| ### KR: Reduce overhead of Prolog |
| |
| Roll them out fully on googlesource.com for Android and Chrome, |
| addressing any feature gaps relative to Prolog. |
| |
| *result*: launched to all but one host. |
| |
| ## O: Improve Gerrit customer satisfaction |
| |
| ### KR: Polish composable submit requirements based on customer feedback |
| |
| *result*: this is finished. |
| |
| ### KR: Launch bulk actions |
| |
| Provide actions on multiple changes from the dashboard page. |
| |
| *result*: code almost finished, launch pending. |
| |
| ### KR: Polish approval copying infrastructure |
| |
| When uploading new patchsets, provide more information to users why |
| they need to get approvals again. |
| |
| *result*: done. |
| |
| ## O: Reduce toil, increase developer velocity, and improve developer happiness |
| |
| ### Finish Lit migration |
| |
| Lit is the next generation version of Polymer. Besides being nicer to |
| work with, it reduces cold start due to reduced code size. |
| |
| *result*: done, except the code-owners plugin and gr-overlay and |
| gr-account-list (on Polymer due to Iron dependencies.) |
| |
| |
| # Q1 2022 |
| |
| ## O: Increase system stability and reduce latency of critical user journeys |
| |
| ### KR: Remove per-user state (drafts, stars) from the change index, |
| improving write latencies |
| |
| |
| ### KR: Speed up median diff rendering latency for views with many files |
| |
| Use multiple fidelity modes and webworkers to speed up "expand all |
| diffs" and "large file with many diffs" use cases. |
| |
| ## O: Improve Gerrit customer satisfaction from X% to Y% |
| |
| ### KR: Roll out composable submit requirements |
| |
| Use them fully on gerrit-review.googlesource.com, |
| android-review.googlesource.com and chromium-review.googlesource.com. |
| |
| ### KR: Multi-change review: Prototype and validate a new experience |
| for managing and reviewing multiple, grouped changes |
| |
| ### KR: Reduce P50 code review start latency |
| |
| Design browser-based push notifications to reduce review latency. Let |
| reviewers suggest rather than make edits, leading to less lost |
| approvals. |
| |
| ### KR: Addressing top Gerrit pain points |
| |
| Fix JGit and CGit merge discrepancies. |
| |
| |
| # Q4 2021 |
| |
| ## O: Gerrit users' data and code are well protected and secure |
| |
| ### KR: Resolve data protection/security work in flight from Q3 |
| |
| A data migration has cleaned all traces of personal data (name, email) in review |
| metadata. |
| |
| ## O: Increase system stability and reduce latency of critical user journeys |
| |
| ### KR: Migrate to Caffeine for all caches |
| |
| This is now possbile since we moved off of the old diff cache. |
| |
| ### KR: Investigate reasons for slow pushes, fix if possible |
| |
| We want Git pushes where users currently bypass Gerrit to go through Gerrit as |
| well. We suspect that performance (pushes being slow) is the main reason for |
| bypassing. If so, we want to root cause slowness and fix it if possible. |
| |
| ## O: Improve Gerrit customer satisfaction from X% to Y% |
| |
| ### KR: Roll out composable submit requirements |
| |
| Use them fully on gerrit-review.googlesource.com, |
| android-review.googlesource.com and chromium-review.googlesource.com. |
| |
| ### KR: Multi-change review: Implement MVP |
| |
| Provide a page for reviewing multiple changes ("topics"), providing among others |
| batch actions and maybe diffs across projects/changes. |
| |
| ## O: Reduce toil, increase developer velocity, and improve developer happiness |
| |
| ### KR: Migrate 33% of remaining frontend components to Lit, remove |
| all of Polymer, and get rid of or re-implement all mixins |
| |
| ### KR: Migrate frontend to client models and dependency injection. |
| |
| client models will centralize state-management, making the UI more |
| dependable. Dependency injection avoids global variables, enabling |
| multiple changes on a single page |
| |
| |
| # Q3 2021 |
| |
| ## O: Gerrit users' data and code are well protected and secure |
| |
| ### KR: Resolve data protection/security work in flight from Q2 |
| |
| Gerrit stops persisting personal data (name, email) in review metadata. |
| |
| |
| ## O: Increase system stability and reduce latency of critical user journeys |
| |
| ### KR: Keep CreateDraftcomment in SLO by removing per-user state from change index |
| |
| Private user actions (writing drafts, adding stars) cause a change reindex. This |
| is expensive and slows down user actions. Get this data directly from All-Users |
| to avoid the indexing step. |
| |
| |
| ### KR: Cancelation: ensure no work happens for requests after the users have canceled or the request has timed out |
| |
| Gerrit continues processing after the user hangs up. We want to solve this for |
| Google, but maybe we can fix it for Gerrit open source as well. |
| |
| ### KR: Image diffing |
| |
| The Gerrit UI supports reviewing image files (including visual diffs) |
| |
| ### KR: Improve gr-diff performance |
| |
| Improve diff rendering performance and memory usage on many / large files. |
| |
| |
| ### KR: Plan for transactional index updates |
| |
| Currently Gerrit indices are per-datacenter, and replicated asynchronously. |
| Create a design where the index document is created together with the ref |
| update, so it can be replicated together with the Git data, thus avoiding |
| inconsistencies between index and git data. |
| |
| |
| ### KR: Use Caffeine to reduce drift with open-source and to speed up parallel cache reads |
| |
| Finish diff cache rollout, and migrate to Caffeine. |
| |
| |
| ## O: Improve Gerrit customer satisfaction from X% to Y% |
| |
| |
| ### KR: Roll out composable submit requirements to Android and Chrome |
| |
| Implement https://gerrit-review.googlesource.com/c/homepage/+/279176, and roll |
| it out to Gerrit, Chrome & Android. |
| |
| |
| ### KR: Multi-change review: Prototype and validate a new experience for managing and reviewing multiple, grouped changes |
| |
| Provide a page for reviewing multiple changes ("topics"), providing among others |
| batch actions and maybe diffs across projects/changes. |
| |
| |
| ### KR: Code Review Latency: Reduce P50 code review start latency from Xmin to Ymin. |
| |
| **Calendar integration: **extension point for FE plugins surfacing calendar data |
| |
| **Push notifications**: Design proposal, work estimation, and prototype for |
| browser push notifications directly from Gerrit using web workers (milutin) |
| |
| **Code review dashboard**: Gerrit users can understand their personal code |
| review performance in a dashboard as described in Gerrit Code Review Metrics for Individuals (mharbach) |
| |
| |
| ### KR: Gerrit CI Reboot: Land the new CI Results Tab |
| |
| Finish CI result tab: onboarding documentation, create a Jenkins based plugin |
| and remove the old checks plugin from googlesource.com. |
| |
| |
| ### KR: Make headway on addressing top Gerrit pain points, as measured by surveys and internal customers |
| |
| Various items: |
| |
| * Markdown support |
| * Ingest textual diffs for creating or updating changes |
| * Many smaller UI polish items. |
| |
| |
| ## O: Reduce toil, increase developer velocity, and improve developer happiness |
| |
| |
| ### KR: Maintainable Gerrit frontend plugins: convert all Gerrit maintained frontend plugins to Typescript. |
| |
| |
| ### KR: Add Polymer template type checking (carryover) |
| |
| Gerrit CI will then be able to check that Polymer bindings are valid in HTML |
| templates and that Polymer observers and computed Polymer properties have the |
| correct type. |
| |
| |
| ### KR: Publish Gerrit Q3 OKRs publicly to give guidance to the external community |
| |
| note: Any Google-specific OKRs will be removed prior to publishing |