I am talking of course about scrum, story points, product managers, scrum masters, product owners, rituals, etc. All the crap and layers of indirection that sit between devs and the people who actually use the software.
Devs should be talking to and working with end users and building up an understanding of what users want and need from the software. I mean this literally. Actually sit with, work with, and talk to users, don't just communicate with them through an issue tracker.
You sometimes see this in early stage startups, but even startups often end up designing for VCs or designing to be acquired, rather than designing for users.
Yes users sometimes need training on how to communicate requirements, but it is up to devs to do this. Don't expect them to magically acquire this skill out of nowhere.