Developer Experience is central to DevOps success

A presentation at Open Source Summit North America 2024 in April 2024 in Seattle, WA, USA by Jeremy Meiss

Slide 1

Slide 1

Developer Experience… Central to DevOps Success

Slide 2

Slide 2

From the simplicity of the setup process to the complexity of solving production issues, DevEx directly impacts developer productivity, satisfaction, and ultimately, the quality of the products they build and use.

Slide 3

Slide 3

DevEx is an integral part of the entire development lifecycle, as a direct result of the choice of development tools, technologies, and platforms. That means that the ease of use, reliability, how accessible and understandable documentation, how efficient the build processes are, the effectiveness of testing frameworks, and the smoothness of deployment procedures all have an impact on the overall dev experience.

Slide 4

Slide 4

Jeremy Meiss Co-Founder, DevEx Consultant https://DevEx.Institute

Slide 5

Slide 5

Let’s start with a definition of DevEx - DevEx is the journey of developers as they learn and deploy technology. When successful, it focuses on eliminating obstacles that hinder a developer or practitioner from achieving success in their endeavors.

Slide 6

Slide 6

it is about every interaction a developer has with systems, tools, and processes.

I’m sure we could all think of a tool or service in which we had a positive experience….

Here’s an example of how Developer Experience has evolved a set of tools and practices:

Slide 7

Slide 7

I think a great example is the evolution of Integrated Development Environments (IDEs). Prior to the 1990’s, you had mostly text-based editors that were used to write code, like Vi, which evidently is supposed to be called “SIX”. Who knew? It was created in 1976 and included in the first BSD linux release.

REF: O’Reilly “Learning the vi and Vim Editors”

Slide 8

Slide 8

Then we had Emacs in 1985, Vim in 1991, my personal favorite, nano. And not entirely because I can exit it without having to throw out the computer and buy a new one like I do with Vim. Saving the planet, one less computer thrown away because of Vim at a time.

Slide 9

Slide 9

One of the first IDEs with a plug-in concept was HP Softbench, released in 1989. HP Softbench was one of the first plug-in IDEs, shipped with its own library,

Slide 10

Slide 10

and was extensively talked about in the June 1990 edition of the HP Journal. It’s a fascinating read, as HP lays out their vision of what software architecture and development should be, including Automated Testing, distributed computing, integrated and interchangeable tools, and more. The link to the PDF is below - I highly recommend reading it

REF: HP Journal, June 1990 edition http://hparchive.com/Journals/HPJ-1990-06.pdf

Slide 11

Slide 11

The early reviews of IDEs as a concept weren’t great…. In 1995 Computer Week in Germany commented that the use of an IDE was not well received by developers since it would fence in their creativity.

REF: (“Computer Week”, German counterpart of American magazine ), 1995.

Slide 12

Slide 12

A few Native IDEs came out in the mid-80s, with Turbo Pascal in 1983 and Apple’s Macintosh Programmer’s Workshop in 1986.

Slide 13

Slide 13

Borland Delphi was released in 1995 and is still around (Embarcadero Delphi v12)

Slide 14

Slide 14

