Throughout one’s career as a developer, there may come a time when you are unexpectedly thrust into the world of production support. As daunting as this may seem, it can provide a valuable learning experience and unique perspective on the importance of reliable and efficient production support. Let’s explore some lessons I learned during my experience leading a team responsible for providing production support and ensuring the smooth operation of a mission-critical application.
I am not going to lie though; this is how it felt some days.
Act Under Pressure
It is true, that production support is a high-pressure role, every application, regardless how big or small it is, it is important for its users. As a production support engineer you will share the responsibility to ensure the stability, reliability and availability of the application, failing to do that could be a disaster which can result in loss of revenue, angry users and damage to the product’s reputation.
The pressure can become particularly intense when dealing with issues that impact a large number of users, this requires quick action to resolve any problems with minimal disruption to ongoing operations. This can be very challenging when dealing with complex issues or when multiple systems or teams are involved.
Therefore, to achieve success as a production support engineer, despite the heat of the situation, you need to be able to act cool-headed. Being able to stay calm and focused under pressure is key to communicate effectively and collaborate with other teams to resolve any present issue.
APM is your Friend
APM stands for Application Performance Monitoring, it refers to the practice of monitoring and measuring the performance of software applications to identify and troubleshoot any issues.
By embracing APM and properly implementing APM tools you will be able to capture real-time monitoring data, capture metrics and proactively identify and address issues before they impact end-users or the business.
One example of an APM tool is Azure Application Insights, this tool offers a range of monitor and diagnostic capabilities for your application such as monitoring, tracing, exception tracking and performance analytics. It also offers integration with third-party tools such as PagerDuty and Slack, triggering real-time alerts and notifications and allowing you to create an effective process to act when issues occur.
Logging as Investment
Implementing logging in an application can be a challenging task, particularly when faced with tight deadlines and pressure from stakeholders to focus on software features. However, I cannot stress enough the importance of investing time in designing and implementing a solid logging strategy.
Logging becomes an essential part of software development because it provides developers and operators with a way to troubleshoot issues and diagnose problems that may arise during the runtime of the application.
Debugging issues without logging can be much more difficult, it may be challenging to determine the cause of an error or to understand the sequence of events leading up to the issue.
The logs can capture information about the input received by the application, the processing steps that were executed, and any errors that occurred. With this information, developers can analyze the sequence of events that led to the error and determine the best course of action for debugging and fixing the issue.
Expect the Unexpected
Despite modern software development tools and practices, there are many variables that can contribute to issues in production environments. Additionally, users may find ways to use the product that were not anticipated during development, leading to the discovery of new edge cases.
While modern practices such as automated testing, code reviews, and developer documentation can help to mitigate these risks and improve software quality, it’s important to remain open to unexpected issues that may arise in production.
Overall, the combination of high-stakes issues, tight deadlines, and round-the-clock availability can make production support a high-pressure role. However, with the right tools, processes, and support, it can also be a rewarding and challenging career path for those who enjoy problem-solving and thrive in a fast-paced environment.
2 responses to “Production Support – Lessons Learned”
Well written Roberto, glad I had a chance to work with you.
Thank you Maida! The feeling is mutual 😊