Senior vs. DX

Maciej Stasiełuk, CTO @ Vazco.eu

ITCorner Tech Meetup #5
25.11.19, Wrocław

Agenda

  1. What exactly is the DX?
  2. Evolution of DX over the years
  3. Who is responsible for good DX?
  4. Ways to improve the DX

What is DX?

Developer Experience is the combined experience that developers have when they work.

 

It's made up of emotions and attitudes about using tools such as IDE, SDKs, APIs, frameworks, or even the hardware.

DX vs. UX

 

Developer Experience may be considered equal to User Experience when the User is a Developer.

Developers tend to be savvier than regular users, so their UX is often ignored because "they'll manage anyway".

Why DX is important

 

Bad DX may lead to consequences:

  • Spending time on "fighting" with tools instead of creative work
  • Lowers team's morale
  • Worst overall performance

Evolution of DX over the years

1950s

PROGRAM HELLO
  WRITE (*,*) 'hello, world'
END

Photos: Arnold Reinhold - CC BY-SA 3.0

1970s - 1980s

    #include <stdio.h>
    int main()
    {
        printf("Hello World!\n");
        return 0;
    }

1990s - ...

  • Rise of Web Development
  • Lots of new programming languages to ease the development
    • PHP (1994)
    • Ruby (1995)
    • JavaScript (1995)
    • TypeScript (2012)
    • ...
  • You can write a web app in C++, but why should you?
 

Who should care about good DX?

EVERYONE

Who should care about good DX?

  • Creators of tools used for development
  • Library/framework maintainers
  • Architects making APIs
  • Authors of services targeting developers
  • DevOps
  • Team Leads
  • All experienced developers in the team

How to improve DX?

Build times

Hot Code Reload

Automation

Custom CLI

Documentation

Code style

"Clever" code

IDE

Ignoring warnings

Temporary solutions

// @TODO Refactor this once feature X is implemented
function someDirtyHack () {
    ...
}

Boilerplate

Project startup

  • How hard is it for a new person to run the project in development mode?
  • Good docs with step by step instructions
  • Dockerize when possible
  • Could the process be simplified?

CI / CD

Technical debt

Knowledge sharing

  • Pair Programming
  • Useful tools (IDE tricks)
  • Sharing experience
  • A better way to solve problems
  • Mentoring

Questions?

Senior vs DX

By Maciej Stasiełuk

Senior vs DX

  • 403