Although it isn't a hard-and-fast rule, I still find the "feedback sandwich" to be a useful guideline to ensure I'm not being all negative. We tend towards intense criticism of others in this field, so it is wise to be intentional about positivity.
The "sandwich" structure isn't accidental either: starting positive helps us register as benevolent, not a threat, so the negative feedback will actually mean something; ending positive ensures the person doesn't walk away with a reinforced imposter syndrome. It isn't a matter of sugar-coating; it's a highly effective and proven communication tactic. Diving straight into negativity will usually register with the other person as "wa-wah-wah", like the adults in Charlie Brown, not because they're wimpy little cupcakes, but as a fairly common survival tactic. Psychology.
In practice, I aim to start positive, go through all my concerns (not just one), and end positive. That means I'll state at least two good things, which I can find in even the worst code. If I have more good things to say, I'll tuck them in amidst the rest of my feedback.
P.S. In a typical code review, I just go sequentially, and let each comment stand by itself, positive or negative. I just try to find at least two good things.
P.P.S. I didn't "sandwich" my comment, but that wasn't feedback. It's an intellectual conversation. :3
The feedback sandwich has its merits if there's been no prior practice towards giving positive feedback.
There's a book I read recently that stated you should let your employees (or direct reports) know you will be implementing a new feedback structure. Then you use this form of feedback (1. Ask, 2. Deliver based on behavior, not the person) in only positive feedback for 8 weeks, and THEN you start mixing in negative feedback. It means you can kindly get right to the point because your team is used to the structure of you giving feedback (whether positive or negative) and you don't have to dance around their feelings.
That structure can work as well, as long as positivity remains in the mix.
I think, however, the term "dance around their feelings" shows the wrong attitude. We should always be thinking about how our words and actions are going to affect others. As much as it is popular to justify our own bluntness with "it's reality, suck it up, buttercup," that doesn't actually make it okay to trample over other people in the name of efficiency or objectivity. We can be honest AND compassionate.
Not that I believe you're advocating callousness...but there are many people who would take it as license. The management trends of the last 30 years have it wrong: it does matter how our actions personally affect the "underling".
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.