BeginSpan is the New Printf: Observability in the Developer Workflow
Blog post from Honeycomb
Observability, traditionally used to understand system performance in production, can significantly enhance development processes by enabling developers to diagnose errors and understand code behavior through tools like distributed traces rather than relying on traditional "printf debugging." This approach, termed observability-driven development, encourages developers to incorporate instrumentation into their code, offering insights into the call hierarchy and execution flow, which are often obscured in complex, distributed systems. By utilizing contemporary tools such as OpenTelemetry for automatic instrumentation, developers can achieve a detailed view of how services interact, moving beyond unstructured logs to structured trace views that clarify the sequence and timing of operations. This method not only aids in debugging but also in optimizing code, as developers can verify expected behavior and make improvements, such as running operations concurrently instead of sequentially. Furthermore, keeping these traces in production provides ongoing insights into system performance and reliability, suggesting a shift in development practices towards an observability-centric approach that integrates these insights from development through deployment.