If you haven’t yet adopted DevOps in your application development, start now. Simply put, DevOps is to software delivery what lean is to production processes. DevOps aims to optimize the ratio of time to value – with high quality, of course. Software developers love DevOps because it’s considered cool. Unfortunately, a majority of developers treat DevOps the same way they initially treated agile: by only adopting the fun parts.
Does the success of your business depend on the flawless operation of your information systems? It does for most businesses today.
Stop and think for a minute. What do you know about the systems your business relies on? Where do they come from? How is their quality managed? How do you know if something goes wrong? How can you reduce the risk of something going wrong? What are the biggest risks that could materialize? How likely are they?
“From projects to products” has recently become a fashionable slogan – and for a reason. In the past, an information system was a project investment. We spent a year defining it, a couple of years implementing it, and a few years utilizing it. Then we started a new project to replace the system.
Every decent executive wants to have situations under control. But information systems, and particularly their inter-dependencies, have already grown beyond our ability to control them. Seeking full control is, unfortunately, a fool’s errand.
A reasonable approach to test company’s business critical information systems such as ERP depends on the visibility to product development. If the system is developed in-house there's likely a good visibility to actual development teams’ work and quality assurance can be involved in the very early phases of product development. Involving QA early can be referred to as shift-left. On the other hand, a system used as a cloud-based Software-as-a-Service (SaaS) without any visibility to development is restricted also from the testing point of view. Only production version testing might be possible, often referred to as shift-right.
1 - AI-augmented test analysis and optimization
Testing by itself is done to validate the software solution being developed and guarantee a certain agreed upon level of quality for the product and to make sure no major regression happens in the software.
Machine Learning methods will allow us to bring a larger amount of statistical analysis tools to bear on all the test and telemetry our software pipeline is producing. We will see a surge of different software vendors bringing solutions for different kinds of dashboards and visualizations to provide a way to analyze the validity of our software and provide metrics for just about anything.