On the projects that I've been involved with my current team, I am almost always the "Doomsayer". What this role amounts to is
making sure that everybody knows the risks involved.
making sure that bad news isn't hidden, or glossed over.
making sure that the bad news isn't blown out of proportion.
The last point is almost the most important, because Doomsaying lowers productivity in many cases. It *can* however, be responsible for serious changes to the plans or programming practices that can lead to the most gratifying conclusion to a Doomsaying session. That conclusion is a plan, and the beginnings of implementation, for ensuring that doom is averted.
It is also very important to be constructive about it. Saying the sky is falling when it isn't, or without looking for ways to do something about it, is definitely not the function of the good Doomsayer.
See also: BlackHat, SixThinkingHats, BadNewsNeedsToTravelFasterThanGoodNews