Overall, a business's digital operations are only as stable as its code. Without a stable code base, engineering will never have time to meet even basic demand for new features, let alone move at the pace required to innovate new and exciting features for their customers. Engineers will spend their time troubleshooting and fixing poor quality code to prevent negative customer experience. Implementing high quality code is key to an organization's ability to innovate and grow.
This guide identifies specific key performance indicators and processes that help improve code quality. It's followed by the Release quality guide, which can only be done after completing the steps lined out in this one.
You're a good candidate for using this guide if:
- You're not currently measuring code quality.
- Your code quality is perceived as poor.
- You don't know where your developers are spending their time.
- Your organization suffers from too many outages due to application defects.
These KPIs help you identify the sources of code defects and the areas that require the most developer effort so that your devs can use their time more efficiently. The KPIs also help you understand if development velocity has any impact on code quality.
The best place to start is by gathering your key performance indicators. To do this, you need to know the specific technology platforms that support your development processes, such as source code repositories and build/test automation platforms. Then, you'll need to identify methods for extracting each KPI's attributes and importing them into New Relic.
You can find the KPIs and minimum-required attributes needed for this use case in the key performance indicators section above. Typically, you'll use your development toolchain's APIs to extract the KPIs and their attributes, then submit them to New Relic using the custom events API.
Before starting any custom integration work, you should find if any applicable out-of-box integrations exist.
Our are the primary method this improvement process uses. They show your current KPIs and help you to identify the areas that require improvement. You can find sample dashboards in the New Relic OMA resource center on GitHub.
The information displayed in the dashboards depends on your development toolchain, so you'll need to customize your dashboard to your exact specifications.
Because you need enough data to form a baseline before you can perform the initial enablement, you must establish your baselines that consist of a sample of development activity. Normally, this will be a minimum of two weeks, but it can be up to six weeks depending on your current development pace. One easy way to do this is to align your baseline collection and evaluation cycle with your Agile sprints, if applicable.
You should periodically ensure that event data is accumulating as expected in New Relic while you establish your baselines.
After establishing your baselines, you'll introduce development teams and other stakeholders to the collected data and the ongoing continuous improvement process you'll be following.
The process consists of three activities:
- Review the KPIs and trends: You and the stakeholders will look at the KPIs and identify trends.
- Identfy achievements, challenges, and opportunities: In this phase, you'll identify areas where KPIs are improving (achievements) and areas where they're not improving (challenges). You'll then identify strategies and tactics for improving KPIs (opportunities) and how best to implement them.
- Make technical recommendations: Here, you and the relevant stakeholders will identify and review technical recommendations, such as making changes to your development toolchain or observability strategies.
This final step is a continuous improvement process. During this phase, you'll meet with your team to review your progress against your baseline and adjust your strategies so you deliver the desired improvements. Each cycle of the improvment process should occur after several iterations of your development process. Typically, these occur at the mid-point and end of every Agile sprint.
During this phase you should:
- Report your KPIs each week to stakeholders to ensure that teams are appropriately prioritizing the work and show the progress made towards the promised business outcomes.
- Record and retain your weekly KPIs over time to establish new baselines and show the rate of improvement.
Once you've completed the process above, you can move on to using New Relic to improve your release quality.