Developer Productivity Matters

Dion Almaer
Ben and Dion
4 min readNov 9, 2021

--

NOTE: This was originally posted on my own corner of the Internet.

I have been fighting for investment and focus on developer productivity for a large part of my career. Platforms often focus on the user side more, and think that the focus should be on solely economic opportunity. Understandably, if you can’t persuade a business that their effort will result in profit, you won’t get resources applied.

I can’t tell you how often I have heard a version of the following:

“Hell. Developers rushed to learn Objective-C to build iOS apps!”

The gold rush was real on getting apps available for the exploding usage on the iPhone, but while Objective-C looks weird to many from the {curly brace generation} it is actually an elegant language (sure, it has quirks, but don’t we all!). This flippant repost also ignores the quality in the UIKit foundations, and the quality of tooling.

Pete’s right!

Economics of a platform are important, and are an input into how many developers can be hired, but there are clear reasons that it is important to focus on developer productivity if you work on a platform. I contend that the vast majority of platforms are under invested in their support of developers, and haven’t reached the point of limited returns. Why?

Time is precious

A developer has a set time budget that is fixed. There are priorities coming at them from all sides. The “business” wants features, features, features. The platform is forcing deprecations, and requirements for performance, accessibility, and security.

Time well spent

If we can take away any time that is wasteful, we can optimize the time well spent of a developer. This allows for more productive output per time slot.

Another important characteristic of time well spent is that we aren’t JUST talking about pure optimization of effort. Developers want to do a good job, and are quite willing to spend time that results in higher quality experiences. We want to do a good job, and have experienced getting into the flow state to build something great. The notion that “developers are lazy” is often misinterpreted. We just don’t want to waste time, just like humans hate any form of bureaucracy that feels wasteful.

Frustration is the productivity killer

If you are frustrated, time gets exponentially eaten up. Developers are engaging in a creative pursuit, and paper cuts slow down your flow, and get you in a frame of mind that is destructive. When you are enjoying yourself, your energy levels won’t deplete in the same way as if frustrated. This is why it is vital that you track developer needs and frustrations and actively get rid of them.

If the platform is hard to use, and the tooling isn’t delightful, and the documentation sucks, well then the effect on time isn’t a set amount, but is rather a multiplier. You have the power to influence a multiplier. This is a big deal. Also, if you are particularly bad, that multiplier can go as low as zero, where the developer flips the table and does something else 🙂

Developers don’t scale linearly

While the economics of a platform may allow for hiring more developers, we all know that this doesn’t scale cleanly. As a team grows, you get increased communication costs, and it takes a very special team to be able to scale. Cut out the need and allow teams to be as small as possible, and to allow a team to be able to work in parallel as best as they can.

Don’t cop out on productivity

Don’t fall for it. Don’t think that you can get away without focusing on developers and doing everything you can to keep them productive. I remember someone who told me “The business doesn’t care about developer smiles” as though I was a hippy solely looking to care about our developers (which isn’t a bad thing!). Building trust is important. Having developers who love working on your platform is valuable. But beyond that, you want the flywheel from developers to be going as fast as possible. You want them putting their effort into quality new features. You want them fresh enough to want to put effort into areas that you care about in the commons of your ecosystem (performance, privacy, security, etc).

You should be doing everything you can to maximize time well spent, and taking on as many hard problems as you can, so your ecosystem doesn’t have to.

So, yes, developer productivity matters.

--

--