When an application is transitioned from the development stage to a production and support stage, the risk of making changes, or adding new features and enhancements, is high. Relying on the DevOps practice of Continuous Integration and Continuous Delivery will reduce that risk and provide confidence when changes are pushed to production.
Application support processes, tools, and service level agreements alone do not reduce the risk of changes or enhancements affecting the application. More often than not, these changes result in regressions. The point of failure―the point which can stop the entire application from working—remains high for the DevOps team because of the lack of experience with the application. It is especially high when the support team does not participate in the development phase. Much of the time has to be spent in code archaeology, analyzing the logic and how the changes could impact the current functionality of the application.
This is where the maturity of a DevOps transformation and the benefits gained reduces the risk through the practice of Continuous Integration (CI) / Continuous Delivery (CD), and Continuous Testing (CT). Incorporating the correct strategy into your CI will reduce the risk that the new code will affect the current application via Regression Testing.
Common definitions for the quality side
Continuous Testing is the process of executing automated tests as part of the software delivery pipeline in order to obtain immediate feedback and reduce the risk of failure from code commits.
Regression Testing is the process of testing changes to the application to ensure that the rest of the functionality is not directly affected by the code and still works with the new changes.
Moving to a mature DevOps transformation and establishing the correct application strategy will reduce the risk of application support and maintenance.
New implementations and bugs found in production will mean code changes. However, the process to introduce new commits into the application pipeline will reduce the possibility of accepting new bugs into the branch, with the early validation of the code from unit testing, static code analysis, and functional testing. As a result, the support and maintenance engineer has immediate feedback from the changes proposed and how it will impact the application. This allows us to accept fool-proof code into the application and detect errors in functionality or coding beforehand.
Want to learn more about DevOps from Wizeline? Read this next: