There's an inverse relationship between time waited and feedback effectiveness: the quicker it's delivered after the event, the more effective it will be. Time has a way of distorting people's memory of events, so you should give feedback as soon after the actual event as possible. The only condition I'm going to put on this is to wait until you are in private if it's a piece of corrective feedback. The embarrassment generated by delivering corrective feedback in public only strengthens the will of the person to justify and defend what you say. Yes you can deliver good news and recognition in front of the whole team or department when merited, but the old saying, "praise loudly and blame softly" is a wise one.