Success in software engineering is driven by setting clear goals and tracking your progress. Key Performance Indicators (KPIs) and Objectives and Key Results (OKRs) are powerful tools that help engineering teams stay aligned and focused. When used correctly, Engineering KPIs and OKRs enhance productivity and help projects get delivered on time and within budget.
Understanding Engineering KPIs and OKRs
Engineering KPIs are specific metrics you set to track the performance of your engineering team. They provide a quantitative measure of success and help identify areas for improvement. Common KPIs include cycle time, deployment frequency, and change failure rate.
Engineering OKRs are a framework for setting and achieving goals. They consist of an objective, which is a clearly defined goal, and key results, which are specific, measurable outcomes needed to achieve the objective. An objective might be to "Improve code quality," with key results such as "Reduce the number of bugs by 20%" and "Increase code review coverage to 90%."
Setting Effective Engineering Goals
To set effective engineering goals, start with organization-level OKRs. These should reflect the overall strategic priorities of your engineering organization. High-level objectives should then be broken down into team-level OKRs so every team is aligned and contributing to your broader organizational goals.
How to Set Engineering Goals
- Start with Organization-Level OKRs
- Identify Key Objectives: Define broad objectives that align with your business's strategic priorities. For instance, you might set an objective to "Increase Strategic Engineering Investments." This provides a clear target that supports overall business goals.
- Determine Key Results: Break down the objective into measurable outcomes. For the example above, a key result might be "Increase new value investments in a product line by 20% in Q4.”
- Move to Team-Level OKRs
- Align with Organizational Goals: Communicate the organization-level OKRs to your management team and team leads. Once teams understand the broader engineering OKRs, they understand how their efforts contribute to achieving them.
- Set Specific Team Goals: Each team should set their own OKRs to support the organization-level objectives. If the goal is to improve code quality, a team might aim to "Reduce PR size to less than 150 diffs" or "Decrease cycle time by 20%."
- Ensure Continuous Alignment and Visibility
- Use Dashboards and Automation: Implement dashboards that provide visibility into goal attainment. Automation tools can help by setting up alerts and workflows that keep teams on track. LinearB’s Software Engineering Intelligence (SEI) platform allows teams to automate PR policies and set up metrics dashboards tailored to their specific goals
One of the most important focuses of engineering goals is software delivery efficiency. Monitoring and improving engineering efficiency starts with cycle time, and all of the metrics that cycle time is comprised of:
- Coding time – the period between the first commit to a branch and the opening of a PR to merge this branch into the primary branch.
- A high coding time can indicate upstream problems with project management and engineering planning and design. It can also indicate underinvestment in developer experience and to fully understand the sources of poor developer experience, you have to analyze coding time by team, repo, project, and domain.
- Pickup Time – the time between when someone creates a PR and when a code review has started.
- Review Time – the time between the start of a code review and when someone merges the code.
- PR pickup and review time are the most frequent sources of software delivery inefficiency. For most engineering organizations, this is one of the quickest paths to immediate improvements in software delivery efficiency.
- Deploy Time – the time between when code is ready to merge and when your CD system deploys it to production.
- Deploy time represents how efficiently your organization delivers finished product to your customers.
Examples of Engineering Goals
Organization-Level OKRs:
- Objective: Improve code quality
- Key Results: Reduce bugs by 20%, increase code review coverage to 90%
- Objective: Increase Strategic Engineering Investments
- Key Results: Invest 60% of engineering resources into new value and feature enhancements
Team-Level OKRs:
- Objective: Enhance team efficiency
- Key Results: Reduce cycle time by 25%, Increase deploy frequency by 15%
- Objective: Improve PR process
- Key Results: Keep PR size to under 200 diffs, Reduce PR review time by 20%
Software Engineering Reports that Catch the Attention of Executives
Engineering reporting is essential for tracking progress toward your goals, and either showcasing successes or pinpointing areas for improvement. Different stakeholders require different types of reports – senior leadership might be interested in high-level summaries highlighting progress toward strategic goals, while engineering managers and team leads need more detailed reports that include specific, detailed metrics and actionable insights.
Reporting to Executives
When providing an engineering update to business stakeholders, think of yourself as a translator. This means presenting information in terms of business relevance and impact. Executives want to know how engineering performance and KPIs affect the bottom line, what steps are being taken to mitigate risks, and how you plan on capitalizing on opportunities.
Key Elements to Include in Executive Reports:
- Updates on Key Deliverables: Provide a quick overview of the status or ETA of new features or enhancements that the business is expecting. Communicate any significant progress or blockers that will impact promised delivery dates.
- Resource Allocation: Outline how projects are resourced and your overall investment mix. Surface how this aligns to any business outcome goals you’ve set for engineering.
- Overall Engineering Health: Provide a quick update on efficiency, developer experience, and execution data, and any delay risks (like an uptick in unplanned and/or added work).
- Expected Business Impact: Highlight how engineering efforts are translating into business value. If you’ve reallocated dev cycles or budget to high-impact projects, emphasize the expected return on investment.
Example Format for Executive Reports:
- Key Deliverables: "Our new feature XYZ is on track for a Q3 release, with 70% completion. However, we’ve encountered a minor delay due to unexpected bugs, which we’re addressing."
- Resource Allocation: "Currently, 35% of our resources are dedicated to new value projects, ensuring we meet our business goals of innovation and customer satisfaction."
- Engineering Health: "We’ve improved our deploy frequency by 15% this quarter, reducing the cycle time to 4 days on average."
- Business Impact: "The increased deploy frequency and reduced cycle time are expected to enhance customer satisfaction by 20%, directly impacting our revenue positively."
We put together a CTO Board Deck to provide templates that guide you through the Engineering KPIs and project updates business stakeholders are most interested in, download your copy here.
Reporting to the Engineering Team
For the engineering team, detailed and technical reports are essential. These reports should include specific metrics, progress on goals, and any challenges or blockers that need to be addressed. The goal is to keep the team informed and motivated while ensuring alignment with organizational objectives.
Key Elements to Include in Team Reports:
- Project Status and Health: Provide a general overview of project status (using Red, Yellow, Green indicators) and dig into execution and project data.
- Operational Metrics: Include detailed metrics such as DORA (Deployment Frequency, Change Failure Rate, MTTR, and Cycle Time), leading indicators, idle time, context switching, WIP, and bugs.
- Goal Progress: Highlight progress towards team-level OKRs, celebrate successes, and surface any risks or blockers.
- Recommendations and Next Steps: Offer actionable insights on how to overcome current challenges and meet goals.
Example Format for Team Reports:
- Project Status: "Project ABC is currently in the Yellow zone due to a delay in PR reviews. We need to expedite the review process to stay on track."
- Operational Metrics: "Our current cycle time is 4 days and 5 hours, and the PR review time averages 2 days. There’s room for improvement in PR size, which currently stands at 359 diffs."
- Goal Progress: "We’ve successfully reduced our rework rate by 15%, meeting our target for this quarter. However, our goal to decrease PR size to under 200 diffs is still a work in progress."
- Recommendations: "To improve PR review times, we recommend adopting more granular PRs and using automated tools to assist with code reviews."
Tools and Best Practices
LinearB’s Software Engineering Intelligence platform provides powerful tools to automate and streamline the goal-setting and reporting process. By integrating with your existing workflow, LinearB helps translate insights from engineering data into actionable steps that drive improvement.
Best Practices:
- Maintain Alignment: Align team goals with organizational objectives.
- Use Automation: Leverage tools to automate routine tasks and keep teams focused on high-impact work.
- Regular Reviews: Hold regular review meetings to track progress, discuss challenges, and adjust goals as necessary.
Conclusion
Setting and tracking engineering goals, engineering KPIs and engineering OKRs is essential for driving continuous improvement and achieving business objectives. Effective engineering reporting keeps stakeholders informed and aligned. By leveraging tools like LinearB, engineering leaders can boost team productivity, improve developer experience, and predictably deliver mission-critical projects.
Want to learn more about Engineering Goals and Reporting? Download the Engineering Leader’s Guide to Goals and Reporting