We users use Artificial Intelligence (AI) almost every day, often without even realising it i.e. a large amount of the apps and online services we all connect with have a degree of Machine Learning (ML) and AI in them in order to provide predictive intelligence, autonomous internal controls and smart data analytics designed to make the end user User Interface (UI) experience a more fluid and intuitive experience.
That’s great. We’re glad the users are happy and getting some AI-goodness. But what about the developers?
But what has AI ever done for the programming toolsets and coding environments that developers use every day? How can we expect developers to develop AI-enriched applications if they don’t have the AI advantage at hand at the command line, inside their Integrated Development Environments (IDEs) and across the Software Development Kits (SDKs) that they use on a daily basis?
What can AI can do for code logic, function direction, query structure and even for basic read/write functions… what tools are in development? In this age of components, microservices and API connectivity, how should AI work inside coding tools to direct programmers to more efficient streams of development so that they don’t have to ‘reinvent the wheel’ every time?
This Computer Weekly Developer Network series features a set of guest authors who will examine this subject — this post comes from Steve Barrett in his role as vice president EMEA, PagerDuty — the company is known for software designed for real-time operations that integrates machine data & human intelligence.
Barret writes as follows…
We’re a year past the point when Gartner predicted a quarter plus of large companies would have ‘strategically implemented’ an AIOps platform.
So how did the [magical] analyst house do?
By their own reckoning, just 5% had combined data and machine learning to realise AIOps in 2019. The analyst house now expects AIOps to hit 40% by 2022. The separate 2020 State of Software Quality report paints a different picture of the near future: 10% plan to adopt AIOps.
AIOps, as defined by the analysts, spans big data, machine learning and analytics to automate operations and speed up identification and resolution of IT issues. Sounds promising – but perhaps that’s the issue: hunting and crushing technology problems falls – at least in part – to developers.
Developer + AI = no likey
Developers, however, can be wary of automation and of AI. Automation often comes in the form of something those in central IT use to replace people with a set of processes, in the name of ‘efficiency’ or because of budget cuts. Automation can see the introduction of ticket-based systems and processes that make developers’ work more demanding and less rewarding as they are made accountable for real-time response: getting pushed around by systems they have no control over.
As for AI: senior executives expect it to work like magic and is something they impose on development teams rather than investing in tools that would help them run operations better.
It’s easy for your average developer view of AI to range somewhere between scepticism and hostility.
Dodging a silver bullet
AI is making its presence felt just as IT infrastructures change. Centralised data centres are being replaced by distributed infrastructures. Monolithic applications are being broken down to microservices. The pace of software development is speeding up with hourly, daily and weekly releases to production. That’s translating into more complex systems that generate more data – leaving developers struggling to keep up.
The OverOps 2020 State of Software report found 53% of developers are now encountering critical or customer-impacting issues with their production software at least one or more times a month. A third are now spending between two-days to a full week troubleshooting these problems, with a lack of tooling and automation cited as the top problem for developers.
Developers want to get better at running the operational side of the services they build; they – with central IT – need ways to isolate the information signals in the data noise; both teams want to improve how they collaborate on a daily basis – and when things go wrong.
These ideals are independent of AI. It just so happens AIOps and AI-based approaches can facilitate them. They can also propose courses of action that can then be automated.
Machines can find the ‘signals in the noise’
Machine Learning is key – it can apply statistical modelling and analytics to the challenge. Trained properly on the data, AIOps can understand new events and propose recommendations that can be automated. This is the basis for event intelligence – something that combines data and machine learning with human context and DevOps best practices.
It lets you aggregate data and find the signal in the noise, giving you the information to act with ability to automate common workflows. Event intelligence has a snowball effect: the more data you feed it and reinforce it with human action, the more autonomous it becomes. This gives developers more time to get on with the job they love: coding.
Historically, such statistical modelling hasn’t been available at this level because it’s been too manually intensive: It has depended on those skilled in data science to implement, putting it out of reach. AIOps done right changes that.
Modern IT systems are becoming more complex and noisy. Digitalisation and DevOps are pushing the responsibility for managing the operations of such systems on to developers. Statistical modelling and analytics, implemented through machine learning and assisted by automation, can help developers manage the new complexity – while freeing them to code.