first off, classes are not balanced, and if you think so then you are playing the wrong people.
Spy, pyro, sniper, heavy, and enji pale in comparison to the scout, soldier, demoman and medic.
The medic is obviously the most important class, if you think otherwise, you are playing on bad servers. The demoman is the most potentially versatile, pushing on the extremes of very strong pushes cause of his enormous damage output and very versatile weapon(stickies). And very importantly, the ability to sticky jump into combat is fairly important, but still not as versatile as a rocket jump, demo has to stay more dedicated to combat if he sticky jumps in.
Soldier is the next class that pushes on in versatility, able to attack the classes and more importantly defend the medic. with more consistent damage output than demo, he is the true all around guy pushing no extremes. The quick and easy rocket jumps of soldier allow him the abilty to push and retreat fairly quickly.
Scout, is the another very versatile class, with very high damage output, with good aim, scouts are scary, and i mean scary. can two shot all standard classes and has the speed to get to health. with the abilty to dodge spam, they are great at both covering flanks and strong pushes and picks.
The game is far from balanced, and the community is garbage going for tons of stalemate maps like any payload, 2fort, and dustbowl. With faster respawns and all that garbage.
There are literally like 5 good servers in the entire US out of hundreds.