I'll also say that I'm normally an advocate of making rolls in the open. However, I've recently started to favor the idea of making perception and similar rolls in secret.
I'm surprised this didn't come up immediately in this thread. Why give players metagame knowledge they don't need? You wouldn't explain the plot of your campaign to your players ahead of time and then ask them not to act on the information; why inform them that their attempt to read an NPC has succeeded or failed?
Any test that relies on player intuition should be made behind the screen. Stealth, diplomacy, trap disarmament, sensing motives -- in every case, the character is only as successful as the player believes them to be.
In general, I try to have a set of outcomes for every blind skill check:
Abject failure: a roll this poor, and the PC is usually aware they've bollocksed things up. No harm in telling them. Also includes the consequences of a substantial failure, below.
Substantial failure: the PC has done badly enough to actually warrant a negative outcome, not just failing to achieve their goal. Depending on the severity of this outcome, it may eventually inform the PC of their failure, but that information should not be volunteered immediately.
Slight failure: the PC has failed to achieve their stated objective but there are no consequences beyond that failure. They are unaware they have failed.
Slight success: the PC has succeeded at their stated objective but the certainty of that success is a mystery. The decision to trust in their success is their own.
Substantial success: the PC has succeeded at their stated objective and earns some additional reward. This reward may suggest to them that they have succeeded, but the result of the roll should still remain a secret.
Absolute success: on a roll this good, the PC has succeeded and they know it. Also includes the results of a substantial success, above.
My personal favorite way to play this is the substantial failure that looks like a substantial success until it turns out that their reward isn't a reward at all.
And if you don't like fudging, there's no need to do so -- a successful check is always a successful check, but you can privately consider the level of success according to your own metrics.
Though, I feel I'm able to do that with my group because they're aware that I don't fudge; as such, there's no fear that I'll push someone to fail if they didn't.
What would they do if you did fudge? Take their character sheets and go home? String you up by your toes? Cry about it?
Fft. Players.