I’ve always been a great enthusiast for all aspects related to technology and, one aspect of it that always intrigued me was to figure out how to balance the need to deliver new apps and functionalities, rather sooner than later, with the need de provide a unique prime experience to the users. In summary, how to keep up with the speed and deliver higher quality products capable of differentiating one company from the competition?
From the speed perspective, Agile seems to be the well-accepted answer to build teams, in such a fashion that they gain autonomy and continuously learn how to improve speed through the delivery of incremental value-added products. On the software quality side of things, for quite a while now, enterprises understand how to benefit from the "Shit Left” approach for testing and, as a matter of fact, have largely embraced it, in all its shapes and forms (Traditional, Incremental, Agile/DevOps, Model-Based). A brief search on the web will bring lots and lots of results, with both the challenges of those who had adopted it earlier, as well as with the benefits from those who were able to reduce the number of errors in production with a better, early and often testing strategy.
Although delivering flawless applications, with unique engaging features, is what everybody, obviously, seems to be going for, the so promised “Prime Experience”, also requires a well designed IT operational model, one able to deliver reliable experience to the users, including stable end to end performance and availability that is noticeable from the client's perspective.
To that matter, instilling IT operations best practices to early stages of systems design and development seems to be very much appropriate. As a matter of fact, my understanding is that getting IT Ops right during systems development isn’t a revolutionary approach, it’s simply a more mature state of the very same Shift Left testing already in place, now with a new set of operational automated test cases.
Although for modern cloud applications, DevOps pipelines for CI/CD should address most of the operational concerns, ensuring apps are consistently deployed following know and well established IT Ops best practices, for legacy applications, the existing tools and processes don’t usually enforce best practices. How could shift left be applied to legacy applications in the context of IT Operations? Leveraging approved templates and patterns , automated tests to ensure applications comply with IT Ops readiness checklist and, what I consider the most important of all, full automation of the entire application lifecycle, are examples of approaches to promote effective, consistent and reliable IT Operations execution, but shifting IT Ops left seems to be in its early stages for most traditional enterprises and we should see great improvements in the near future as more companies embrace the concept.