CHALLENGE
Doximity sets out to improve application stability for its Android application as medical professionals rely on its services to communicate remotely.
RESULTS
The Android team improves app stability by aligning teams, streamlining workflow, and achieving 99.99% stability with Bugnsnag.
Doximity is the leading digital platform for medical professionals. Recognizing that clinicians are mobile by nature, Doximity delivers a suite of tools that enable verified members to perform their jobs on-the-go or while working remotely. The company’s network members include doctors, nurses, nurse practitioners, physician assistants, and pharmacists.
Doximity and its Android mobile application serve an important need as medical professionals have turned to the multifaceted app for activities such as telemedicine, patient referral facilitation, and targeted medical news. “Just like everyone else these days, doctors are starting to work from home and need a way to contact their patients,” states Matt Rea, Android Engineering Manager at Doximity. “Any increase in usage can triple or quadruple any issues you might have in the app, so crashes and infrastructure errors can’t be taken lightly.”
In late 2019, the Android team implemented Bugsnag, which Matt describes as fortuitous. “Going into 2020, we had the goal to work on improving stability,” Matt explains. “Once I started looking into Bugsnag, I realized how full-featured it was. Luckily, we implemented Bugsnag, so that was perfect timing for us.”
Another reason the Android team decided to implement Bugsnag was to benefit from its widespread adoption by Doximity’s backend and web teams. Approximately 75 projects and applications were already using the error monitoring solution.
“We wanted to have one place, specifically Bugsnag’s Stability Center page, where we could view application health for the entire system”
-Matt Rea, Android Engineering Manager
If a major issue or outage happens or a database goes down, we can see everything that spikes,” Matt states. “That kind of high-level view is invaluable.”
Rounding out the decision was a recognition by the Android team that they needed more than crash-free scores to ensure strong user experiences. Now with measuring application stability, Doximity gains a more reflective and holistic view of their application health. As Matt explains, “Looking at crashes is only one piece of the picture. Obviously, you never want an app to crash, but you also don’t want an app to be available but not useful. Those are the kinds of things that, looking only at crash-free ratings, for example, you would miss.”
Matt acknowledges that it is paramount for managers to ensure that employees are feeling confident with their work. Finding ways to reduce burnout around tasks like error detection became a priority. “Bugsnag made it much easier to track down bugs,” Matt states. “Instead of banging your head against the wall to figure out how an error occurred, the breadcrumbs that Bugsnag attaches to errors really help. We make good use of breadcrumbs.” The team also benefits from integrating Bugsnag with Slack to receive focused error alerts.
As the Android lead, Matt also appreciates the metadata that Bugsnag provides. “Android is a pretty fragmented ecosystem, so a bug might occur only on Samsung or LG devices or certain OS versions, which can be pretty hard to track down from a normal QA bug reporting perspective,” Matt explains. “Bugsnag gives the engineer more of a starting point, more of a big picture around ‘how did this occur?,’ which definitely makes things easier.”
To minimize the impact of errors on its user base, the Android team takes advantage of phased rollouts, supported by Bugsnag. With two week release cycles, Doximity sends out new releases to only 10% of its user base to ensure there are no spikes in errors or crashes.
“Tracking releases is one of my primary responsibilities—to make sure releases go out on time and are stable—so the Releases dashboard is one of my favorite features in Bugsnag.”
-Matt Rea, Android Engineering Manager
“We generally have several versions in production, so I can see the past five releases, what the adoption is on each release, and what the stability is for each release,” Matt states.
After implementing Bugsnag, the Android team focused initially on resolving outstanding crashes to improve the overall stability of the app. “Thanks to Bugsnag, we were able to get on top of a few big crashes right away,” Matt explains. The team adopted Bugsnag’s stability targets in order to establish goals and achieve strong stability for users.
“While 99.99% seemed pretty lofty and difficult to achieve, we got there over the course of 2019 and into 2020. I think it’s a pretty good goal to try to hit that 99.99% with each release.”
-Matt Rea, Android Engineering Manager
Today, the Android team benefits from streamlined workflows and a quick understanding of the source for any new errors. Next, they are starting to look into Android ANRs (application not responding) and native crashes for features such as video calling that use native libraries. Matt also plans to broaden his use of Bugsnag’s user stability score. “So far, I’ve been mainly focused on the session score, although I’ve been keeping an eye on the user stability score as well. I would like to start leveraging that in the future.”