Developer Experience is central to Enterprise success

A presentation at KCJUG in January 2025 in Kansas City, MO, USA by Jeremy Meiss

Slide 1

Slide 1

Developer Experience… Central to Enterprise Success KCJUG

Slide 2

Slide 2

What is “Developer Experience” (DevEx)? KCJUG

Slide 3

Slide 3

DevEx as Disaster Common examples Poorly documented features (or bugs) KCJUG

Slide 4

Slide 4

DevEx as Disaster Common examples Poorly documented features (or bugs) Missing OpenAPI spec (or even APIs) KCJUG

Slide 5

Slide 5

DevEx as Disaster Common examples Poorly documented features (or bugs) Missing OpenAPI spec (or even APIs) Downloading documentation… as a PDF, or access-gated KCJUG

Slide 6

Slide 6

DevEx as Disaster Common examples Poorly documented features (or bugs) Missing OpenAPI spec (or even APIs) Downloading documentation… as a PDF, or access-gated Missing examples… of anything KCJUG

Slide 7

Slide 7

DevEx as Disaster Common examples Poorly documented features (or bugs) Missing OpenAPI spec (or even APIs) Downloading documentation… as a PDF, or access-gated Missing examples… of anything “CI as Magic 8-Ball” KCJUG

Slide 8

Slide 8

KCJUG

Slide 9

Slide 9

git push heroku main KCJUG

Slide 10

Slide 10

DevEx isn’t new REF: F. Fagerholm and J. Münch, “Developer experience: Concept and definition,” 2012 International Conference on Software and System Process (ICSSP), Zurich, Switzerland, 2012. KCJUG

Slide 11

Slide 11

DevEx isn’t new “New ways of working such as globally distributed development or the integration of self-motivated external developers into software ecosystems will require a better and more comprehensive understanding of developers’ feelings, perceptions, motivations and identification with their tasks in their respective project environments.” REF: F. Fagerholm and J. Münch, “Developer experience: Concept and definition. 2012.” KCJUG

Slide 12

Slide 12

DevEx isn’t new “…developer experience could be defined as a means for capturing how developers think and feel about their activities within their working environments, with the assumption that an improvement of the developer experience has positive impacts on characteristics such as sustained team and project performance.” REF: F. Fagerholm and J. Münch, “Developer experience: Concept and definition. 2012.” KCJUG

Slide 13

Slide 13

Jeremy Meiss Director, DevEx & DevRel OneStream Software DevOpsDays Kansas City Organizer KCJUG

Slide 14

Slide 14

A working definition of DevEx _”…the journey of developers as they learn and deploy technology, which if successful, focuses on eliminating obstacles that hinder a developer or practitioner from achieving success in their endeavors.” -Jessica West, Co-Founder, DevEx Institute KCJUG

Slide 15

Slide 15

Point of clarification “DevEx” by default focuses on “developer” View “DevEx” as a whole of the lifecycle KCJUG

Slide 16

Slide 16

KCJUG

Slide 17

Slide 17

KCJUG

Slide 18

Slide 18

Distinguishing DevEx from other Concepts KCJUG

Slide 19

Slide 19

Distinguishing DevEx from other Concepts User Experience (UX) KCJUG Developer Productivity Focus: prioritizing the end users usability and Focus: measured in terms of output, with an overall experience; aim to make software intuitive, emphasis on efficiency and performance. easy to use, and enjoyable to interact with. Context: metrics like “time to release”, “number of Context: involves user research, wireframes, pull requests”, or “deployment frequency”. testing product to optimize user satisfaction. Differs from DevEx: they don’t capture the full Differs from DevEx: _DevEx focuses on making experience of developers, while DevEx tools, processes, and environments that devs encompasses efficiency, the satisfaction, well- use efficient and pleasant. being, and support structure of devs.

Slide 20

Slide 20

Distinguishing DevEx from other Concepts Developer Experience (DevEx) Focus: holistic view encompassing all aspects of the developer journey (usability, efficiency, satisfaction, etc.) Unique: integrates elements of UX and productivity, but with a broader scope of psychological safety, community, and feedback loops. KCJUG

Slide 21

Slide 21

KCJUG

Slide 22

Slide 22

