Another part of the problem is that in many industries there's a strong lobby of local companies which like medieval guilds block any new competitors from entering the markets. APIs and open standards still barely exist - you cannot simply plug in your new fancy service into an enterprise environment, but you have to pay plenty of money to some Verband to get some crazy XML specification for file exchange. After all I've seen in IT in Eastern Europe (most of all in Russia) and USA, I'm feeling like I'm still in XX century.
Long story short they are forcing us to do things as they always been done even though they asked us to change them in the first place.
Good software development just isn't structured like that at all.
Just an example: https://www.handelsblatt.com/today/companies/wirtschaftswund...
I don't know what kind of CTO you are (I'm CTO too), but if you were hiring recently in Germany, you should be able to notice the average time to fill a senior software engineer position is several months. This is the reality in which we live.
There is a lot of really good CS/math research coming from German uni's, I would not call it subpar.
It is not. I worked in 3 people startups, 15 people web shops, 50 people IoT shops, and very very big enterprise software corps in Germany and I can tell you what you say can be copy&pasted into any of them. The only advantage of smaller companies is that they can't afford to have as much middle management. Therefore the "visionaries" are forced to live closer to reality and work with small teams. But they certainly don't like it and move to your model as soon as possible.
I've seen this in every company I've worked in. Importance of projects is measured in how many people work on them; you'd think that creating efficiencies and managing the work in an extra small team would be valued, instead you fall into complete irrelevance.
Most docs at my >200 dev shop including contractors are in German though.
https://www.bloomberg.com/opinion/articles/2019-03-02/the-en...
The problem, as far as I can tell, is as follows: top management is able and motivated to increase the size of the money bag. Developers just want to do a good job for a good salary. Middle management can't change the size of the money bag too much, so it just wants to grab as much as possible for itself. How does a middle manager expand their empire? Certainly not by leading a small, effective organization. The head count needs to grow, so the middle manager wants ineffective developers. It only works because no one above knows enough about software to fairly evaluate the work of these petty empire-builders.
One time I wanted to gauge how far the car industry has come from realizing the problem to implementing a solution, so I typed something like "automotive software crisis" into Google. Among the first few hits a presentation of a German CS professor stating that there is a crisis... and that the solution is model-driven development. It's the exact shit that they are already doing that is not working.
If good software is produced in Germany, it's despite subpar academic CS and dysfunctional large companies. Much of Germany's economy is medium-sized companies - fortunately, I guess.
I do expect the German car industry to fix its software but only when it's really suffering financially. Car industry outsiders will be heavily involved in the solution.