My last blog focused on key areas of Production Support. In this blog let us see how Development Team can add value to ease Production Support activity.
Gartner research has shown that 92% of the cost of an average application with a lifespan of 15 years occurs after the project has finished and switched to “Support and Maintenance” mode.
The biggest challenge for the organizations having dedicated Production support teams is to support new releases. Without having knowledge of the requirements and changes, team needs to ensure that issue is analyzed and resolved quickly to meet firm SLA targets to avoid any business impact. They have to invest considerable time in analyzing code and fixing the issue. So it becomes all the more important for Development teams to ensure that support team is provided with all the knowledge that is required to ensure stable production environment. In the organizations having dedicated Development and Production Support teams, ensuring that knowledge transfer is done for each and every release is not possible due to 24X7 shifts.
So how Development teams can help Support Team?
While there are many aspects for lowering the Maintenance and Support cost as such, one important aspect is to carry out development considering preventive maintenance strategies. Development Code quality stands in the top of the list.
While developing code, Developer tends to forget bigger picture of Production environment. Aim should not be just successful completion of first production run, but also consideration should be given to ease of code maintenance, as code will evolve with changing Business requirements for client, to meet market demands. Investing time in implementing coding best practices can reduce support team challenges to larger extent.
The code should be readable which will help in quickly debugging the code in case of failure. Labeling with proper comments is recommended which will help understand flow of the code. Coding standards should be followed.
Break code to keep it simple. For complex code, learning curve becomes steep for support team to carry out production support of acceptable quality. Also too many function calls to multiple code elements complicates the code. This delays issue resolution time due to analysis time that will be required to debug the logic, thereby affecting SLA.
Design Consideration should be given to add features to restart the code from the point it failed. Code should restart without breaking the process. This will save support team efforts of analyzing the code.
Design and Code should be optimized to keep its run time as short as possible. Basic techniques that can be implemented are parallel data processing to reduce CPU consumption, database techniques for faster response, data processing techniques for better memory consumption etc.
Needless to say that optimized code is the key to achieve Service Level Agreement target.
Use of generic/reusable code will decrease learning curve for support team.
To achieve maintainability and optimized performance to meet SLA targets in production environment, Development team should adhere to best practices which will allow support team to cope up with new releases and evolving business demands.
Bitwise has many success stories of working on combination of Development and Maintenance / Production Support projects. Our experience has evolved to framework driven Development which is based on best practices that ensures optimal performance in production environment. Below are few benefits that are derived from framework-driven Development to ensure consistent and predictable quality, time and cost.
- Optimal performance due to established code standardization framework
- Ease of code maintenance
- Efficient design to achieve rerun ability