DevOps to Automated IT
If you are in IT for a while you would have seen the evolution of software delivery process. From a long waterfall to an iterative Agile, from handoffs across teams to continuous integration we came a long way. Agile and DevOps been the mantra that we adopted for getting the software delivered and do the maintenance. Its been over a decade application delivery has adopted agile and DevOps, from its inception the process has evolved bringing in more aspects apart from code and operations into the stream. Thanks to tools, cloud and containers which brought in security, testing, infrastructure into the delivery integration making the collaboration between the application development and operations teams tighter. From atomic teams and applications to scaling at enterprise both agile and DevOps brought in enhanced frameworks for us. In a nutshell the software delivery process transformation helped to deliver the applications faster and cheaper for the business to take advantage.
As we get into the demand of software delivery of the next decade, its time to retrospect and see if the current model will help us to deliver the scale which business wants applications for next decade. The process so far has been a forward cycle with a tighter coordination and integration. The software development is mostly based on deterministic behavior of individuals. The actions are taken after the facts are determined, which added additional cycles, be it development, testing or Operational improvements, while the delivery methodology helped to complete the cycle faster.
With increasing competition in the market and growing demand of reliable applications to be delivered faster, every additional cycle is costly when the need is to squeeze the time on current cycles. With artificial intelligence and machine learning into play businesses are exploring better ways for software application delivery. Insights to historic data and Automation of IT processes connecting to it plays a very important role in the delivery process. Be it to decide what is the right requirement, what is the right code to add, what are the right areas to focus for testing and how to size the infrastructure, automated decisions based on historic data connected into the flow will eliminate any additional integration steps delivery cycles and teams. The future demands of businesses where we cannot determine all that may be needed upfront, software applications are needed adopt to a non-deterministic approach. It will be a huge shift for delivery process, but is the need to drive into successful next decade.
The data analysis and automation would eliminate manual decision making and eliminate the possibility of errors. Though the business gives the high level on what application is need to do, as we get into future most of the design would be based on data from similar application models. Automation would tell where the application has possible security and performance problems and autofix them. The flow of testing is auto decided based on behavioral analysis of application is used post deployment or history data. While cloud and containers gave resiliency at infrastructure there is a need to also do a bandage for functional issues, determining corrective action without human intervention to move things forward is a sustainable model for future. Requirements would be auto written based on the behavior of the past versions delivered considering all factors of application.
While Agile and DevOps continue to stay as a fundamental practice, automation connected with AI will change the software delivery process in the coming decade. We would be moving away from driving the application delivery and maintenance with manual decision and would be getting into the model of self-driving applications.
That's an interesting perspective. AI/ML learn from requirements and predict the next set of ones. But as they keep refining over multiple iteration would they become too refined and miss the randomness and crazy aspect of being human? Or can it capture that as well and become God