So for a while now i was thinking that why is it soo important that heroes should only stick for one role and one role only, why cant we have a hybrid system?
The basics are simple, when you enter a match you choose a hero then you choose the role you wanna play it.
For example lets take Soldier 76.
The dps skillset goes for mobility, team heal, damage and an aimbot ult.
If you would like to play him as a support your skillset would go with:
Self and single target mobility boost, larger range fast recharge team heal, pure cc rockets and an aimbot ult castable on an ally.
If you want to go for the tank role you would get:
400 base health, slowing aura, team shielding, more cc less damage rockets and an ult what increases damage done to shield, armor and barriers.
Some heroes are obviously tricky to make them fit for all roles but i believe this would greatly increase the team composition variations and could fix many problems with the rooster too.