The Talmud teaches that we should reprove someone even a hundred times. But if people naturally dislike criticism, why would repeating it over and over actually help?
Perhaps the message is that rebuke needs to be given gradually. Instead of overwhelming someone with criticism, we should help them recognize what they need to change one step at a time, in a way they can actually hear.
But there is something even more important: our attitude. If we rebuke someone simply because their behavior bothers us, our words are unlikely to make a difference.
A student in the Chofetz Chaim's yeshiva once smoked on Shabbos. His classmates repeatedly told him to stop, but nothing worked. Then the Chofetz Chaim called him into his office. He held the student's hand, looked at him, and quietly said, “Shabbos, Shabbos.” Tears fell from his eyes onto the student's arm. The student later said those tears pierced his heart, and he never smoked on Shabbos again.
The difference was that the Chofetz Chaim wasn't trying to criticize him. He was trying to help him.
Before we give someone rebuke, we should ask ourselves: Am I speaking because I'm annoyed, or because I genuinely care about this person?