The secret weapon to become a 50% faster developer in two minutes
I’m Valerio, a software engineer and Laravel Certified Developer based in Italy. For more than 10 years I joined teams to help improve their applications.
In 80% of cases the most important problem is not to develop new software functionality but it’s more about handle continuous software changes with many developers that work in the same time on the same codebase without introducing bugs or accumulating too much technical debt.
Once the initial development phase is over and the application begins to serve customers regularly, then this is the time when stability and reliability plays an important role as well as the speed of development.
Unfortunately this can cause a sharp slowdown in development work.
More time developers spend working on the codebase, more increase the difficult to ensure optimal resiliency and performance.
We should constantly monitor the status of the application. Poor digital experience can affects your customers perception that your are doing a good job.
Application bottlenecks can expose you to financial or competitive risks
When it comes to expectations, customers are primarily looking for two key attributes — availability and performance. Missing the mark on either of these can negatively impact your economics in several ways.
Decrease mid-term & long-term customer expectetion
Poor digital experience can affects your customers perception that your service is right for their interest in the long term.
Users who experienced an application that freezes, crashes, is too slow or involves too complicated functionality would not consider using that application in the future and most of whom will share their negative experiences with other peers. In the worst case scenario, some customers will take to social media to comment or complain.
Higher Help Desk Effort
Application issues also impacts your budget because more resources (time or people) are needed to resolve issues that arise when customers encounter obstacles using your app.
User reports drain time. They have the highest priority, so they block the work in progress. They occur in production, so they must be reproduced with tests.
All this time slows down operations and makes you much less productive.
What are the metrics to recognize that your application stability is decreasing and the costs going up?
There are three main signs to know when your code is evolving faster than the confidence you have in its operation.
Heeding these signs will save you countless headaches in the future by lessening and preventing technical debt.
1 - Multiple developers are having issues with certain areas in the codebase
In one of my past experiences, I was working on extending an automated data exchange process between different cloud platforms. It was designed months prior and had not been made to scale easily.
After just a few months, it became a mess of interdependent, poorly abstracted code. Adding new features was difficult, and modifying existing ones was even more so, and the difficulties only grew as the code did and as more developers left their marks on it.
Although this was a relatively “straightforward” data-transfer process, in theory, the actual technical requirements weren’t steady in the beginning and had to be updated multiple times, and unfortunately, there wasn’t enough development time available to do any proper refactoring.
If we had refactored early and abstracted and designed well from the beginning, the feature shouldn’t have been too difficult to update and extend as future requirements came in.
Eventually, there came a point when the resources expended on updating the original system would outgrow the cost of a few devs rewriting from scratch.
2 -Does inspecting problems seem to last longer than expected?
Involving a significant portion of your debugging time navigating the codebase or its output randomly — i.e. you’re spending too much of your time attempting to understand what’s happening during code execution — is a very common symptom of underlying issues with the system’s transparency that need to be addressed.
Sometimes you get a straightforward error message and you realize you made a simple mistake: a syntax error, forgetting to pass all the variables you need into a function, neglecting to require a package.
On the other hand, sometimes the error is totally baffling. Often a bug won’t present itself with flashing red lights—the program just doesn’t do what you want it to do.
3 - You are receiving error reports directly from users
Another telling sign that your application is in trouble is when the customers are directly reporting some errors. This is often a sign that that problematic area could incur massive amounts of technical debt and time costs over time.
An issue can afflict many users before you are made aware of them. Before a user takes the time to send a report, there are 10 others who have simply left your application immediately.
And now you need the time to understand what’s happening and why.
Rely on automated solutions
Dealing with complexity, errors or mistakes is a fact of life in web development, and even the world’s greatest brands are not without fault.
As developers, part of our challenge is trying to anticipate all the problems that could happen when releasing a software in production. Sadly, we never can anticipate all of them.
This is why every developer need a good application monitoring tool.
It’s not about discovering hidden or dormant bugs in your code or preemptively solving issues that could otherwise occur in production. These benefits will be seen later.
What matters are four immediate benefits you could have from day one by getting your application under real-time monitoring.
Less time is spent on controlling the proper functioning of the systems, mainly because the monitoring tool takes care of it
This way, your qualified staff will be able to devote more time to other tasks, knowing that, if a problem arises, you will receive the corresponding alerts. This will also cause an increase in your productivity, which is probably a very important reason why you need a monitoring system.
If a tool can save a few hours of time per week it is easy to see how it pay for itself.
As developers we can spend more time on what we love: work on innovating new products that can grow our business.
Decrease reliance on costly hardware
Application monitoring is very helpful to identify opportunities for improvement. A SQL query tweak here, some code refactoring there and you might able to lower your hosting costs through some optimizations.
You can measure how your application uses external services or databases. A little performance tuning around these dependencies can allow you to scale down your application resources.
Higher developer productivity
Address errors is a time-consuming process. Developer tools that make developers more productive are highly valuable.
Time is the most important resource you have. It is important to keep skilled developers working on innovating new products that can grow your business not to spend most of their time to figuring out why it’s not working.
By monitoring your application, you can effectively gain clear information to instantly support exception reports and subsequent decisions.
Receive instant alerts when something goes wrong in your code
Alerts is absolutely critical for developers.
Some errors can appears immediately if they impact most executed parts of your code. On the other hand you will find some types of errors that occur in unpredictable moments also weeks before last application update.
An issue could be resolved before your users are aware of it.
Searching the right tool
All this would seem to make sense and it seems pretty clear reading this story. Unfortunately, this was not the case at first.
I realized that these problems were recurrent but I didn’t know how to solve them systematically.
I wanted to improve my work and my stability and I read a lot about how to achieve this goal until I realized that it would be enough to delegate application monitoring to an automatic tool.
We make software, we must not forget the power of automation.
I started looking for products and I was surprised by how mature this market was.
I spent months trying out open source solutions first, but it would take constant support from more experienced people to implement private installations.
Then some Cloud platforms, but unfortunately they are oriented to monitoring complex infrastructures and from my point of view they were not useful. Too complicated or expensive by canceling the benefits I was looking for.
This is why I built LOG Engine
LOG Engine is focused on “App” level monitoring, not “Infrastructure” monitoring and is tuned for PHP developers. Your application is ready if is written in PHP usually on top of one of the most known frameworks (e.g. Laravel).
It is designed to be transparent from your application point of view and a simple “composer require” is enough to get started.
I spent a couple of month to develop the basics of LOG Engine but It only took two minutes to start seeing the benefits.
How did I use it to speed up my applications development by 50%?
I started to use LOG Engine with my customer and these are the immediate benefits I have found.
Cut time spent to investigate and reporting exceptions by 50%
In one of my applications built on top of Laravel there are few jobs that are executed in the background. Exceptions were catched and reported in a table on the database to monitor failed executions.
Manually investigate what’s happened was too tricky and time consuming. Developers could postpone such long tasks and shift their attention to smaller, faster-to-release changes.
LOG Engine grab diagnostic information in real time and reduce by 50% the time needed to know not only what happened but why it happened. It monitor all database interactions, job processes, handled/unhandled exceptions.
Real time Alert and become 100% faster then your users
Alerts are absolutely critical. It can help you to be 100% more faster than your users to discover application bottlenecks.
When you release a software in production some errors can appears immediately if they impact most executed parts of your code. On the other hand you will find some types of errors that occur in unpredictable moments.
LOG Engine allows you to stay informed in real time if something goes wrong in your code and resolve issues before they affect your application users.
Cut the time spent on the help desk by 50%
- We know what’s happening in the application landscape
- We receive instant alerts if something goes wrong with diagnostic data before the issue affect our users
Furthermore LOG Engine provides me the exact chronology of the events happened in the application and its context.
I became 50% faster at responding to customer reports.
Do you want try LOG Engine?
You can use LOG Engine completely free for 1 application with 3 days of data retention. No credit card required.
I think that it’s too important for PHP developers to add a monitoring tool in your applications and we don’t want to create barriers for this habit to spread.
Join us! Your first application is completely free.
Install our composer packages for most popular PHP frameworks
(like Laravel and others).