I struggled with this a lot when I was younger and growing up in the South. I got really frustrated by things that just seemed so completely dishonest. Even the basic ritual greeting, "Hi. How are you?" is fundamentally dishonest. It's not a real question because the asker doesn't want an honest answer. And I felt imposed upon because the only socially acceptable response is almost always going to be a partially dishonest, "Great, how are you?"

But as I've gotten older, I've decided that there is real value in these rituals, particularly in the workplace. And the value is that these kinds of interactions set a tone and a minimum viable behavior both in public and at work.

Performing that little lie when you walk into work forces you to leave a certain amount of your personal life at the door. And this is a good thing. Environments I've worked in (notably, not in the South. NYC is awful about this) that do not adhere to these little ritualistic dishonesties empower the most negative people in the room to do the most damage to morale and productivity. Negativity is absolutely toxic and infectious.

And I guarantee you, the person in the room who replies, "Oh, well, you know, it's not going so great right now. My kid is having problems at school, and I don't understand it. S/he is a great kid and really smart, but just isn't getting along well with other kids and not doing well on tests. I just don't get it." when you ask, "Hey, how's it going?" is going to be a problem down the line. (Or something like that. Doesn't have to literally be about a kid. Just anything that breaks the ritual.)

It seems innocuous at first. Because we want to care about the people we work with. But this person is also going to gripe about the management and company leadership and bring up politics in ways that make people either angry or uncomfortable. And not in a healthy way in a 1:1 with the management. It will be at lunch, in small meetings, in code reviews, planning sessions, etc.

On the coworker side, the idea of total honesty is not a good one. The people who either consciously refuse to engage in these rituals (or are just unaware of them) are guaranteed to cause problems for the entire team over time.
If you bring it up as a talking point in, say a 1:1, the person will just say, "What's the problem? I'm just being honest. What do you want me to do? Lie?"

I can't think of any reasonable way to create a policy around this. Teams just need to police themselves. When I hear someone invading the workplace with this kind of "honest" negativity, I have two responses depending on what's going on. If it's personal life stuff or politics, I'll offer to take them out for a bite to eat or a drink or something and listen to everything. If it's griping about management or leadership, I'll just say that they really need to have a conversation with <manager> about that because we really can't accomplish anything by brooding over it. And I'll do this even if I 100% agree with what the person is saying about management or politics. Because I guarantee you someone within a hundred feet of us doesn't agree about it.

On the management side, I'd argue that total honesty is also a terrible idea. In my experience, the people in management roles who advocate for total honesty/total transparency come in two flavors: the first is the person who says he promotes these ideas but lies constantly anyway. The second is an absolute jackass who uses honesty as an excuse to act like a bag of dicks to people.

It is possible do deliver hard criticisms without being a jerk. It just takes a little bit of time and a little bit of effort. Telling someone, "This sucks. You've got to stop being so terrible at your job." is not only lazy and asinine, but also completely unproductive. If someone on your team is performing that badly, it is your job to invest time in that person. Whether it's some coaching earlier in the dev process or extra time in code reviews or providing some educational material or designing a pip, that's your job. Being harshly critical because "honesty" is garbage. Grow up. And take the time to actually do your job.

I don't need to say much about the "total honesty" liar category. They are either sociopaths or utterly incompetent (often both, but competent sociopaths are the worst) and can only get by through manipulating people and playing political games.

The two best managers I've ever had as an individual contributor are what I would call transparently dishonest. Yes, sometimes they had to either be silent about a situation or whitewash certain organizational details, but they also let you know when that was happening. Their criticism was direct and effective, but not cruel. They focused on three key things: providing clearly defined tasks, guarding our time, and protecting the team from organizational politics. They were sometimes (often?) less than totally honest about what was going on, but we knew it and trusted them to know that it was okay to not know.

My best manager as a manager is . . . well, I haven't had a good one yet. So I'll let you know when that happens.

So, I'm going to go out and say it. A certain amount of dishonesty is a good thing. Social structures depend on it to function in a healthy and productive way. Go too far in the honesty direction, and you end up with a culture like NYC, which, as much as I like many things about the city here, it's only a barely functional society. Go too far on the dishonest side, and everyone is stilted and uncomfortable, and no one feels like they can say anything to anyone because we're all Stepford Wives at work, and it's all pretty on the outside but awful on the inside. Like in much of the South and Texas in particular.

It's a balancing act. The Dilbert strip in the article is good because it's useful for us to remember that we are actually selfish and dishonest. But solving that isn't the real problem, and being totally unselfish and honest isn't the solution. That's like reading an article about how bad waterfall is and then moving to a 1-day sprint Agile system. (You laugh, but I've seen it. Seriously. 1-day sprints with 5 standups a day. Sprint planning in the morning, scrum coding sessions in the afternoon, retro just before end of day. You can guess what happened: every day every task ended up blocked. This went on for over a year. Literally nothing got done. But, wow, that team looked busy.)

Apologies if I've offended anyone who is perfectly honest all the time, a coworker, a manager, an Agile practitioner, a Waterfall advocate, a sociopath, an incompetent, a New Yorker, a Texan, or even human. I'm just being . . . totally honest.