With the launch of the World Wide Web, and then its explosion of growth, the IDEs started becoming more graphical and had a more modern look and feel. Who remembers the first HTML WYSIWYG editor? WebMagic on January 25, 1995 built by Silicon Graphics. FrontPage (https://softpanorama.org/Office/Frontpage/history.shtml) was soon to follow in October of the same year after Microsoft acquired it from Vermeer.

Slide 15

Slide 15

Macromedia’s Dreamweaver first came out in 1997 (after Macromedia acquisition of Backstage from iBand in 1996) and was awesome because of all of the scripts and integrations and controls you could add, and it was one of the first that had community-driven contributions to its extensibility. Microsoft FrontPage 2000 saw the first inclusion of plugins and integrations in early 1999 to make web management easier (FrontPage Server Extensions). NetBeans was released in 2000 for Java, with IntelliJ and Eclipse following in 2001 along with Visual Studio which offered enhanced functionality and more sophisticated features like intelligent code completion, refactoring tools, and improved version control integration. We saw a noticeable increase in support for multiple languages and frameworks, making these IDEs more versatile.

Slide 16

Slide 16

Lightweight IDEs: Tools like Sublime Text and later Atom and Visual Studio Code (VSCode) emerged, focusing on speed, user-friendly interfaces, and extensive plugin ecosystems. They catered to a broader range of developers by being less resource-intensive and more customizable.

Slide 17

Slide 17

Cloud-Based IDEs: The introduction of cloud-based IDEs like AWS Cloud9, GitPod, and GitHub Codespaces have revolutionized DevEx by offering fully configured development environments in the cloud, accessible from anywhere, reducing the need for complex local setup. We went from this…

Slide 18

Slide 18

IDEs are a result of DevEx Things we never knew we needed… From this:

Slide 19

Slide 19

to this

Code completion Syntax highlighting Debugging VCS integration (no more FTPing files around) Multi-language support Framework integration Pair programming

Slide 20

Slide 20

I go through all of that to illustrate how the overall Developer Experience with software development has evolved over time, leading to where we sit with IDEs now. Things we didn’t know we would want back in the 1960s are now commonplace and the expeected norm now in the 2020s.

Slide 21

Slide 21

Modern Development The IDE is just one example of the significant strides made in improving the developer experience. DevEx strategies have evolved to meet contemporary development challenges and opportunities. From basic, manually-configured environments to sophisticated, cloud-based, and automated setups, the journey reflects a relentless pursuit of efficiency, usability, and developer productivity.

Slide 22

Slide 22

Another quick example is the setup of development and production environments. In the early days, setting up an environment involved manually configuring each tool, library, and dependency, which was time-consuming and error-prone. Developers often struggled with version conflicts and compatibility issues between different tools and libraries. In the mid- to late-90s systems like CFEngine v1 and CFEngine v2 emerged to automate this process.

Slide 23

Slide 23

The advent of tools like Puppet, Chef, Saltstack, and Ansible allowed for automated setup and configuration of development environments, reducing manual effort.

Docker’s introduction in 2013 marked a significant shift, allowing developers to package applications with all their dependencies into containers, ensuring consistency across environments.

Slide 24

Slide 24

Tools like Terraform and AWS CloudFormation enabled developers to define infrastructure through code, making setup reproducible and scalable.

The integration of development environments with CI/CD pipelines and DevOps practices streamlined the development process, allowing for faster and more reliable builds and deployments.

Slide 25

Slide 25

Just as we saw with IDEs, we’ve see the broader impact of DevEx on DevOps in things like how we deploy software, infrastructure as code, developer efficiencies, and really many more.

Slide 26

Slide 26

A good DevEx facilitates smoother transitions between your dev and ops teams, helps minimize bottlenecks and enhances collaboration. Proper feedback loops are part of both DevEx & DevOps, and with them in place you have a positive DevEx that ensures those loops are efficient and productive, all of which which helps DevOps principles to take firm hold within an organization.

Slide 27

Slide 27

DevEx at it core aligns perfectly with how I would define DevOps….

the combination of practices and tools designed to increase an organization’s ability to deliver applications and services faster than traditional software development processes

A few of the core DevOps principles really bring this all together.

Slide 28

Slide 28

Collaboration in DevOps is about creating an environment where silos are broken down, and cross-functional teams are empowered to work as a single unit. It’s culture first, and

Slide 29

Slide 29

…tools second. When DevOps and DevEx are aligned, we enhace collaboration through tools and processes that reduce friction and barriers in the development process, enabling teams to focus more on solving business problems together, leading to innovative solutions and a more harmonious working environment.

Slide 30

Slide 30

The backbone of DevOps is effective communication, which ensures all members of the development, operations, and broader organizational team are on the same page.With

Slide 31

Slide 31

When we are improving Communication , we start to utilize platforms and tools that streamline information sharing and feedback across teams. That includes your CI/CD pipelines, shared dashboards, and automated alerting systems ensure all team members have visibility into the development process, can easily share updates, and quickly address issues.

Slide 32

Slide 32

Shared Responsibility in DevOps means there is collective accountability for the software’s quality and reliability, blurring the lines between roles traditionally separated by development and operations. It’s about moving away from a “not my job” mentality to a “we’re in this together” mindset, where success and failures are shared equally.

Slide 33

Slide 33

That Shared Responsibility brings empowerment to all team members with access to the tools and information they need to contribute across the entire software lifecycle. By democratizing access to tools and information, DevEx encourages a culture where everyone feels ownership of the product and is motivated to contribute to its success.

Slide 34

Slide 34

By integrating DevEx with these core DevOps principles, organizations can build more cohesive, agile, and effective teams that are better equipped to meet the demands of modern software development. This mix is not only improving the workflow and productivity but also enhancing the overall quality of the software delivered, ultimately benefiting the end-users.

Slide 35

Slide 35

a robust Developer Experience (DevEx) fosters a more integrated and efficient collaboration between development (Dev) and operations (Ops) teams, and highlights best practices for achieving this unity and efficiency. There’s no better example than what we’ve seen with Platform Engineering the last few years.

Slide 36

Slide 36

The rise of platform engineering represents a paradigm shift towards creating comprehensive, integrated environments that cater specifically to the needs of developers. Focusing on abstracting away the complexities of infrastructure and backend services, allows developers to concentrate on writing code and creating value. Platform engineering embodies the principles of DevEx by ensuring that developers have access to robust, scalable, and easy-to-use platforms. which streamline development processes, reduce setup time, and allow for a focus on innovation rather than maintenance, removing a lot of developer toil.

Slide 37

Slide 37

Self-service platforms embody the evolution of DevEx by empowering developers to independently provision resources, deploy applications, and manage their lifecycles without waiting for operational support. These platforms leverage automation, templates, and predefined policies to ensure compliance and governance, while offering the agility needed for rapid development cycles. By providing developers with the tools to perform tasks that were traditionally in the domain of IT operations, self-service platforms accelerate development, enhance productivity, and foster a culture of autonomy and innovation.

Slide 38

Slide 38

Bringing DevOps and DevEx Together When organizations prioritize DevEx, they ensure that devs have access to tools and processes that not only streamline their workflow but also facilitate a smoother transition of code from development to production. This alignment encourages both teams to work closely from the outset of projects, sharing insights, feedback, and responsibilities, which enhances the efficiency of the development lifecycle and leads to higher quality outcomes. Which strenghtens DevOps culture and practices.

Slide 39

Slide 39

Some of the better practices to keep in mind when leveling up with DevEx are: Equip teams with integrated, user-friendly tools that support automation, collaboration, and real-time communication. Choose the tools which align with both Dev and Ops needs. Get their input in the decision. Just because your buddy’s IT startup says they offer 10x developer productivity doesn’t mean it works for your teams, much less that it works at all. Put in placecross-functional teams that include roles with diverse expertise (e.g., development, operations, quality assurance) to foster a shared understanding and responsibility from project inception through to deployment and maintenance. Establishing robust feedback mechanisms allow for continuous learning and improvement. Conduct regular retrospectives, incorporate user feedback into development cycles, and use monitoring tools to gather insights on performance and user experience. Reduce toil and free up team members to focus on more strategic activities by automating repetitive and manual tasks wherever possible. This includes automating testing, deployments, and infrastructure provisioning. Ensure that team members have opportunities to learn and grow their skills in both development and operations domains. This helps in building empathy between teams and equips individuals with the knowledge to understand and contribute to different stages of the development lifecycle.

Slide 40

Slide 40

The impact of DevEx on productivity is this: When developers spend less time grappling with cumbersome processes and tooling and more on actual coding, productivity and innovation thrives. Streamlined, well-configured, easy-to-use development environments significantly reduce setup times and minimize configuration-related delays. We’ve seen that with Docker and containerization - leading to faster start times on new projects and less time spent on environment-related issues. The use of IDEs and automation tools (for testing, building, and deployment) enhances productivity by automating repetitive tasks. Tools like Visual Studio Code, Jenkins, and GitLab CI/CD automate code analysis, builds, tests, and deployments, allowing developers to focus on coding and problem-solving rather than manual processes. Platforms that facilitate easy collaboration and communication, such as Slack, JIRA, and GitHub, also help streamline the development process. These tools support real-time communication, issue tracking, and code reviews, enabling developers to collaborate effectively, regardless of their physical location.

Slide 41

Slide 41

There are also the psychological impacts of DevEx. A good DevEx means less frustration and burnout, leading to higher job satisfaction and retention rates. Developers feel empowered and valued, which in turn boosts their motivation and engagement. Providing developers with self-service platforms and tools that allow them to make decisions and manage their workflows can significantly boost their sense of Autonomy and Empowerment:. That means things like self-service portals for provisioning infrastructure or deploying applications that enable developers to execute tasks without waiting for operations or IT support, foster a sense of ownership and independence. Tools that facilitate continuous integration and delivery (CI/CD) not only improve productivity but also allow for quicker feedback on developers’ work. This immediate feedback loop, where developers can see their contributions go live and make an impact promptly, can be incredibly satisfying and motivating, leading to a positive feedback cycle of achievement and recognition. By minimizing the friction in the development process—through better tooling, clearer processes, and supportive team dynamics—organizations can significantly reduce developer frustration and the risk of burnout. Developers spending less time on tedious, repetitive tasks or waiting for dependencies, have more energy and enthusiasm for creative and challenging work, leading to higher job satisfaction. *A positive DevEx often includes access to resources, training, and opportunities to explore new technologies and practices. This fosters a culture of continuous learning and professional growth, which can greatly enhance morale. Developers feel valued and supported in their career paths, contributing to a more engaged and motivated team.

Slide 42

Slide 42

The level of investment that a company invests in DevEx can be a reflection of a company’s values towards its employees, especially its developers. A strong focus on DevEx shows a commitment to employee well-being and efficiency. And prioritizing DevEx helps foster a culture of excellence and innovation. When developers are provided with the right tools, support, and environment, they are more likely to produce high-quality work and push the boundaries of what’s possible.

Slide 43

Slide 43

DevEx is… ruthlessly eliminating barriers (and blockers) that keep your developers from being successful.

Slide 44

Slide 44