What is observability driven development (ODD)?
Observability Driven Development (ODD) is an approach that encourages introducing observability principles to earlier stages of development.
Like other shift-left movements such as Test Driven Development (TDD) and DevOps, the core idea is to embed important principles that were traditionally neglected until later stages and make them top of mind during development.
Key principles of ODD
Observability Driven Development emphasizes keeping observability in mind while writing code. This includes considering the following:
- Look at existing observability metrics and consider how to extend them when working on a new feature.
- Think about how new services would show up in observability tooling and compare that to the intended architecture.
- Add instrumentation incrementally and double check assumptions.
- Test these assumptions and verify them as they are released to production.
In summary, ODD aims to keep software more reliable and operable by not forgetting to add in observability.
Benefits of ODD
Observability Driven Development encourages developers to think about how their software will be deployed and maintained in production.
By thinking about the observability stack, they can visualize the architecture and also add in better error detection and handling into the code. This allows teams to deploy more confidently and often, creating a positive feedback loop.
What ODD is not
Observability Driven Development is a great framework to help development teams think about observability earlier in the process. However, it is not meant to force developers to work a certain way or introduce instrumentation for the sake of collecting data. ODD is simply a tool to improve development practices, not enforce a dogma.
More data isn’t always better as it can drown out important signals. Also, developer’s time is valuable and focusing on observability will have implications for tradeoffs in other areas like testing.
One alternative to ODD are developer observability platforms such as Lightrun. Instead of making developers consider observability metrics in advance, Lightrun allows developers to ask questions about a live application on demand.