Stephan Schmidt

The 🪀Yo-Yo Effect of Developer Productivity

Why doesn't developer productivity go up?


From my keynote at the T3 Leadership Summit

Recently at the beach I was thinking. Sipping a little bit of champagne and thinking. And I got to the topic of developer productivity. Why is it flat? Why aren’t we developing 10x faster compared to some decades ago?

I kept thinking. In 1999, I founded a startup for blogs/wikis combined with tagging the knowledge in the head of people with two friends. We used a Java/XML/XSLT stack that seemed a good choice back at the time. Some years later, the company folded, not because of the development stack but because the dotcom bubble burst.

Today I look into many companies. And they are not developing features faster than we did 25 years ago. Which is astonishing, because we got many improvements to developer productivity over the years. We got Git, which is much better and more productive than CVS/Subversion - especially with merging. We have much faster computers. SSDs are blazingly fast and Apple Silicon has great memory bandwidth. Compile times are more than 10x faster compared to 25 years ago. Running tests is much faster. We have a better developer ecosystem. I had to look into a book to find answers to my XSLT coding questions. Today we have (had) Stack Overflow. We have better frameworks and tools, like Redis. We have better programming languages like Typescript and Go. And existing ones like Java, Python and JavaScript evolved tremendously. Less code for faster development. Then we have Docker, easy CI/CD on GitHub and hosting in the cloud on AWS.

We should be developing much faster than before.

We are not. This is a mystery.

So I kept thinking. And thinking. And discovered the Productivity Yo-Yo Effect. Let me explain.

At the same time that we gained productivity, we added things that drained productivity. We got into Scrum with its many meetings. We have more meetings with more stakeholders than before. We have too many tools, just look at JavaScript bundlers and web frameworks. We have complex cloud setups, many CTOs I meet had and have misconfigured AWS setups. We have mobile with new teams. And we have SPAs. It is no longer enough to add a new feature to one place in your code, you now have to change backend code, change the API, change the frontend SPA code, change the mobile iOS code and the Android code. And if your mobile has its own API to the backend, you might need to change that too.

We added lots of unproductivity.

But one wonders, why did productivity stay flat, why didn’t it go down and down and down.

The reason is simple. The Productivity 🪀Yo-Yo effect. We add as much unproductivity as we can, as a luxury to get other benefits than development speed. Until we feel bad or get pushback. Then we stop and do more productive things again. We give pushback to the many Scrum meetings. We drop them. We replace SPAs with HTMX. We move back from Microservices to Moduliths. We replace iOS and Android apps with Flutter. We drop Typescript and move back to plain JavaScript.

You have heard the term Yo-Yo from dieting. The same happens with productivity. If we feel very productive, we allow ourselves to add some luxury, like SPAs. Luxury in the sense of cost, not status. Not that these things do not have benefits. There are benefits to SPAs, just like to Rolex watches. But they have a productivity cost. When we feel overweight, we add more productivity.

The Productivity 🪀Yo-Yo effect tells us that whatever we do as developers, we will not get more productive overall.

Developer productivity will stay flat.

With the coming wave of AI productivity, I wonder what unproductive things we add.

Join CTO Newsletter

Join more than 2700 CTOs and Engineering Managers

More Stuff from Stephan

Other interesting articles for CTOs

Best books for CTOThe CTO BookExperienced CTO CoachEngineering Manager CoachingConsulting and Workshops to Save you TimeCTO MentorCTO MentoringCTO NewsletterHow many developers do you need?Postgres for Everything Technology and RoadmapsHow to become a CTO in a company - a career path

Other Articles

How To Succeed With A Rewrite - And Why They Fail

Dear Paul Graham, there is no cookie banner law

Comparing SQL, SQL JSON, ORM and GraphQL performance in Golang

Musings about error handling mechanisms in programming languages

Sometimes DRY is not the right thing