This compartmentalisation in the name of efficiency is actively harmful. Developers should get out more and get first hand experience of the environments they develop software for.
I once had a PM tell us to do a feature a certain way, despite engineers saying we thought it was dumb. We shipped and had lots of user complaints, and lost millions of dollars ultimately in lost revenue due to cancellations that we think were at least in part to this. We eventually reversed course but much damage had been done.
Afterward there was a witch hunt (which I staunchly oppose, but I digress). It turned out that the PM had taken the word of another PM who in turn heard from another that had gone on location and misunderstood what the customer was saying. To save a few thousand bucks the company only sent one person and expected them to brief everybody else on their findings. In hindsight I'm sure that skinnier travel budget wasn't so worth it.
Additionally, in my experience the best engineers have been part product manager anyway, just as the best product managers have been part engineers.
If you're not solving problems you're just a medoicre code jockey. I want to work with people who build iseful things, not people who stop and understanding syntax and think that code is a goal into itself.
“Well, no, my secretary does that...”
If you work in a place like that, I'm sorry, that sucks.
I had zero domain knowledge when I joined. However the majority of our support team were hired from our customers, and they know the domain very well. We include them when we need to implement new rule changes and other features, to make sure we don't miss things.
After a few years of working here I of course have a lot more domain knowledge, but it's always helpful to be able to quickly run some questions past someone who knows the domain well should I happen to get some doubt in the middle of coding.
Weren’t given any time to learn it. FTFY.