I think this might be one of those times where the title might lead to confusion in the comment section and leads people a bit astray. I saw this talk in person at Nordic Ruby, and it was one of the best talks I've seen (and I've seen a bunch). Strangely enough, I don't really think back and think much about "optimism" when I think of the talk, though, even though the talk is about optimists. My takeaway was the type…
The best advice I received on this topic was that feedback should be actionable, specific, and kind. Actionable and specific mean that the person on the receiving end has a set of concrete actions to take to implement. For example, "get better at programming" isn't specific, and "get a PhD in Computer Science" probably isn't actionable, but "work on improving your ability to write readable code by working through the…
As someone who prefers giving and receiving terse feedback... I would suggest that there's nothing wrong with brutal honesty for type of people who appreciate receiving it.
If I write code and forget to test some specific cases, I would much rather get a code review of "Missing tests for negative numbers, empty string, null" than a longwinded and "nice" version. I don't need to hear compliments on what's right... just what can be improved. Some people really value bluntness and see directness as more friendly because it's honest.