Sr. Tech Manager
Next Generation AMS Paradigm – Moving applications towards ‘Zero incidentsLast updated on November 15, 2019
“Shoot for the moon. Even if you miss, you’ll land among the stars.” – Norman Vincent Peale
Developing applications with zero incidents is the zenith every organization worth its salt aspires to reach. As a consumer, if you buy a new smartphone, smart television, or a speaker with built-in AI such as Alexa or Google Echo, you expect that they run flawlessly throughout the expected lifetime of the gadget, without it facing any incidents/issues. Maintaining applications with patchworks costs real money.
Why “moving towards zero incidents”?
Applications, or ‘apps’ – have become crucial to our daily functioning – in terms of how we communicate, work, shop, travel, or consume content. Apps run on our mobile phones and desktop environments and in the cloud. Extremely key to the functioning of all significant industries today (financial services, logistics, travel, and tourism, etc.), a myriad of applications manage their internal and consumer-facing operations.
As applications grow in capabilities, so do their complexities as they become challenging to maintain in terms of bug-fixes and security patches consistently. It would be unnecessary chaotic, for example, if a banking app crashes in the middle of a bulk wireless transfer. Incidents like this put the entire business at risk, and in the best-case scenario, consume valuable IT resources and eat away useful IT budgets. By adopting “moving towards zero incidents strategy,” all such business-critical risks can be holistically addressed by eliminating their root causes. Will allow IT to deliver exceptional experience to its users besides cost savings.
How “to move towards zero incidents”?
The journey towards “Zero incident” capabilities is aimed at the twin objectives of improving the end-user experience and optimizing the overall operational cost. There are different steps of an elaborate process that lead the way towards attaining “Applications with Zero Incidents.” One needs to identify and prioritize the sources of the incidents first. Once they are identified, comprehensively analyze the incident sources and then apply the fix to eliminate the root of the issue. It is an iterative process until the set goal is attained.
Requirement Vs. Implementation – Tracing the gaps with traceability matrix (RTM):
Conducting a thorough gap analysis enables the stakeholders to bridge the gap between the business needs and the actual implementation.
Following are few of the incident sources which act as hot button complaints:
- Requirements vs. implementation gaps
- Not having mature processes (E.g., development and support processes)
- Low quality of the code
- Incomplete test coverage
- Application architecture not robust enough to accommodate future business needs
- Lack of application knowledge by the end-user
A few of the modes typically utilized to mitigate the gaps are:
- Planning or sprint meetings: This is the ideal way of ensuring that developers and other stakeholders are on the same page. The IT team inspects the progress towards their sprint goals and where they stand in solutions to the problems stated.
- Cross verification of user stories, functionality, and the expected output with the product owners: This method is very much advised, especially in an agile scenario, to take care of the issues arising due to the incomplete or poorly articulated requirements.
Building robust processes:
The lack of a mature framework or best practices can impede the success rate of your technologies and processes. Not following the coding best practices can often hamper the development and support activities. It is especially useful towards addressing issues identified in functionality or module due to changes in code made in another module of the same application. Understanding and sorting out the dependencies beforehand is, therefore, fundamental to predictive maintenance issues like these.
Some of the typical ‘low-hanging fruit’ opportunities are listed below, where the process can be fixed and finetuned.
1. Knowledge Management (KM): KM is the pivot around which an application support process rotates. The following are the salient aspects of this continuation activity:
- Creation and maintenance of the technical and functional application documentation
- Building and updating the Known Error Database (KEDB) of the resolved incidents
- Identifying the repeated issues, standardizing the resolution process leading to quick response to meet operational goals
- Building a Standard Operating Procedure (SOP) to enhance process efficiency
- Making the KM a Business-As-Usual (BAU) activity
2. Problem management: Establishing the incident pattern through incident dump analysis and KEDB mining is the essential prerequisite of problem management. It is done by conducting root cause analysis of the ‘ready for implementation’ solution by different measures like code fix, automation tool, and a self-help portal.
3. Deployment process: DevOps tools ensure an effective build and deployment process leading to an overall reduction in defects and faster time to market. The DevOps adoption strategy comprises the following steps:
- – Define the build type strategy (full vs. incremental)
- – Follow the triggering approach (manual vs. scheduled)
- – Implement the continuous integration
- – Establish the release cycle plan for the applications
4. Improving code quality – Enhancing the quality of the code with stringent quality checkpoints: Checkpoints like peer reviews and using the automated tools (SonarQube, FindBugs, etc.) can sanitize the code before it is checked into the version control.
5. Test coverage – Made effective with automation: Testing saves considerable effort and ensures fool-proof application testing before moving to the next environment. Many automation tools like Selenium, AutoIT, and SoapUI are available in the market for software testing.
Application architecture review:
A non-robust and non-scalable architecture gets in the way of incorporating the new age functionalities. Therefore, a robust application architecture that caters to the future business needs is indispensable. In its absence, many issues, such as the inability to handle higher loads and long turnaround times, will be commonplace.
The post-implementation fixing of architecture issues is a tedious, cost-intensive, and high-risk activity. To avoid this, one should ideally choose the right tailored architectural pattern in the design phase of the application itself. A detailed architectural review should be conducted before the development of the application as it will ensure the elimination of a lot of post-go-live incidents.
Finally, comprehensive and continuous end-user training is a critical enabler for the targeted outcome. Frequent workshops, training sessions along with providing the application user manual to the end-user enables effective use of the application and paves the way for achieving the objective of user-friendly applications – devoid of knowledge gaps or incidents.