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 |
|
true |
true |
true |
build |
auto |
16/9 |
|
|
text-center |
true |
|
cover |
slide-left |
layout: image-right image: /images/slides/new-feature-fail.gif backgroundSize: contain class: my-cool-content-on-the-left
- Poorly documented features (or bugs)
layout: image-right image: /images/slides/api-fail.png backgroundSize: contain class: my-cool-content-on-the-left
- 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
-
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
-
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
-
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”
git push heroku main
"...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
::left::
- [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::
- [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.
- [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: image-left image: "/images/slides/cornell-devex.jpg" backgroundSize: contain class: my-cool-content-on-the-right
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
"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
"...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."
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
- 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
-
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
layout: image-left image: "/images/slides/hp-softbench-manuals.jpg" backgroundSize: contain class: my-cool-content-on-the-right
layout: image-left image: "/images/slides/hpjournal-june1990-hpsoftbench.jpg" backgroundSize: contain class: my-cool-content-on-the-right
REF: HP Journal, June 1990 edition
layout: image-left image: "/images/slides/giphy-thumbs-down.gif" class: my-cool-content-on-the-right
"...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
layout: image-left image: "/images/slides/IDE_evolution-5.jpg" backgroundSize: contain class: my-cool-content-on-the-right
-
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
- 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
-
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
- 2009: PHPanywhere (eventually becoming CodeAnywhere)
- 2010: Cloud9 (AWS bought it in 2016)
- 2018: Glitch
- 2019: GitPod
- 2020: GitHub Codespaces
- 2024: Google Project IDX
From this:
"...the use of an IDE was not well received by developers since it would fence in their creativity."
To this:
- Code completion
- Code refactoring
- Syntax highlighting
- Debugging
- VCS integration (no more FTPing files around)
- Multi-language support
- Framework integration
- Pair programming
“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
-
Collaboration
-
Automation
-
Continuous Integration
-
Jenkins
-
Docker
-
Kubernetes
::right::
-
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-left image: /images/slides/dev-platforms-and-tooling.jpg backgroundSize: contain class: my-cool-content-on-the-right
- 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
-
Cross-functional teams
-
Encouragement of feedback and continuous learning
::left::
-
Comprehensive onboarding kits
-
Mentorship programs
::right::
-
Time to first commit
-
Time to first merge
-
"_____"
-
Living documentation
-
Developer portals
-
Regular surveys
-
Feedback forums
-
Act on feedback
-
Automate everything
-
Fast feedback loops
-
Developer Self-Service
- Simplifying Deployment
-
Cross-functional teams
-
Promote psychological safety
-
Flexible schedules
-
Work-life boundaries
{style="width: 70%; justify-self: center;"}
layout: image-left image: /images/slides/team-priority.jpg backgroundSize: contain class: my-cool-content-on-the-right
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
-
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
-
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
-
Get a baseline of where you are
-
Track qualitative feedback
-
Analyze quantitative metrics
::right::