Marc Andreesen’s famous, “Software is eating the world” was an “Aha moment” for many people. In his famous 2011 article, he showed how software has become the key component to delivering value in every industry. Software continues to grow exponentially in every aspect – development, testing, and deployment practices, tools, languages, architectures, networking, databases, are all moving forward at full speed. But with all this growth, one thing is certain. Nothing’s perfect. All these advances come with a cost. Software systems are incredibly complex and are full of defects. Sure, they’ll work most of the time, but every system has its day. Some of the more famous examples include spaceships crashing on Mars and stocks taking a tumble. But you don’t have to go that far. Services that build the basic fabric of our lives go down all the time, and this downtime can cost companies up to $5,600 per minute. So, here are 3 reasons why debugging in Production should be as accessible and easy as possible.
Reduce developer burnout
What developers want to do most is develop awesome code. They understand that part of that is debugging their code, but that’s OK. While they’re developing, debugging code is just another part of their day as they add lines of code, and then step through it when something goes wrong. Debugging in Production is different. By the time a bug is detected in Production, you don’t know which developer is responsible for the bug. Much of the time, you’re not even sure where the bug really is. Just because code throws an exception somewhere, doesn’t mean that’s where the bug is. So the developer tasked with fixing the bug has to stop developing awesome code and start the painful journey of trying to reproduce the bug, guessing the solution, adding code and logs, rebuilding, redeploying…and it doesn’t usually work first time. Modern software architectures like microservices and serverless only make things more difficult. The problematic piece of code may not even be running once the developer digs in and tries to solve the issue. This irritating process can be very arduous and time-consuming and therefore contributes to developer burnout.
Now imagine that these developers had access to tools that cut their Production debugging time by 80%. Even if you have DevOps engineers and IT managers gate-keeping Production systems, debugging Production errors on pre-Production environments like Staging or even QA can dramatically shorten the debug cycle and remove developer frustrations trying to fix Production errors.
Deliver more value
Over $10K of a developer’s yearly salary goes on debugging in Production. Part of the problem is that companies don’t have the right tools available, so developers waste a lot of time that costs companies a lot of money. Some studies show that developers can spend up to 25% of their time debugging in Production. If companies could get great Production Debugging tools for free, their developers would spend a lot less time on debugging and a lot more time developing the next great feature. So, while the company reduces the time developers waste on debugging (and developer burn-out in the process), it can also deliver more value.
We all win
We saw that enabling debugging in Production helps reduce developer burnout and enables companies to deliver more value. That means all those services we depend on won’t go down so much, and they’ll provide us with more and better features, all at a lower cost. Developers win, the businesses win, and in fact, we all win.