Software engineers need to step it up ? Many times organizations purposefully put distance between customers and engineers. I like working with the customer directly , but it can be easy to put your foot in your mouth when you are so far away from the contract. Bad customers may also try to exploit this lack of knowledge and ask for extra work outside the contract scope.
I agree, but I am a little biased here as a product owner. Developers like to code. It's what they were hired to do, and it's what generates the most value the fastest. Anything which pulls a developer into meetings is lost productivity. There are occasions for devs to speak with end users; during, for example, refinement and demos. However unless I am vigilant, the developers quickly end up spending most of their time wasted in meetings with four other managers.
You hit the nail on the head: developers aren't well versed in customer and office politics, and most of them don't want to be. I am, as part of my job, and I know who is trying to muscle their pet project into the next sprint. I am the buffer; the diplomat and negotiator; and my team seems very happy with this arrangement.
I’m suggesting that developers should know some of their users as people who use their software and talk to them semi-regularly. Especially when your company is small and still trying to find a market fit.