Quality Metrics: Ensuring Robust and Reliable Systems

Part of The PIRATE Way — Stories about scaling up engineering teams.

Ivan Peralta
The PIRATE Way

--

The Foundation: Instrumentation

Instrumentation, the systematic integration of monitoring tools into software and infrastructure, is pivotal for deriving actionable and meaningful metrics. It enables real-time insights, fostering proactive monitoring.

Photo by İsmail Enes Ayhan on Unsplash

Software Instrumentation

Software instrumentation allows for real-time data collection during application runtime, highlighting bottlenecks, inefficiencies, or failure points.

Error Tracking systems like Sentry.io capture and notify developers about runtime exceptions and errors, offering:

  • Detailed Diagnostic Data: Stack traces, affected user counts, and error conditions. Comprehensive insights into application errors for swift reproduction and resolution.
  • Error Grouping: Identify patterns and frequency of specific errors.
  • Real-time Alerts: Enables rapid response, mitigating potential impact.

Application Performance Monitoring (APM) tools go beyond error tracking:

  • Performance Metrics: Request processing times, database queries, third-party API responses, etc.
  • Transaction Tracing: Tracking individual transactions across the application.
  • Infrastructure Monitoring: Reviewed in the following section, APMs like New Relic and Datadog also delve into underlying infrastructure, meshing software, and hardware insights.
  • Service Maps: These maps visualize service interactions, simplifying bottleneck identification in complex architectures.

Infrastructure Instrumentation

Understanding the performance of your software’s underlying hardware and services is crucial. You gain direct insights from metrics, logs, and traces by instrumenting infrastructure.

Consider monitoring AWS infrastructure: CloudWatch offers essential monitoring. Yet, sophisticated tools like New Relic or Datadog may be more appropriate for complex infrastructures. Both offer seamless integration with AWS services, amalgamating data for a comprehensive health view.

Benefits include:

  • Alerting and Thresholds: Both tools allow setting up alerts based on specific thresholds, which can help proactively identify and rectify issues before they impact end-users.
  • Visualization: Rich dashboards and visualization tools in platforms like Datadog can help in quickly identifying patterns or anomalies.

Domain Ownership: The Linchpin of System Accountability and Quality Metrics

Why Domain Ownership Matters

Domain ownership serves as a keystone in clearly delineating realms of responsibility within intricate software ecosystems. In environments marked by multiple intersecting team functions, knowing who owns what is vital. It’s not just about responsibility — it’s also about efficiency, quality assurance, and swift error resolution.

Error Attribution and Ownership

Synergy for Efficient Issue Resolution: Errors are a natural part of the software lifecycle. The speed and effectiveness with which they’re handled hinge largely on clear domain ownership. When each system segment has a designated owner, errors are promptly attributed, ensuring quicker response and precise solutions. This fusion of error attribution with defined ownership not only guarantees every hiccup is noticed but also efficiently routed to the appropriate expertise for resolution. This harmony bolsters both a culture of responsibility and a streamlined software maintenance flow.

Navigating the Labyrinth: The Challenges of Defining Ownership

With the evolution of software systems, the task of outlining clear ownership becomes intricate. Changes in software requirements, introduction of new features, and shifts in team structures can blur the lines of responsibility. The industry’s solution? Leverage automation to manage ownership while ensuring flexibility to cater to organizational dynamics.

Tooling and Systems for Domain Ownership

The majority of today’s development tools, including APMs, On-Call systems, and Error Tracking platforms, come equipped with configurations supporting domain ownership. They enable you to set owners and communication channels per domain. Examples include:

  • Code Owners: Platforms like GitHub offer ‘CODEOWNERS’ functionality that ensures specific teams or individuals are automatically requested for review when someone changes the code they own.
  • Service Catalogs: These keep track of which team owns which service, especially in microservices architectures.
  • Documentation Systems: Comprehensive, up-to-date documentation can serve as an apparent reference for domain ownership, detailing responsibilities and boundaries.

Scaling the Ownership Model: An Industry Challenge

As organizations grow, managing domain ownership configurations across numerous tools can become a Herculean task. The scalability of this model emerges as a significant challenge. Manual updates can become error-prone and time-consuming. In response, the industry is endeavoring to devise automated solutions and practices to ensure consistent, effortless propagation of ownership configurations.

