Virtualization Technology News and Information
The digital experience is the developer experience: Why keeping it simple is the key to success

By Emilio Salvador, VP, Developer Relations and Community, GitLab

Today, every company is a software company, so the digital experience a business provides its customers is its most important asset and differentiator.

In today's extremely competitive technical landscape, developers are a critical resource for securing business success. Developer experience, previously an afterthought, now is a critical factor in how a company can gain an edge over its competitors. Here's how organizations can implement scalable structures to promote agility and adaptability for developers to create better digital experiences-and ultimately improve business success.

Faster iteration

Tools should serve developers without hindering their progress, or becoming roadblocks to rapid development. Slow tools have several negative consequences, including time lost, less focus, and slowed productivity. Ultimately, developers will avoid the slow tools altogether.

The ideal dynamic for tools echoes that of processes: fast tools and fast processes allow for faster iteration, making developers happier and more productive and enabling iterative development and better, more succinct code.

One such example is Kubernetes, one of the fastest-growing open-source software projects around. It can be sent to one cloud or multiple cloud services, handles automated scheduling and deployment, and is constantly updated. Kubernetes provides a consistent platform for developing and running applications, regardless of the underlying infrastructure, which makes it easier for developers to collaborate on projects and deploy their applications to different environments. Moreover, Kubernetes, by automating many of the tasks involved in developing and deploying containerized applications frees up developers to focus more on writing code and delivering new features. 

Streamlining processes

Before even laying out the building blocks of a streamlined process, consider if a process needs to be created at all. This can be a polarizing step, as processes tend to be introduced for the right reasons. However, new processes can sometimes create bottlenecks or inefficiencies, which can outweigh the positives.

For example, it's commonly acknowledged that code reviews are important to improve code quality. However, one consequence of utilizing manual code review processes is that merge requests then sit idle while the developers who could review them are otherwise occupied.

One possible solution is to simply work directly on the master branch, using fast tests that can be run locally to ensure the master branch does not break. If the master branch does experience a break, modern software configuration management tools will allow teams to revert to a previous, functioning state quickly.

Although communication channels are crucial for holding processes together, one way to ensure that communication between team members doesn't turn into its own, labor-intensive process is to keep small, streamlined teams. As with code, minimized processes and constant iteration within the team is crucial for efficient work. Using iterative development principles, developers are empowered to quickly produce a minimum viable change, and make improvements based on feedback.

Reskilling and training

It's no secret that organizations are seeking out opportunities to implement AI in their software development workflows. However, recent research from GitLab found that while respondents were largely optimistic about their organization's use of AI, 81% of said they need more training to use AI in their work. It's clear that developers feel a pressing need to grow and maintain their skills to stay ahead alongside the rapid adoption of AI.

The study also uncovered that although 75% of respondents said their organization provides training and resources for AI, a similar proportion said they are finding resources on their own, which suggests that company-provided resources may be insufficient. It's especially important for organizations to provide continuously updated resources for development teams, as AI is such a quickly evolving and growing area.  

Enabling innovation

Processes, tools, and training are important, but there's one final piece that influences developer experience: the quality of the software they are tasked with developing. No matter how innovative a tool may be, it can't overcome the hurdle of a massive, unreadable, and unchangeable codebase. Developers are happier and more productive when they're able to focus on developing innovative software-less so when forced to spend time on menial tasks.

This may sound counterintuitive, but boring solutions can be crucial in developing more creative software. By keeping code compact and requirements lean, developers can focus on what matters-delivering innovative software faster. And to successfully keep the code as simple as possible, developers need fast unit tests that give them the confidence to trim down the code to the basics of what is required. 

Developers are under more pressure than ever to deliver excellent results and stay up-to-date with new technologies, which means developer experience must be treated as a critical tool for business success. Organizations can enable better innovation from their developers by keeping processes streamlined and simple, prioritizing speed and efficiency, and incorporating new, fast tools.


Join us at KubeCon + CloudNativeCon North America this November 6 - 9 in Chicago for more on Kubernetes and the cloud native ecosystem. 



Emilio Salvador, VP Developer Relations and Community at GitLab


Published Thursday, October 19, 2023 7:30 AM by David Marshall
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
<October 2023>