Skip to content

Latest commit

 

History

History
1283 lines (841 loc) · 38.7 KB

slides.md

File metadata and controls

1283 lines (841 loc) · 38.7 KB
titleTemplate theme title author info conference socialimg favicon keywords presenter download exportFilename export remoteAssets selectable record wakeLock colorSchema aspectRatio fonts drawings class mdc defaults addons layout transition
%s - Slidev
slidev-theme-the-unnamed
Demystifying 'DevEx', and why it matters
Jeremy Meiss
## Demystifying "DevEx", and why it matters ## Abstract A key factor in shaping the productivity and innovation of software developers is what has come to be called “Developer Experience.” We'll begin with an introduction to DevEx, exploring its definition and significance in the tech world. We'll traverse the history of software development, highlighting how DevEx has evolved with technology. Key components, such as ergonomic tools, efficient workflows, and community support, are dissected to showcase their impact on a developer's day-to-day life. We'll look at successful and problematic DevEx scenarios, offering lessons and strategies for improvement. Then, we'll delve into practical tips for enhancing DevEx, discussing better practices and common pitfalls. Looking forward, we will explore emerging trends and future predictions, hopefully preparing us for the evolving landscape of software development. This talk is an essential journey through the world of DevEx, ideal for developers, team leaders, and tech enthusiasts keen on optimizing their development environments for better outcomes.
../images/bluesky-jerdog-white.png
devex,developer experience
true
true
demystifying-devex-slidevExport
format timeout dark withClicks withToc
pdf
30000
false
false
false
true
true
true
build
auto
16/9
sans serif mono
Roboto
Roboto Slab
Fira Code
persist
text-center
true
layout transition
center
fade
cover
slide-left

Demystifying "DevEx"

and why it matters


DevEx as Disaster...


layout: image-right image: /images/slides/new-feature-fail.gif backgroundSize: contain class: my-cool-content-on-the-left

DevEx as Disaster

Common examples

  • Poorly documented features (or bugs)

layout: image-right image: /images/slides/api-fail.png backgroundSize: contain class: my-cool-content-on-the-left

DevEx as Disaster

Common examples

  • Poorly documented features (or bugs)
  • Missing OpenAPI spec (or event APIs)

layout: image-right image: /images/slides/missing-docs-fail.png backgroundSize: contain class: my-cool-content-on-the-left

DevEx as Disaster

Common examples

  • Poorly documented features (or bugs)

  • Missing OpenAPI spec (or event APIs)

  • Downloading documentation… as a PDF, or access-gated

layout: image-right image: /images/slides/missing-examples-fail.png backgroundSize: contain class: my-cool-content-on-the-left

DevEx as Disaster

Common examples

  • Poorly documented features (or bugs)

  • Missing OpenAPI spec (or event APIs)

  • Downloading documentation… as a PDF, or access-gated

  • Missing examples… of anything

layout: image-right image: /images/slides/ramiro-tweet.png backgroundSize: contain class: my-cool-content-on-the-left

DevEx as Disaster

Common examples

  • Poorly documented features (or bugs)

  • Missing OpenAPI spec (or event APIs)

  • Downloading documentation… as a PDF, or access-gated

  • Missing examples… of anything

  • “CI as Magic 8-Ball”

layout: image image: /images/slides/yale-art-school.jpg backgroundSize: contain


...or DevEx as a Delight?


git push heroku main

Heroku deploy button


A working definition of DevEx

"...the journey of developers and practitioners as they learn and deploy technology, which if successful, focuses on eliminating obstacles that hinder them from achieving success in their endeavors."

-Jessica West, Co-Founder, DevEx Institute


layout: image image: "/images/slides/good-devex-overall-satisfaction.jpg"


layout: image image: "/images/slides/devex-integral-dev-lifecycle.jpg"


layout: section

Distinguishing DevEx from other Concepts


layout: two-cols-header

Distinguishing DevEx from other Concepts

::left::

User Experience (UX)

  • [Focus:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} prioritizing the end users usability and overall experience; aim to make software intuitive, easy to use, and enjoyable to interact with.
  • [Context:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} involves user research, wireframes, testing product to optimize user satisfaction.
  • [Differs from DevEx:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} _DevEx focuses on making tools, processes, and environments that devs use efficient and pleasant.

::right::

Developer Productivity

  • [Focus:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} measured in terms of output, with an emphasis on efficiency and performance.
  • [Context:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} metrics like "time to release", "number of pull requests", or "deployment frequency".
  • [Differs from DevEx:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} they don't capture the full experience of developers, while DevEx encompasses efficiency, the satisfaction, well-being, and support structure of devs.

Distinguishing DevEx from other Concepts

Developer Experience (DevEx)

  • [Focus:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} holistic view encompassing all aspects of the developer journey (usability, efficiency, satisfaction, etc.)
  • [Unique:]{style="font-weight: 900; background: var(--slidev-theme-accents-red);"} integrates elements of UX and productivity, but with a broader scope of psychological safety, community, and feedback loops.

layout: intro transition: fade | fade

Jeremy Meiss

Co-Founder, DevEx Consultant

DevEx Institute

DevOpsDays Kansas City Organizer

Jeremy Meiss

layout: image-left image: "/images/slides/cornell-devex.jpg" backgroundSize: contain class: my-cool-content-on-the-right

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.


layout: image-left image: /images/slides/cornell-devex.jpg backgroundSize: contain class: my-cool-content-on-the-right

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."


layout: image-left image: /images/slides/cornell-devex.jpg backgroundSize: contain class: my-cool-content-on-the-right

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."


layout: image image: "/images/slides/text-to-cloud.jpg"


Evolution of the IDE

Early text editors