You can partially solve this with IaC (Terraforming also alarms and owners), but they might not cover all proprietary or specialized tools, especially those that are niche or newly launched.

Software Quality Metrics with APM and Error Tracking

When tailored to team ownership, APM and error tracking tools like Error Attribution facilitate both global quality monitoring and granular team oversight.

Common APM Metrics and Their Significance

  • Latency: Time taken to process a request. Indicates how responsive your application is.
  • Throughput: Number of requests handled in a given time frame. Provides insights into system load and capacity.
  • Error Rate: Errors per transaction/time. Indicates unstable releases or systemic issues.

Key Metrics from Error Tracking Systems

  • Exception Rate: Unhandled exceptions per time. Signals crash or application failures.
  • Error Types/Classes: Error classification. It helps in determining fix prioritization.
  • Issue Frequency: Frequency of specific errors. Highlights systemic problems.
  • Breadcrumbs: Events leading up to an error. Aids in error diagnosis and tracing.
  • Affected Users: Users impacted by an error. Indicates widespread issues and potential user dissatisfaction.

While these standalone metrics offer a snapshot into the system’s health to glean deeper insights and truly gauge team maturity, it’s prudent to turn to compound metrics. We explore this in-depth in a separate article. For example, if you want to make sure you speed up the delivery without compromising reliability you can monitor:

  • Deployment Errors Ratio: Reflecting both the speed and stability of deployments.
  • Deployments vs. Critical Incidents: This is especially useful when combined with an Incident Management Framework and tools like OpsGenie or PagerDuty for automated incident escalation.

By monitoring and analyzing these metrics, you can unearth a trove of information about a team’s performance, potential resource gaps, and opportunities to refine and improve the team’s processes and methodologies.

Monitoring and Observability: Beyond Basic Metrics

Observability is not just an upgraded version of monitoring; it’s about gaining deeper insights into systems by analyzing the data they produce. While monitoring provides you with information about your system’s health and whether it’s working as expected, observability allows you to understand the “why” behind the data and how to improve the system’s resilience and efficiency.

Software Metrics from Observability Platforms

Understanding and Analyzing Your Application’s Behavior

Observability platforms allow for a deeper dive into application performance, and some of the metrics are even recognized as part of the DORA metrics, which signify DevOps and delivery performance. Observability platforms dive deeper into application metrics:

  • MTTD and MTTR: Highlight efficiency in incident detection and resolution.
  • Latency: High latency might indicate bottlenecks or degraded user experiences.
  • Apdex Score: A user satisfaction measure derived from response times.
  • Deployment Monitoring: Catch regressions post-deployment.

Infrastructure Metrics from Monitoring Systems

Ensuring the Health, Scalability, and Resilience of Your Infrastructure

Infrastructure metrics are vital for ensuring the foundation upon which your applications run is sound and robust. Infrastructure health is pivotal for optimal application performance:

  • System Metrics like CPU Usage, Memory Usage, Disk Usage, and Disk I/O identify potential bottlenecks.
  • Network Metrics such as Packet Loss, Latency, and Connection Count ensure data integrity and optimal application performance.
  • Server Metrics like Uptime, Load Average, and Process Count gauge system reliability and potential bottlenecks.

Conclusion: The Confluence of Metrics for Quality

Metrics are the lighthouses in the vast ocean of software development. Alone, they offer glimpses, but collectively, they narrate a detailed story of system health and organizational maturity.

Error Attribution & Domain Ownership: The essence of metrics is empowerment. When teams have a clear line of sight into their domains and are fortified with error attribution, they become proactive guardians of quality.

Global Monitoring for Maturity Assessment: Metrics provide team performance snapshots. Monitoring these across teams can be enlightening, revealing star performers and areas ripe for improvement.

Metrics for Continuous Improvement: Retrospective sessions transform metrics into learning narratives, fostering a culture of evolution and growth.

In the end, metrics are not just numbers; they are stories of our efforts, challenges, triumphs, and aspirations. By understanding the interplay of these metrics, engineering leaders can foster a culture of continuous improvement, accountability, and excellence. Remember, in this journey towards quality, metrics are your compass, guiding and refining your path forward.

Remember: This is a blog post from the series “The PIRATE Way”.

--

--

Ivan Peralta
The PIRATE Way

CTO | Engineering Leader transforming ready-to-grow businesses into scalable organizations. For more information please visit https://iperalta.com/