Attacking people for things they do wrong feels good, but it does not deter them from doing those things (and might actually strengthen their resolve to do them). It's a goid emotional outlet but it is an ineffective way to bring change.
What is an effective way to bring change? Manipulation, unfortunately. Which sucks, because I neither like it nor am good at it. But it's the most effective way.