DX (dev experience) should be a thing


What is DX?

'DX' means 'dev experience'.

Why coin a neologism?

Developers lack a succinct way to characterize a software library's ease of use. The closest thing I've seen is 'programmer happiness'. 'Ergonomics' also works, although 4 syllables makes it unlikely to catch on.

Is this like UX (user experience)?

Yes.

Why should I care about DX?

For the same reasons you care about UX: if your project is unpleasant to use, other developers won't use it.

How to have good DX?

Use 'immediate files'.

What are immediate files?

If you’re browsing a directory full of source code, it’s useful to see the documentation or build script that “kicks off” the entire project. This is why exa calls them immediate files — they’re meant to be the first file you read or run.

What files are immediate files?

Examples include:

What information should immediate files provide?

Examples. Realistic, complete, useful examples that demonstrate the software being used in the manner it is intended.

Glossary for any special terminology that can't just be googled - especially project specific terminology that may be confusing, and double especially terms or phrases which are used slightly differently to the way everybody else uses them (e.g. 'user' means something slightly different almost everywhere).

Lots of "why" describing why the software behaves in ways that seem surprising at first glance.

Do immediate files have a tradeoff?

Yes; they have to be maintained.