Shift left overload

In the early days of computer science, until it becomes an industry, and software engineering was introduced, when programmers were only programmers, they were in charge of everything.

They had to collect the requirements, write the specifications, make the code, test, distribute, and gather feedbacks.

Then other well established companies turned this new field in an industry, they have decided to split our work into multiple chunks, they have applied Fordism, and added managers.

Decades have passed, technology (the internet, smartphones, etc.) and society have changed.

When two systems evolve independently, the complexity of the merged system skyrockets, and that's what happened.

We have created product owners and business analysts to collect requirements and write specifications.

Programmers became developers.

Tests are now handled by quality assurance.

System and database administrators take care of distribution and operation.

We have created the role of support to avoid dealing with user feedbacks.

Not only we have many roles, but also we had created dedicated teams, and even business units.

A first move was to create teams with all roles, we have used mechanism like pair programming and mob programming.

But it was not enough, there is a big trend of "shift left", delegating more and more to developers.

We are shifting from software engineers to product engineers.

The problem being that each role have engineered their field, making it more complex.

SaaS solutions and LLMs are failed attempts to alleviate that, but they became leaky abstraction, as they try to hide the complexity increase, and society changes.

Objectively, it only increases developers' workload.

The only hope we have is that our scope have expanded, but the key parts (collect requirements and write specifications), are still held by people "on our left".

Maybe we should also shift right?