I received a new person on my team who had previously worked on the overnight crew. In fact he worked for the company longer than I did. Anyway, he moved my team during the day and he was doing real well. So I told him that. I simply said, "Hey Matt you're doing a real good job. Thanks for your hard work." Real simple right. He looked at me like I told him his mother was ugly. The look of surprise from him struck me, so I asked him. Matt told me he had never been told he did a good job before.
This has been said by many people on my team. They appreciate being told they did a good job. In fact they will come and get me when they finish a project to tell them they did good. The productivity goes up. My team also knows when they aren't performing the way I expect I will tell them. Any team I have managed they will always know where they stand. Nobody on your team should walk on egg shells for any reason, and you shouldn't spend your day angry at someone running the risk of it affecting other associates.
A simple correction doesn't require a visit to the office every time. It only requires a little privacy. Remember, punish in private, praise in public. Then once it's done it's done. Don't carry it around.
As a leader if you are going to be effusive with criticism then you need to also be effusive with praise. I have never, and will never, be a fan of leadership that only tells you when you did bad. For those of you that lead that way I assure you that saying "thank you" when an associate finishes a project doesn't feel the same as saying "good job."
The same leader that complains about never being told they did well is the same one who passes the same negativity to their subordinates. Make sure when your associate or your team does a good job that you tell them. You will earn the respect of your team and it will improve your day too.