An Open-Source Solution to DORA & DevOps Metrics
Tags: devops, opensource, productivity, tooling
Published: 2022-10-13 18:14:35

Hey Dev.to Friends! We're an open-source project, part of the Apache ecosystem, and today, we're super excited to share a game-changer release for DevLake - the data lake and analytics platform for your dev-data. 

You can now implement DORA metrics and benchmark your projects and teams in minutes. Fast. Open-Source. Super Customizable. 

**We're proud of it, and hope you love it.**

https://devlake.apache.org/

**WTF IS DORA?!**
Created six years ago by a team of researchers, DORA stands for "DevOps Research & Assessment" and is the answer to years of research, having examined thousands of teams, seeking a reliable and actionable approach to understanding the performance of software development teams.

DORA has since become a standardized framework focused on the stability and velocity of development processes, one that avoids the more controversial aspects of productivity measurements and individual performance metrics.

There are two key clusters of data inside DORA: 
Velocity and Stability. 

The DORA framework is focused on keeping these two  in context with each other, as a whole, rather than as independent variables, making the data more challenging to misinterpret or abuse. 

**Within velocity are two core metrics:**
- Deployment Frequency: Number of successful deployments to production, how rapidly are your team releasing to users?
- Lead Time to Changes: How long does it take from commit to the code running in production? This is important, as it reflects how quickly your team can respond to user requirements.

Naturally, if you are pushing a consistently high tempo, you also want to ensure that the work that is being delivered is reliable, and that downtime and failures are readily recoverable.

**Stability is composed of two core metrics:**

- Change Failure Rate: How often are your deployments causing a failure?
- Median Time to Restore: How long does it take the team to properly recover from a failure once it is identified?

To make DORA even more actionable, there are some well established benchmarks providing a simple lens to determine if you are performing at "Elite", "High", "Medium", or "Low" levels. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrzmeibaefn8dbsoh8xi.png)

While DORA isn't necessarily new, implementing it has proven out of reach for many companies and teams due to the challenges associated with obtaining, unifying, querying, and visualizing the necessary data.

An inherent complication to implement DORA properly, is that the required data typically lives in many tools, accounts, and formats, making the process of compiling it difficult, manual, and time-consuming. 

Team configurations and processes are often quite unique, using different delivery processes, different definitions, and different standards. Ultimately, meaning that "one size fits all" really means "one size fits nobody" when it comes to many of the existing solutions that claim to deliver DORA metrics. 

All of the aforementioned is part of why we built DevLake, an open-source dev-data platform that collects, analyzes, and visualizes data from many developer tools in the most transparent and customizable package possible. 

We are also excited to announce today, robust support for the DORA framework, to make it easier and more accessible than ever before for teams of all shapes and sizes to put this powerful data to work!

**How to Implement DORA with DevLake:**

The Sources You Need, and How DevLake Computes DORA: 

Three key entities for computing DORA Metrics: 

- Changes: For most teams, this is simply Pull Requests (PRs), so this data will come from code hosting tools. DevLake currently supports GitHub, GitLab, and BitBucket
- Deployments: This data comes from your CI/CD tools. DevLake currently supports Jenkins, GitHub Actions, and GitLab CI, with CircleCI in development. DevLake also has a custom web-hook that allows you to push deployment data to DevLake if your CI/CD tool isn't yet supported. 
- Incidents: This is the source for stability metrics. DevLake is going to soon support PagerDuty and Sentry to make this data even more effective. 

In just four succinct steps, DevLake can turn you into a DevOps hero: 

1. Setup DevLake: Using Docker Compose and Kubernetes, Helm, or Temporal. 
2. Collect Data: With DevLake's versatile connectors, you can extract the data you need from many tools. 
3. Launch Ready-to-Run Dashboards: DevLake comes pre-configured with many metrics and dashboards, including full DORA support. 
4. Customize: You can personalize and even create brand new metrics and dashboards in DevLake with just a few SQL queries. 


Once you have set up DevLake, connected the data sources, and run the necessary pipelines for collection, DevLake will be ready to render a complete DORA dashboard leveraging the power of Grafana. 

Whether you want to implement DORA in its standard format, or develop more advanced and specific dashboards, with DevLake, you're only a few clicks and queries away.