USER FRIENDLY by Illiad, vi REF: O'Reilly "Learning the vi and Vim Editors"


layout: image-left image: "/images/slides/IDE_evolution-1.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

Early text editors

  • 1976: Vi
  • 1985: Emacs

  • 1991: Vim

  • 1999: nano


layout: image-left image: "/images/slides/IDE_evolution-3.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

Native IDEs in the 1980s

  • 1983: Turbo Pascal

  • 1986: Apple's Macintosh Programmer's Workshop


layout: image-left image: "/images/slides/IDE_evolution-2.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

First plug-in IDE


layout: image-left image: "/images/slides/hp-softbench-manuals.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

First plug-in IDE

HP Softbench


layout: image-left image: "/images/slides/hpjournal-june1990-hpsoftbench.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

First plug-in IDE

HP Softbench

REF: HP Journal, June 1990 edition


layout: image-left image: "/images/slides/giphy-thumbs-down.gif" class: my-cool-content-on-the-right

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.


layout: image-left image: "/images/slides/IDE_evolution-4.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

Cross-platform in the 1990s

1995: Borland Delphi


layout: image-left image: "/images/slides/IDE_evolution-5.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

The Web and the 1990s

  • 1995: SGI WebMagic

  • 1995: Microsoft FrontPage


layout: image-left image: "/images/slides/IDE_evolution-6.jpg" backgroundSize: contain class: my-cool-content-on-the-right

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

layout: image-left image: "/images/slides/IDE_evolution-7.jpg" backgroundSize: contain class: my-cool-content-on-the-right

Evolution of the IDE

Lightweight & Configurable

2010s to Now

  • 2008: Sublime Text

  • 2015: Atom

  • 2015: Visual Studio Code


layout: image-left image: "/images/slides/IDE_evolution-8.jpg" backgroundSize: contain class: my-cool-content-on-the-right

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

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."


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

layout: image image: /images/slides/devex-evolution.jpg backgroundSize: contain


layout: image image: /images/slides/rise-of-devops.png backgroundSize: contain


The Rise of DevOps...

Software Developement 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


The Emergence of DevOps

  • Collaboration

  • Automation

  • Continuous Integration


The Role of Automation in DevOps

  • Jenkins

  • Docker

  • Kubernetes


layout: two-cols

DALL-E

::right::

gemini


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 experiementation and fast feedback loops


layout: image image: /images/slides/natural_evolution.jpg backgroundSize: contain


layout: image-left image: /images/slides/dev-platforms-and-tooling.jpg backgroundSize: contain class: my-cool-content-on-the-right

The Rise of DevOps...

...and the Birth of Modern DevEx

Developer Platforms and Internal Tooling

  • Developer Portals
  • Self-serve infrastructure
  • API-Driven Infrastructure

layout: image-left image: /images/slides/dev-platforms-and-tooling.jpg backgroundSize: contain class: my-cool-content-on-the-right

The Birth of Modern DevEx

Cultural Shift towards Collaboration and Experimentation

  • Cross-functional teams

  • Encouragement of feedback and continuous learning


layout: section

Core pillars of Developer Experience


layout: two-cols-header

Core pillars of Developer Experience

Developer Onboarding

::left::

Effective Strategies{style="font-weight: 900; background: var(--slidev-theme-accents-red);"}

  • Comprehensive onboarding kits

  • Mentorship programs

::right::

Measurements{style="font-weight: 900; background: var(--slidev-theme-accents-red);"}

  • Time to first commit

  • Time to first merge

  • "_____"


Core pillars of Developer Experience

Documentation

  • Living documentation

  • Developer portals


Core pillars of Developer Experience

Continuous Feedback

  • Regular surveys

  • Feedback forums

  • Act on feedback


Core pillars of Developer Experience

CI/CD and Automation

  • Automate everything

  • Fast feedback loops

Overcomplicated pipelines can lead to more problems than they solve

Core pillars of Developer Experience

Infrastructure Orchestration

  • Developer Self-Service

  • Simplifying Deployment
Ensure the tools are well-documented and abstract away unnecessary complexity

Core pillars of Developer Experience

Culture and Team Structure

  • Cross-functional teams

  • Promote psychological safety


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.

layout: section

Enhancing the Developer Experience


DevEx reflects an organizational culture

devex-reflects-org-culture{style="width: 70%; justify-self: center;"}


layout: image-left image: /images/slides/team-priority.jpg backgroundSize: contain class: my-cool-content-on-the-right

Enhancing the Developer Experience

Prioritize DevEx at every level

DevEx initiatives should be modeled from Leadership FIRST{style="color: red; font-size: 1.25em; font-weight: bolder;"}

THEN...

  • Appoint DevEx Champions in every team

  • Establish feedback loops


layout: image-left image: /images/slides/reducing-friction.jpg backgroundSize: contain class: my-cool-content-on-the-right

Enhancing the Developer Experience

Streamline processes and reduce friction

  • Automate repetitive tasks

  • Implement self-service tools


layout: image-left image: /images/slides/supportive-community.jpg backgroundSize: contain class: my-cool-content-on-the-right

Enhancing the Developer Experience

Build a supportive community

  • Foster internal developer communities

  • Encourage mentorship programs


layout: image-left image: /images/slides/measure-success.jpg backgroundSize: contain class: my-cool-content-on-the-right

Enhancing the Developer Experience

Measure your success... and iterate

  • Get a baseline of where you are

  • Track qualitative feedback

  • Analyze quantitative metrics


layout: statement

DevEx is...

"ruthlessly eliminating barriers (and blockers) that keep your practitioners from being successful"


layout: two-cols

Thank you!

::right::

@jerdog.dev

/in/jeremymeiss

@jerdog

@[email protected]

@IAmJerdog

jmeiss.me


layout: end