Almost two years ago, I wrote about the unbundling of the software developer. Now, at a very different point in the cycle with tech layoffs, will we see the return of the full-stack software engineer (and then some)?
Coordination is costly. Communication costs scale exponentially with the number of people. This is true when vertical scaling (more employees in the same role), but even more true with horizontal scaling (splitting into different roles).
But software developers don't have the skills to do all technical tasks. Division and labor, and specialization (Adam Smith) are more efficient.
Specialization is increasingly happening outside of the firm via third-party SaaS. Instead of hiring a team of Kafka experts to run your data streaming platform, you might just pay a company to manage it for you (e.g., AWS or Confluent).
Increasingly we're seeing products that are specifically enabling the full-stack developer.
For design, Figma says they have more developers among their paid users than designers (link).
For issue tracking, there's Linear, with design and UX that seem tailored to developers.
For cloud infrastructure, there's a set of PaaS and developer-friendly software that makes it easy for these full-stack developers to deploy their code.
For slightly more advanced cloud infrastructure, developers are starting to adopt infrastructure-as-code languages in their default language, like TypeScript. They might not be writing this code in their organizations yet, but it's much more accessible than it was before.
In infrastructure, we've seen the responsibility shift from IT and operations departments to DevOps to platform teams. IT and operations controlled internal cloud platforms. DevOps controlled down public clouds, and platform teams now control the public cloud APIs.
I could see a world where full-stack developers take responsibility for a fuller lifecycle of applications.