It’s a new age for software development, defined by the rise of mobile applications and iterative development releases. Today’s fast-paced development environment doesn’t slow down for anyone. If monitoring tools don’t work to promote speed and agility for the teams using them, then new solutions must be found.
As a result of this mindset, mature tools like Application Performance Management (APM) have come under scrutiny by engineering teams. This trend often upsets diehard APM fans who work on infrastructure, SRE, and DevOps teams.
And understandably so: These back-end teams rely on APM to do their jobs.
What’s important to realize is that mobile app development teams are not focused on the same things as those using APM. Servers and networks don’t matter to mobile app developers because these back-end systems are irrelevant to their end-user experience. Mobile doesn’t require infrastructure, so mobile developers don’t care.
What developers do care about is how stable their app releases are and what errors or crashes the end users are experiencing. Mobile apps have changed the way engineering teams operate, and new solutions are required to support this user-focused work.
Enter Application Stability. Designed to monitor the stability of application releases and track all errors and crashes, application stability solutions are invaluable to developers who care a great deal about the end-user experience.
Here’s the bottom line: APM and application stability both make software stronger, and there’s room for both sets of solutions. However, it’s important to recognize that these two solutions embody distinct monitoring focuses and should be used by different teams.
APM for infrastructure and DevOps teams
Before cloud adoption, organizations supplied their own physical hardware and monitored components such as RAM, disk space, CPU, and memory. Today, infrastructure, SRE, and DevOps teams monitor cloud instances. Rather than purchase hardware and manage physical machines, these teams request new cloud instances from cloud providers, and immediate access is received.
While some feared the cloud would make APM obsolete, infrastructure, SRE, and DevOps teams continue to rely on these tools for two good reasons:
- Apps require a lot of resources. It’s easy to run out of space with today’s resource-intensive applications, which means careful attention must be paid to virtual machine resources at all times.
- Cloud can be costly. Virtual machine resources are like candy: There’s always more that can be consumed without much thought. As a result, bloating happens quickly unless someone pays attention and figures out how to streamline consumption and reduce costs through better efficiency.
APM is useful in addressing these two challenges since its main function revolves around capacity planning. APM enables better management of cloud instances, optimizes usage, and helps determine how to tweak cloud resources to reduce or eliminate unnecessary costs.
Application stability for engineering teams
What’s the downside to APM? It’s ineffective when the person who runs the app is also the person who built it, as is often the case with mobile development and iterative coding. These engineers care deeply about the customer experience and want to ensure users don’t encounter bugs and crashes while using the app—both of which point directly to its stability.
Unfortunately, APM isn’t flexible enough to address the customer experience because it wasn’t designed with the end user in mind. Built for detecting errors and sending up alerts, APM doesn’t provide information on how to fix a problem, which is why it’s less than ideal for developers who need to tackle bugs with speed.
In contrast, application stability points directly to what the error is, where it exists, and how it occurred. These solutions metricize stability through stability scores, which are calculated using real-time error rates and session data. Stability scores provide developers with a clear metric that illustrates the percentage of successful app interactions in each release.
Stability scores also allow development teams to set target stability scores, which demonstrate whether it’s time to fix bugs (the app is unstable) or build new features (the release is stable). In a similar manner, teams can set critical stability targets, which mimic SLAs and demonstrate when new feature development needs to stop in order to get the app back on stable ground through bug fixing.
In short, application stability takes a different focus than APM. Automation and aggregation of errors provide engineers with actionable insights. Time and money aren’t wasted chasing down bugs and focusing on the wrong development work.
Five benefits of application stability
Application stability brings together the errors captured by APM and enables developers to see, at a glance, which bugs are worth fixing and exactly where to go to fix them. This approach delivers five key benefits:
- Improved Efficiency: Application stability tools remove the “toss bugs over the fence” disconnect between infrastructure and development teams. Bug information is provided directly to the team that fixes them, which saves valuable engineering time.
- Stronger Customer Satisfaction: With diagnostic information in hand from an application stability tool, software engineers know immediately what the bug means and how to fix it. Faster bug resolution positively impacts the end user experience, which can improve customer satisfaction (CSAT) levels.
- Error Prioritization: By grouping bugs by root cause, application stability tools make it easy for developers to ascertain severity and impact. Teams can determine what to fix first with complete insight into which errors affect the most users, what’s impacting key customers, and which bugs are the most costly.
- Tool Synchronization: Application stability tools integrate with project management suites, which means bugs map directly to tickets created in Jira or other tools, and tickets update automatically as priorities change.
- Stability Scores by Release: It’s common to have multiple app versions in circulation, which is why stability scores by release are important. Understanding which releases have errors and what the impact is helps product and development teams properly prioritize new work and bug fixing.