Building a delightful Engineering Experience

Aaron Craig
2 min readSep 13, 2017

--

Which software development team doesn’t claim they are in the business of building a great user experience.

But who thinks about the engineering experience when building software? Should we care?

Good engineers like the fun things — building new features, solving hard problems, creating new tech.

They hate the boring things — deploying builds, writing tests, fixing bugs.

It costs something like $25,000 in recruiter fees and a ton of time to hire a good engineer.

It seems clear we should invest as much energy in keeping engineers happy as they do their users.

Here’s a list of things we pay attention to at Rival, because we believe that when we invest in these things our developers are happier, our velocity increases and our company profits.

Can a new developer push code on the first day?

Without pairing with another engineer?

This is probably the number one measure of a team’s overall health.

If they can, it means the code base is well structured and well documented. The deployment framework is automated and easy to use. The team communicates well and can answer inevitable questions.

There are few things that makes an engineer more happy than feeling useful and productive.

How easy is it to write tests?

If your team doesn’t care about automated testing, it probably doesn’t have very many good engineers (sorry, it’s true).

Investing time in building an easy to use testing framework, with plenty of configurable fixtures and shared utilities, reduces friction around writing tests.

Less friction, more tests. More tests, fewer bugs. Fewer bugs, more new features. More features, happy engineers!

How many team members understand the entire code base?

If only a few (or one?!) on the team really understands the entire code base, then there is friction around writing new features in arcane realms of the code.

More friction, fewer features. Fewer features, frustrated engineers.

How easy is it to add features?

Does your team still work around that dumb decision the first CTO (you know, the friend of the CEO’s brother-in-law’s boyfriend?) made?

Fix it. Now.

More features… you know what comes next.

Building software is hard. The patterns and practices that evolve in a team over time can make the task more or less difficult. Mindfully nurturing patterns that decrease tech debt and increase developer happiness will pay off over time in increased velocity and decreased turnover.

--

--

Aaron Craig

Engineer at Rival, building enterprise and consumer experiences with React, React Native and AWS.