Medics:
-Only heals heavies
-Only ubers when his own life is in trouble
-Needle gun is useless except on spys and scouts
-Crossbow is great, but only with people who use lucksman.
Engie:
-Can create hell with gunslinger/frontier justice
-Can be perfect offensive engie with jag and ranger
-All shotguns are OP, especially Pomson
-Can be awesome defence with Widowmaker/Short Circuit/Eureka
-Can heal ALL teammates at key points in maps.
-Can use teleporter for good or evil
-Distracts spies from killing real targets
-Dances
Are we still talking about this?
It sounds like you've been playing with a lot of bad Medics. There are a lot of weak players in general. You don't notice them when they're running around as a Pyro or Soldier and
look like they're doing something helpful for the team. You do notice them when they're a pure pocket Medic, sniping from a terrible location, or building a sentry in the middle of nowhere. But everyone starts at zero and has to learn.
A good Medic should be trying to build uber as quickly as possible. That means constantly healing and overhealing various players because the uber rate is faster when a target player is at less than maximum overheal. There are times to pocket a Demo, Heavy, or Soldier too. It's all about reading and reacting to what's happening. And of course, sometimes that means popping an uber rather than letting it go to waste. A dead Medic is of no use.
The Medic is basically an amplifier. Whatever the ability of the team, the Medic makes the team a degree better. More health, a higher health ceiling, healing on the fly, and of course the ubers. Give those benefits to a bad team and they will be a little better but may not take advantage. To a good team, it can be the difference between winning and losing. And the right player, with a medic pocketing him at times, can become a force of nature.
It's a thankless job too. If a Medic is doing his job correctly no one notices. The needle guns aren't made for attacking and racking up kills. They're at their best when backpeddling and leaving a wall of death for an enemy to run into. When a Medic kills a spy that is about to go on a backstabbing spree, the team isn't even watching. When he fires a bolt halfway across a map and gives some otherwise out-of-range player a health boost the team is silent.
But when the Medic chooses not to heal someone or simply doesn't see an injured player, it's so easy to trash the Medic. The Medic needs to (try to) keep tabs on his healing target, other teammates in the area, the location of the best player(s) on the team, the opposing players that are in range, any potential snipers, his six in case a spy materializes, and a way to escape if necessary. It's a lot to process and at the same time constant decisions have to be made regarding position and healing priority.
I'm not saying that Engis aren't useful but consider giving some serious love to your Medic. His fate is tied to yours and I guarantee he loves you and wants you to succeed. And if he knows what he is doing and you use him correctly, the best Engi in the world isn't going to save the other team.