Ranked matchmaking, can be significantly improved, if players are ranked or rated on the role they play, and it can be a very effective way of assessing a player's performance.

For example, a player can be a Divine support, and an Archon level carry, if he chooses to play as a support, his rank should be Divine, and he should be matched with/against Divine ranked players in other roles, if the same player who is Archon as a carry, queues as safe laner, he should be with/against Archon ranked players in other roles, such as Archon supports, and Archon off-laner.

This is the best way to fix the broken matchmaking system. A lot of players are ranked like ancient++ and their gameplay is absolutely pathetic, and for some reason, all of them believe that they can carry, or mid with every hero possible. I've been playing Dota since 2004, Dota community has never been so broken, I'm a top tier support, but, in solo matchmaking, because of supporting shit tier carries and mids, from 5k MMR 4 years ago, I'm now in Archon bracket. This needs to be addressed immediately, good players are a luxury these days, support life is really hard.