Software development that I know is like this:
User Requirement --> Design Spec --> Programming --> QA Test --> Staging --> Production
And more often we always go from Programming/QA Test back to User Requirement/Design Spec because some inconsistency came up, or some new idea emerge. A small project that consist one person usually can flow smoothly, because he handles all steps from requirement to production. Now think of a team that consist more than 1 people, and all of them handles different steps. There will be a lot of communication going forward backward between steps that sometimes result "lost in translation", a lot of documentation need to be written down so there will be no "lost in translation" can happens, or a person that is faster in Programming waiting for slower person in Design Spec, etc. These things will happens even if you have 2 person team.
I believe a quality software product is that it meets user requirement and there are no bugs. And to achieve this kind of quality, rushing through door is not the answer, that is why dev team will always appear to very slow or you will say "lazy". Trust me, if they want to be lazy, they will not even bother to reply to your question or fix a bug that happens before with item duping.
Now you could say, hey I'm a customer that use my money to buy blizz software, then my voices are matter, they should hear me. But in the reality, the most valuable customer to them is the stakeholders, if they could not meet requirement of their stakeholders, they could lose their jobs, or worst their future jobs. Your voice would probably still matters to them, because that is what CM is for.
The last thing, I want to say "CM is a person, juts like you and me". They have feelings, sometimes they could reply with a childish response, just cut them a slack.