Evolution of the IDE Early text editors REF: O’Reilly “Learning the vi and Vim Editors” KCJUG

Slide 23

Slide 23

Evolution of the IDE Early text editors 1976: Vi 1985: Emacs 1991: Vim 1999: nano KCJUG

Slide 24

Slide 24

Evolution of the IDE Native IDEs in the 1980s 1983: Turbo Pascal 1986: Apple’s Macintosh Programmer’s Workshop KCJUG

Slide 25

Slide 25

Evolution of the IDE First plug-in IDE HP Softbench KCJUG

Slide 26

Slide 26

Evolution of the IDE First plug-in IDE HP Softbench KCJUG

Slide 27

Slide 27

Evolution of the IDE First plug-in IDE HP Softbench REF: HP Journal, June 1990 edition KCJUG

Slide 28

Slide 28

Evolution of the IDE Early Reviews “…the use of an IDE was not well received by developers since it would fence in their creativity.” REF: Computerwoche (“Computer Week”, German counterpart of American magazine Computer World), 1995. KCJUG

Slide 29

Slide 29

Evolution of the IDE Cross-platform in the 1990s 1995: Borland Delphi KCJUG

Slide 30

Slide 30

Evolution of the IDE The Web and the 1990s 1995: SGI WebMagic 1995: Microsoft FrontPage KCJUG

Slide 31

Slide 31

Evolution of the IDE Features & Usability Late 1990s to 2000s 1997: Macromedia Dreamweaver 1997: Netscape Composer 1997: Microsoft Visual Studio 1999: Microsoft FrontPage 2000 2000: NetBeans 2001: IntelliJ IDEA 2001: Eclipse IDE 2002: Microsoft Visual Studio .NET KCJUG

Slide 32

Slide 32

Evolution of the IDE Lightweight & Configurable 2010s to Now 2008: Sublime Text 2015: Atom 2015: Visual Studio Code KCJUG

Slide 33

Slide 33

Evolution of the IDE Cloud-based Options Now 2009: PHPanywhere (eventually becoming CodeAnywhere) 2010: Cloud9 (AWS bought it in 2016) 2018: Glitch 2019: GitPod 2020: GitHub Codespaces 2024: Google Project IDX KCJUG

Slide 34

Slide 34

Evolution of the IDE A result of DevEx Things we never knew we needed… From this: “…the use of an IDE was not well received by developers since it would fence in their creativity.” KCJUG

Slide 35

Slide 35

Evolution of the IDE A result of DevEx Things we never knew we needed… To this: Code completion Code refactoring Syntax highlighting Debugging VCS integration (no more FTPing files around) Multi-language support Framework integration Pair programming KCJUG

Slide 36

Slide 36

KCJUG

Slide 37

Slide 37

KCJUG

Slide 38

Slide 38

KCJUG

Slide 39

Slide 39

Server Environment Setup Manual config nightmares Late 1990s to Early 2000s KCJUG

Slide 40

Slide 40

Server Environment Setup Config Mgmt & Containerization Mid-2000s to 2010s KCJUG

Slide 41

Slide 41

Server Environment Setup IaC and DevOps Integration 2010s to Present KCJUG

Slide 42

Slide 42

Broader Impact of DevEx Deployment pipeliness Infrastructure as Code (IaC) practices Developer Efficiences KCJUG

Slide 43

Slide 43

What is 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 KCJUG

Slide 44

Slide 44

The Rise of DevOps… Software Development before DevOps “It used to take weeks or even months to deploy a simple change.” Siloed teams with minimal collaboration Manual, error-prone deployments Lengthy software development cycles KCJUG

Slide 45

Slide 45

The Emergence of DevOps Collaboration Automation Continuous Integration KCJUG

Slide 46

Slide 46

The Role of Automation in DevOps Jenkins Docker Kubernetes KCJUG

Slide 47

Slide 47

KCJUG

Slide 48

Slide 48

DevOps paved the way for Modern DevEx Efficiency gains through reduced friction of deployments Reduced cognitive load and shift to developer well-being and satisfaction Encouragement of experimentation and fast feedback loops KCJUG

Slide 49

Slide 49

The Birth of Modern DevEx Cultural Shift towards Collaboration and Experimentation Cross-functional teams Encouragement of feedback and continuous learning KCJUG

