Your characters must earn what you give them.
For every moment in your outline or script where your hero finds out something, is given something or accomplishes a task… ask yourself, “Have they earned it?” If it is unearned, it’s worthless. At least 95% of the time. There’s an exception to everything.
The hero can’t meet a girl and have her fall in love with him seconds after meeting him. The hero has to ask her out and be charming and eventually earn that love… and then lose it… and then work really hard to get it back.
The private detective can’t “realize” Mrs. Frekelson is actually a spy… he has to work hard and find clues and do things to figure out that she’s a spy. Then, when the Ah Ha Moment arrives, we feel satisfied.
Coincidence is not a good idea. Your intrepid high school math whiz heroine can’t just find the missing scrapbook by the side of the road… she has to work to find it. She has to struggle. You can’t just give it to her.
I find that writers often have “stuff happen” because it’s needed to shove the plot forward. Stuff can only happen if it works for the story and the character. You can’t be the Puppetmaster, on high, making your characters do things arbitrarily because they’re needed for your story to work.
Looking at every step of the story and asking, “Did she earn this boon I just gave her?” is a good question to ask, at least on one pass through your work.
Look at the news. Ha ha. White collar criminals don’t get to go to jail because they did one thing wrong. They have to REALLY have done something wrong to land a room at government expense. Look how many things those guys have to do over and over and over before anybody prosecutes them. They have to earn it.