I love to learn about all the latest and greatest tech innovations alongside my work as a software developer at Raygun. But as I flick through these articles, something troubles me. While pushing forward with new software technology is great, we might not even have gotten the basics right yet.
We’ll applaud Elon Musk for announcing interplanetary travel. We’ll marvel at the latest iPhone, or fantasize about getting into self-driving cars that whisk us away to our chosen destination. But at the same time, we struggle with the most simple problem — building software that just works.
This morning I was in a hair’s breadth of smashing my phone against the wall of the train carriage as I commuted to work, growing increasingly angry as my email app decided to crash persistently. I tried and failed to watch the weekend’s sports highlights when the video kept failing to load. All before abandoning a news article due to the page load time hanging on for well over seven seconds. Simple stuff.
Our day to day interactions with websites and mobile apps are often fraught with frustration. Just how many apps and websites do you visit each day that you experience problems with?
We frequently interact with software that is buggy, broken, unresponsive in design, slow, or just simply crashes completely. We’ve almost grown to accept it.
Errors, crashes, UI glitches, slow loading pages and bugs are not only resigned to small startups either. They happen in products built by huge enterprises too.
Banks, Fortune 100 companies, and massive tech organizations who you would think have the money and resources to ship the best quality products and have fully laden testing teams at their disposal are some of the worst offenders.
How can companies of this magnitude still ship such fundamentally broken software?
Finding a better way to manage software issues
For software development teams, tracking down and fixing bugs has never been something that sits at the top of our to-do list.
Historically, we’ve had little information to go on when bugs are identified and have turned to digging through logs as the way to find the root cause for want of a better way.
Many developers I meet have grown to see this convoluted diagnosis by logs as a necessary evil or take the view that if customers aren’t complaining about software problems, there simply aren’t any to worry about. This couldn’t be further from the truth.
As the tools to detect, diagnose and destroy software issues are becoming more and more sophisticated, teams need to discover for themselves just how hard the old way is and just how easy these tools make it.
Dedicated error and performance tracking tools like Raygun run silently in the background of your production apps and give you a seemingly magical window into problems that are affecting your customers — right now. The barrier to entry is also low, just a few minutes of time and a few short lines of code added into your app is all that stands in your way.
Monitoring in production
One of the biggest advantages of these tools is the collaborative environment they encourage software teams to discuss and resolve issues in one central place.
Although most teams have some form of internal QA phase in their development lifecycle, there are always edge cases in production apps. Problems that only happen in production are usually the most costly to fix and as they affect real users, are the most damaging to your company’s brand.
Not only will error tracking tools tell you what’s wrong, but also show the users affected, the stack traces, the headers, the environment, which deployment or release introduced the problem and most importantly, the exact line of code that is causing it.
It’s like having a full-time team member poring over your application for problems and telling you when to pay attention.
Building better software for your end users
Software teams have a choice to make.Tools to monitor production applications have reached such a level of innovation, it pales in comparison to traditional ways of debugging issues.
The time savings to the organization are so great and the benefits so compelling. Teams are in danger of being outpaced by speedier and more innovative companies who already take advantage of these tools.
Developers should be presenting these solutions to their managers and managers should also be presenting them to their teams. After all, everyone stands to gain considerably when the whole team takes software quality seriously.
Hopefully, we’ll soon see the overall quality of software experiences improve for end users, now that teams have these kinds of tools available to them. At least before we start sending people to Mars, or the next iPhone launch.
One thing is for sure, dedicated error tracking tools will show you far more issues affecting your customers than you realized.