What you mean is it's extremely difficult not to produce shit software with a setup like this, even though paradoxically the theory is that this should produce higher quality software.
The reason for this is something called tacit knowledge. The only way for a developer to be successful is if they have the same level of understanding that product does. Since they don't, product needs to be the one implementing. Since neither happens, you get shit software.
The solution is either product starts implementing or software developers stop being treated as line workers.
product used to be three roles that worked together. software dev, business analyst, and marketing. And depending on the size of the company, business analyst and marketing often means working directly with business because that's who collaborates between those two.
There is no value-add in product, the theory has proven out to be untrue.
Give it another 10-20 years and we'll be reading articles about how the "smart" companies are doing away with product and giving it back to the other roles and asking them to do something crazy like talk to each other.
"working with business" suggests we must be talking about different situations.
I'm talking about a company building software products they sell, eg an enterprise software product like salesforce, google cloud, aws, splunk etc. Not internal software or software built for a specific client.
It's all the same, someone has a need and you give them a solution.
That need is either driven by business wanting to improve the software or by technical wanting to improve the software. product doesn't belong in there.
product will never identify that a technical change will enable new things, for example. The ones who can do that aren't allowed in the conversation.
We are talking about quite different environments.
Trying to simultaneously satisfy many customers in a market where there are multiple options, different ways to slice and dice the customer segments, different dimensions on which to optimize a product, different ways to reach customers, different systems to integrate with, it's just a whole different ballgame to building a specific solution for a specific customer.
And at somewhere like google for example, most of the PMs are former engineers and can see technical changes enabling new things. On top of that, at somewhere like Google engineers do meet with customers, frequently. There isn't some dividing line like you describe because all the business units are run by PMs or engineers. They are "business" in your terms.
It is what it is. Your observations and suggestions may well be true and sensible in the environment you are operating in.
Yep, you can structure the roles however you like. I'd guess every plausible combination has been tried.
In my world engineers are first class citizens who have real input to the product decisions and meet customers, the PMs are usually technically capable, the PM job is too big to be done part time and hence isn't. It is what it is, and doesn't seem to be close to how things work in your world. But in my world, the product job is more complex than "someone has a need and you give them a solution". For internal development or consulting, that's probably right.
Regardless, the job is still extremely difficult to do well. Anyone who tells you otherwise hasn't really done the job, at least not outside of the simpler world of consulting/internal software where it's best described as "requirements engineering".
The reason for this is something called tacit knowledge. The only way for a developer to be successful is if they have the same level of understanding that product does. Since they don't, product needs to be the one implementing. Since neither happens, you get shit software.
The solution is either product starts implementing or software developers stop being treated as line workers.
product used to be three roles that worked together. software dev, business analyst, and marketing. And depending on the size of the company, business analyst and marketing often means working directly with business because that's who collaborates between those two.
There is no value-add in product, the theory has proven out to be untrue.
Give it another 10-20 years and we'll be reading articles about how the "smart" companies are doing away with product and giving it back to the other roles and asking them to do something crazy like talk to each other.