How Machine Learning Can Improve DevX: Insights from a CTO
Tags: machinelearning, devrel, devex, dev
Published: 2023-06-27 08:23:56

With customer needs evolving rapidly, businesses and companies are constantly searching for innovative ideas to stay ahead of the competition, drive growth, and increase customer retention. Machine learning (ML) has emerged as a go‑to strategy. It offers a way to craft profitable product roadmaps and gain valuable insights into customer behaviour and preferences.

During the software development life cycle, developers lean heavily on tools like code editors, project management software, programming languages, deployment pipelines, version control, etc. In fact, there are always debates among developers about which editor is the best, which tools can boost their productivity, and which frameworks to use.

Beyond individuals advocating for their favourite tools, companies have adopted [DevOps](https://resources.mia-platform.eu/white-paper-everything-you-need-to-know-to-dive-into-the-devops-world) practices and the [Agile](https://blog.mia-platform.eu/en/agile-the-key-for-digital-transformation-and-companys-growth) methodology to improve developers' experience when building and maintaining software. Although these methods have brought about significant progress and improved experience, they have presented certain limitations, especially in companies with multiple teams or individuals working alongside other developers.

In this article, we will explore what ML is, discuss how it can improve the Developer Experience (DevX), and provide insights from a CTO, [Giulio Roggero](https://www.linkedin.com/in/giulioroggero/).

 

## What is developer experience?

Before we dive into what ML is and how it can improve DevX, let’s discuss what exactly DevX entails. [Developer Experience](https://blog.mia-platform.eu/en/how-a-frictionless-developer-experience-improves-software-development) is the overall experience of a developer using a product. A product is said to have good DevX if the associated tools, processes, and working environments are properly set up to ensure maximum developer productivity.

 

## What is machine learning?

ML is a technique that uses mathematical data models to help computers learn without direct instruction. It uses data and algorithms to emulate human learning and gradually improves accuracy. Systems or applications using ML are categorized as **intelligent computers**, as they think like humans and perform tasks on their own.

 

## How Machine Learning can improve DevX

In recent years, ML has revolutionized how products are built. It has given companies of diverse backgrounds innovative ideas to unlock new possibilities and satisfy their customer's needs. [ChatGPT](https://chat.openai.com/), [GitHub Copilot](https://github.com/features/copilot), and [DALL.E](https://openai.com/product/dall-e-2), to name a few, have made ML accessible to companies and individuals seeking to **build intelligence into applications** and improve the overall experience.

Let’s look at some use cases and how they improve the developer experience.

 

### Quality Control

Let’s take the case of pair programming, an agile software development technique involving two developers working together to achieve a common goal simultaneously. This approach involves one programmer writing the code while the other reviews and provides guidance. It has improved the software development life cycle (SDLC) by offering the following benefits:

- Fewer bugs and mistakes during development;
- Improved teamwork;
- Faster training;
- Better knowledge sharing.

Despite being a proven solution in the SDLC, it also has drawbacks. Pair programming is resource‑intensive, difficult to sustain, and sometimes leads to burnout.

Recently, developers are far more empowered and **can seamlessly pair programme with ML‑enabled tools** like ChatGPT, GitHub Copilot, CaptainStack, Tabnine, etc. Unlike humans, these tools are relatively easy to integrate, require minimal resources, and increase productivity.

> Even before ChatGPT, we were introduced to Github Copilot, another AI‑based tool to assist developers with coding. Both of these applications can provide a lot of help in writing simple snippets of code to accelerate task completion. A popular approach to ensure that mistakes in the code are avoided is to use a technique called pair programming — where one developer writes code, and another sits alongside them and helps to write the code according to the strategic vision and swap roles every 30’. These new applications allow this pairing to now include an AI rather than a human.
>
> _Giulio Roggero - CTO & Co‑Founder - Mia‑Platform_
 

### Improved workflow

In the modern‑day SLDC, developers’ roles are constantly changing: they are not only required to write just code but also to manage code changes, test use cases, debug, create workflows, and review pull requests. These **additional responsibilities** often shift developers’ focus from their primary assignment, and the associated cognitive load and workload burdens them.

> Crafting good source code means crafting testable applications. If you can give expressiveness in your test, you can declare your intentions in the code, which is the business problem that you want to solve. This also helps debugging because ChatGPT has more context when you ask a question about troubleshooting problems providing you with some insights and advice on why you have the problem. In that way, you may speed up the time for bug resolution.
>
> _Giulio Roggero - CTO & Co‑Founder - Mia‑Platform_
 

### Improved software development process

Companies often build entirely new applications or integrate features into existing applications. The development process requires a traditional approach of estimation, strategic decision‑making, rapid prototyping, and code review. **These tasks can be repetitive and require a lot of heavy lifting from the developers tasked to develop them**.

ML can help the development team prioritise features to build, provide precise estimates, shorten the time spent on prototyping products, automatically review code, and optimize performance.

 

## Drawbacks to implementing Machine Learning

Like everything else, ML is imperfect. It has some serious limitations that companies and individuals using or intending to use it need to consider.

 

### Ethics and data acquisition

The concept of ML is rooted in **identifying useful data**. The results will be incorrect if credible data is not provided. Companies ranging from small businesses to large enterprise need to protect the data associated with their innovations. Since ML heavily depends on tailored data, building solutions to tackle DevX for such companies or individuals can be difficult.

 

### Accessibility

In a [recent survey by Accenture](https://www.accenture.com/us-en/insights/artificial-intelligence/ai-maturity-and-transformation), ML and related technologies are still not used to their full potential. **Integration and compatibility are still major barriers** as some companies' technologies, programming languages, human resources, and frameworks are limited.

> ChatGPT doesn’t necessarily make software development more accessible to people that are not already trained. You still need to understand the code ChatGPT is writing for you; otherwise, you could create a large tech debt when the incorrect code has to be refactored. ChatGPT can support citizen developers – or those who are not Dev professionals but can use applications for simple IT projects – in configuring and scripting already coded components. This will be a great help for moving projects forward. However, for now, machine learning cannot substitute professional coders in writing new code, but it can be a great accelerator when coders need to work with common patterns. It will be exciting to see where it can go.
>
> _Giulio Roggero - CTO & Co‑Founder - Mia‑Platform_
 

## Doing the heavy lifting with Mia‑Platform

Improving DevX through ML can be a daunting task. It comes with a lot of overhead around implementation and maintenance. Before we dive into what Mia-Platform is and how it does the heavy lifting, it is paramount that we understand what platform engineering is.

[Platform engineering](https://blog.mia-platform.eu/en/platform-engineering-101-all-you-need-to-know-to-get-started) is a process organisations use to enhance developer productivity by reducing the complexity and uncertainty of modern software delivery. Its core focus is on continuously **improving the DevX** by eliminating obstacles between developers and production.

As mentioned, platform engineering provides many benefits and significantly improves DevX. However, there are cases where it is not possible or cost‑effective to build and own a platform. The time, resources, and manpower required are usually high.


### What is Mia‑Platform?

Mia‑Platform is a digital platform builder that allows companies from small to large enterprises to build efficiently their platform and ship software faster. With Mia‑Platform, companies can fully **focus on developing their software** and better dedicate themselves to customers’ needs while the platform does the heavy lifting.

You can learn more about [Mia‑Platform](https://mia-platform.eu/platform/), exploring all the benefits and services it offers.

 

## Conclusion

In summary, DevX is an essential part of the SDLC; it ensures that tools, processes, and working environments are properly set up to ensure maximum productivity.

Companies and individuals looking to stay ahead of the curve and have a competitive advantage need to invest in improving the DevX. With Mia‑Platform, the development team is fully focused on what matters, and the quality of delivered software is greatly improved.