Slide 50

Slide 50

Core pillars of Developer Experience KCJUG

Slide 51

Slide 51

Core pillars of Developer Experience Developer Onboarding Effective Strategies Measurements Comprehensive onboarding kits Time to first commit Mentorship programs Time to first merge “_____” KCJUG

Slide 52

Slide 52

Core pillars of Developer Experience Documentation Living documentation Developer portals KCJUG

Slide 53

Slide 53

Core pillars of Developer Experience Continuous Feedback Regular surveys Feedback forums Act on feedback KCJUG

Slide 54

Slide 54

Core pillars of Developer Experience CI/CD and Automation Automate everything possible Fast feedback loops (“Fail Fast”) Overcomplicated pipelines can lead to more problems than they solve KCJUG

Slide 55

Slide 55

Core pillars of Developer Experience Infrastructure Orchestration Developer Self-Service Simplifying Deployment Ensure the tools are well-documented and abstract away unnecessary complexity KCJUG

Slide 56

Slide 56

Core pillars of Developer Experience Culture and Team Structure Cross-functional teams Promote psychological safety KCJUG

Slide 57

Slide 57

Core pillars of Developer Experience Developer Well-Being Flexible schedules Work-life boundaries Initiatives like wellness programs, no-meeting days, and social activities can help. KCJUG

Slide 58

Slide 58

KCJUG

Slide 59

Slide 59

The Rise of Platform Engineering Specific, integrated environments that devs need Abstract away infrastructre + backend complexities Access to robust, scalable, easy-to-use platforms Streamline development processes and reduced setup time KCJUG

Slide 60

Slide 60

Self-Service Platforms Developers empowered with necessary tools Leverage automation, templates, policies with agility Accelerate development, enhance productivity, foster autonomy KCJUG

Slide 61

Slide 61

Enhancing the Developer Experience KCJUG

Slide 62

Slide 62

DevEx reflects an organizational culture KCJUG

Slide 63

Slide 63

Strategies for Improving DevEx KCJUG

Slide 64

Slide 64

Strategies for Improving DevEx Improving DevEx in your organization DevEx initiatives should be modeled from Leadership FIRST KCJUG

Slide 65

Slide 65

Improving DevEx in your organization 1. Foster a positive culture 2. Streamline the workflow(s) KCJUG

Slide 66

Slide 66

Improving DevEx Foster a positive culture 1. Clear and concise documentation Encourage knowledge sharing Create easily accessible resources to reduce toil + empower KCJUG

Slide 67

Slide 67

Improving DevEx Foster a positive culture 1. Clear and concise documentation 2. Promote collaboration and communication Facilitate code reviews Implement comms to foster teamwork + problem solving KCJUG

Slide 68

Slide 68

Improving DevEx Foster a positive culture 1. Clear and concise documentation 2. Promote collaboration and communication 3. Champion well-being and growth Encourage feedback, up and down Recognize achievements Create a sense of belonging KCJUG

Slide 69

Slide 69

Improving DevEx Streamline the workflow 1. Tools and Automation Explore tools which are highly regarded in your field Automate repetitive tasks wherever possible KCJUG

Slide 70

Slide 70

Improving DevEx Streamline the workflow 1. Tools and Automation 2. Standardize environment setup Use config management tools Streamline onboarding for all team members Examples: KCJUG

Slide 71

Slide 71

Better Practices for leveling up DevEx Empower with the right tools Encourage Cross-functional Teams Implement Feedback Loops Focus on Automation (Paige Bailey automation post) Invest in Training and Development KCJUG

Slide 72

Slide 72

DevEx is… “ruthlessly eliminating barriers (and blockers) that keep your practitioners from being successful” KCJUG

Slide 73

Slide 73

@jerdog.dev /in/jeremymeiss Thank you! @jerdog @jerdog@hachyderm.io @IAmJerdog jmeiss.me KCJUG

Slide 74

Slide 74

END KCJUG

Slide 75

Slide 75

Good DevOps == Good DevEx Facilitates smoother transitions between Dev and Ops Minimizes bottlenecks with enhanced collaboration Ensures feedback loops are efficient and productive Enables DevOps principles to take hold within an organization KCJUG