Balance is achieved by the GM, not by the players.
You need to balance your challenges so that each party member gets something interesting to do at least every few sessions. Your rogue should be doing more than backstab: he should be sneaking, lockpicking, picking pockets, etc. Your tinkerer should be building interesting things, your magic users should be using magic to resolve problems as well as just kill things, and so forth.
You also need to make the encounters balanced. That means each character should get a foe they can shine against, at least every now and then.
If your scenario is designed to run on rails, and you stick religiously to the random-monster tables, then this will be harder: if you don't even allow yourself to modify your tables or challenges to suit your party, then it sill be next to impossible. But in such a case, I'd argue you aren't being a GM, you're just a secret-keeper: the only thing that prevents them from just discarding you completely and using the scenario without a GM is that they'd see things before they should.
The way I run campaigns - fast and loose, and improv - this is easy. I just slot in mobs that work well for the current party makeup and state. One of the main things I pay attention to is the número of foes.
In 5E, combat characters are OP vs single targets, and that's OK, it's by design. In a recent session as a player, I had to dig up 24d6 for my rogue's crit damage (reasonably high-level, reaching the end of a 2-year campaign).
Yet personally, I feel this rogue is underpowered compared to the rest of the group. He's a one-trick pony. Backstab. Essentially, combat for this rogue is the RPG equivalent of buttonmashing. Which works OK against a single distracted foe and is largely ineffective against massed foes, or 1-on-1 combat.
Magic users are OP vs multiple targets, and that's OK, it's by design. A magic user rolled about 20D6 against multiple targets. Magic users get a huge number of options for attack, and the players even complain when they find themselves using the same spell over and over.
Magic users fare poorly when faced with multiple waves of enemies between long rests, since they must recharge; combat-monkeys can keep on going forever, or at least until the heals run out, and then you risk TPK.
If your fighter is OP vs single targets, then stop throwing single targets. Throw a pair of targets. Throw a mob of cannon-fodder. An ambush where they're attacked on all sides.
Eventually, in my experience at least, the player will start feeling a little useless: if you can read your players, you'll be able to spot this rising up, but in balance, the mages are really shining and are having a field day. Let them have their fun: to me, the art of good GMing is to manage the balance and angle of the game to give every character a chance to shine at least every couple of sessions.
Then you roll out the boss character, and your OP fighter gets to hold him at bay while the others, low on spell-points, pelt him from range, and suddenly he's the lynchpin of the combat again, and makes the final hit, and he had a great session that he'll be bragging about for ages :)
OP doesn't usually even exist. Only specialization exists.
If, as a GM, you are providing only encounters that allow one specialization to shine, you probably need to reconsider your approach to encounters. If they're on rails, consider refining those rails before the session, to bring out the different aspects of the party. If they're more improv, then mix it up a little.
If you have experience in stage-writing or playing, you'll know that a good playwright will always give every named character, no matter how minor, a chance to shine: a chance for the audience to relate to them, and for the actor to show their chops. It's what brings actors to the stage. If you have a secondary character who does nothing interesting, and could be cut from the plot with no loss, then you get imbalance; a skilled actor in such a tedious role could steal a scene with action alone. So it's the director's job to ensure that every actor shines to the point where they feel they had a "great show" every time the curtain falls.
As GM, even if you are using a pre-generated scenario so you aren't the playwright, you remain the director of the play, you dictate who gets front of stage, who gets the spotlight, in each scene.
Consider playing a superheroes campaign next time: I have found that for me at least, these are fantastic training in handling ridonkulously OP characters and still giving them challenges. Even Superman can be brought low without kryptonite, with the right challenge. Kryptonite isn't even his main weakness: people are. Every one of your characters and players will have numerous such armor chinks.
One of the things it taught me is: don't resolve every problem at swordpoint. Have your most powerful character protect the bad guy without knowing it, screw over the party without knowing it, suffer moral dilemmas, etc. Stuff like that. He can't shapechange, or fly, or call down lightning. He's a mundane in a world of magic, he's NOTHING.
And it's OK - no, vital - to give him chances to shine, just like every other character. Be sure to remember to do this, as in a lengthy 5E campaign, the other characters will level their magic past him, and he's stuck being their mundane meat-shield: at higher levels, the powers of magic users are practically gamebreaking. And give him chances to die nobly in that role: especially since death is OK in 5E, it's only permanent if there's a TPK. For players, the times they die are one of the most memorable times, remembered most fondly, or most bitterly.