In fantasy, we've recently seen a rise in the popularity of the antihero. Although I don't mind the occasional antihero, I often find myself yearning for the days when heroes were, you know, heroic. Unfortunately, many of these stories have heroes that are too good at what they do, too certain of their goals. These heroes trend into Mary Sue territory and suck all the conflict out of a story.
Yes, there might still be external conflict: the quest, the mission, the mystery they're trying to solve. But heroes who never doubt what they're doing result in very little internal conflict, and internal conflict is what gives your story depth. That's one of the advantages of the written medium. You can get into a character's head and see all their doubts and insecurities.
When I first wrote my epic fantasy series, it was pretty bad. No doubt about it. My characters did all kinds of cool things on their quest, but they weren't fully developed people. They were always sure about what they were doing. They rarely faced those pesky doubts and insecurities that make a person human.
In my recent rewrite, I've worked hard on addressing this aspect of my story's conflict. My three primary heroes--Nadia, Markis, and Berig--all face their inner battles in addition to their outer battles. Nadia has spent years preparing to kill the emperor who ordered her mother's execution, but she frequently doubts that she's doing the right thing, or that she has the ability to do what she plans.
Likewise, Markis faces his own insecurities. Deep down, he only wants to escape the empire that no one has ever escaped (supposedly). When he realizes this isn't a possibility, he ends up as part of Nadia's quest, but he never can get behind it quite like she can. His doubts are always there, and he wonders if he should simply go into hiding instead, to avoid his future as an Imperial Guard.
Berig faces the most severe doubts of any of them. He's lived a rough life, starving on the streets, getting beaten by Imperial Guards, barely surviving the nightly attacks on the city by a monster. He blames himself for everything that goes wrong around him, refusing to take credit for those things that do go right.
I could go on and on about all the things they doubt, but that would give away a lot of the story. The point is I believe these doubts make these characters more human. Yes, they're still heroes, as they are all good people at heart, but they're not without their issues. These issues make them human.
And I think that's why the recent trend toward antiheroes has gained so much momentum. Authors, by giving their characters, some less heroic traits, make them more human. But that's not the only way to do so. You can still write a hero and make that hero an interesting, engaging character.