Importance of the developer experience in the modern front-end

In the past front-end developer could spend years mastering the same set of tools. Now we don’t have this luxury. We have to adapt to constantly changing ecosystem. We’ve replaced Grunt with Gulp, JSHint with ESLint, Bower with npm and everything with React.

It requires us to develop new skills:

  • monitor new tools and techniques;
  • quickly decide what to learn and what to use;
  • debug frameworks and libraries.

Only last month gave us Babel 6, React Router 1.0 and React 0.14 (a bit earlier) as well as betas of React Intl 2.0 and Webpack 2. All with breaking changes.

It makes developer experience much more important than ever. In the past few months I spent many hours debugging strange issues with Webpack, Babel and other libraries. I believe that we can do better.

What we, as tools developers, can do

Improve documentation quality

  • More examples.
  • Get started guide for beginners.
  • Starter kits and boilerplates.

Good: Redux. Documentation that worth publishing as a book, a huge number of starter kits and example applications by the community.

Bad: Immutable.js, Webpack. Almost never helps.

Describe breaking changes and how to upgrade

Good. Rackt projects like React Router or Redux. Detailed descriptions of breaking changes and upgrade instructions.

Bad: almost any Gulp plugin. No changelogs at all.

Improve error handling

Good: React. Lots of checks and meaningful warnings in the development mode. Elm. They are trying to be really useful.

Bad: almost everything else.

Follow semver

Use semantic versioning to notify users about breaking changes. They shouldn’t be afraid that updating to a new patch or minor version breaks their code.