management

OKRs to Level up Your Software Engineering Team

OKRs help software engineering teams measure progress and tie that progress directly to the organizational objectives.

OKRs that help set stretch goals are most effective and nudge teams to do their best work. Defining OKRs for easy-to-accomplish and achieve tasks wastes effort and time.

High-level objectives (department-level goals) enable software engineers to work collectively towards organizational growth, whereas individual OKRs for software engineers help them improve and stand out personally. Good OKRs also help identify any gaps and weak points in the existing strategy. Furthermore, the key results can highlight new directions and better solutions that the software engineering teams or developers can adopt.

Effective Software Engineering OKRs

Software engineering OKRs are typically in the areas of product quality, engineering quality, and release velocity. Let’s look at some examples.

Focus Area: Product Quality

Objective: Improve Test Coverage

Key Results:

  • Increase user acceptance test coverage from 50% to 75%
  • Increase unit test coverage from 60% to 80%
  • Introduce contract tests and have 25% of the APIs implement contract tests
  • Triage 95% of user reported issues in 2 business days

Objective: Staff for Quality

Key Results

  • Increase software quality assurance engineers headcount from 7 to 11
  • Setup upskill program for developers in modern testing practices

Objective: Improve Code Quality

Key Results

  • Ensure 100% of pull requests to the release branch are peer-reviewed before merging
  • Introduce sonarlint in developer toolchain
  • Standardize sonarqube quality gates and have 100% of git repos adopt standard quality gates

Focus Area: Productivity & Effectiveness

Objective: Boost the Productivity of Junior Developers

Key Results

  • Ensure 100% of junior developers acquire one of the recommended certifications in six months
  • Arrange weekly or monthly workshops or training sessions for junior developers
  • Organize monthly meetings where mentors can assess and discuss the performance of junior developers

Objective: Reduce Developer Impediments

Key Results

  • Resolve all blocked JIRA tickets in less than two days
  • Enable self-serve capabilities for compute cluster provisioning for developers
  • Setup API platform developer portal to allow developers to register their own APIs

Focus Area: Improve Velocity

Objective: Improve Agile Process Maturity

Key Results

  • Increase scrum adoption for enterprise programs from from 60% to 85% 
  • Increase time spent on story grooming by 50% to better size stories and detect dependencies
  • Provide upskill path for scrum masters to get certified

Objective: Adopt and Improve DevOps Practices

Key Results

  • Setup DevOps CoE (Center of excellence)
  • Create and staff shared services team with responsibility to create DevOps pipeline templates
  • Rollout template pipeline by Q3 for teams to adopt

Objective: Adopt microservices best practices

Key Results

  • Increase number of microservices that own their own data from 27% to 50% by Q4
  • Create a PR review guide by Q3 covering review aspects
  • Increase unit test coverage to 80%

Conclusion

Specific, achievable, and measurable objectives can help software engineering teams progress faster and better.
While defining the objectives, individual roles and team strengths should be considered to improve outcomes. With the right mindset and strategic thinking, engineering managers can leverage OKRs to unleash the true potential of their teams.