The rooky road to [rapid application] debugging

Rapid Application Development (RAD) gets its own acronym, so why doesn’t [rapid application] debugging?

Tel Aviv and Palo Alto headquartered Rookout thinks it should.

The company’s rapid production debugging tool now offer ‘live’ debugging for Electron, a popular framework for building desktop apps for Windows, MacOS, and Linux.

Originally created by GitHub, Electron is used by vendors such as Slack, Discord and WordPress to make desktop versions of their browser-based webapps.

Electron apps are quick to build and typically go through many rapid deployments directly to end-users’ computers.

Rookout’s tool lets software engineers get visibility into the data and code context from a live Electron app on the end-user’s machine, instead of relying on local testing.

Production ‘uniqueness’

Electron, despite being based on web technologies, has to face the challenges of desktop software; this is because every user’s computer is its own unique ‘production environment’, making troubleshooting tricky, especially at a distance. Electron apps often interact with devices on the user’s system like webcams, microphones or more exotic inputs, increasing the possibility of unusual bugs.

Or Weis, CEO and co-founder of Rookout explains that traditionally, debugging Electron apps means relying on users’ bug reports and exception management tools to report problems…  and then trying to recreate the production environment on the developers’ local computers. Often, though, an unusual issue won’t be reproduced, making it very challenging to identify the cause.

“Using Rookout, a software team can get debugger-level visibility from an Electron desktop app running live on an end-user’s computer. With Rookout’s IDE, a developer can remotely set non-breaking ‘breakpoints’ to see the full state of the live app or any variable state at any point in the code’s execution, while the app runs as normal,” said Weis.

Weis concludes by saying that end-user software like Electron has to run in literally millions of distinct production environments.

“Combined with a very rapid deployment cycle, it’s challenging to see exactly what’s going on inside a single install or reproduce an exotic bug,” he said.

Rookout allows developers to debug Electron apps live and remotely. They can be alerted to a problem by an exception manager like Sentry (Rookout can also send alerts to Sentry itself), trace the issue in the live software using Rookout in record time, and then develop and push a fix as usual, with no need to install any extra software to the end-user’s computer or send anyone on-site.

Rapid Application Debugging is ‘a thing’, perhaps it’s unfortunate that it shares the same acronym as Rapid Application Development (RAD).