Shame and software

My cell phone is chirping, alerts are beeping, my Slack channels are aflame with bright red dots. Alone in my home office, I can feel my stomach sink and flood with acid and my face bloom hot. I realize I pushed code to production just a few hours ago. Is this incident my fault? As I begin to click into the various alert messages and take stock of what is happening, I can already hear myself inside my head:

“I failed to test my changes in our staging environment.”

“We should have better automated testing. We should have hired full-time QA people!”

“The people who wrote the code I was fixing should have done a better job in the first place.”

“I didn’t want to work on this stupid ticket anyway.”

“The users who are reporting this problem should just go away and do something else. Users are dumb.”

“I should find a new career! I hate this.”

After a few minutes of reading monitors and error logs and some brief investigations of our production systems, I see the problematic alerts resolve themselves. The chirping stops. The red dots disappear. There was a network problem far upstream from our applications that caused a brief interruption to all systems.

It wasn’t my fault. And yet I underwent a complex physiological and emotional experience, and constructed a complete, defensive, negative narrative in my own mind, all in the span of a few minutes, without ever speaking to or even seeing another human being.

What was going on? Shame.

Emotional literacy at Truss

Truss emphasizes emotional intelligence in our hiring practice. We look for people capable of and committed to practicing self- and situational awareness. We also ask ourselves to act without fear. Often, these values mean we need to gently interrogate ourselves and reflect on the complicated emotional reactions we have in our work, in meetings, conversations, coding, design and research, planning, and yes, incident response. It’s not therapy (though that sometimes helps, outside the work context). It’s the capacity for using language to reflect on and speak about our human experiences. This is not simply an individual exercise in self-actualization. It’s good business. We interact with other humans – our clients, our partners, our colleagues – all day long, and playing well with others makes for good partnerships and successful projects.

Make no mistake, it’s work. Emotional labor is real labor, even if it is often not visible in the same way as lines of code, wireframes, research reports, or sales proposals. Reading code requires a certain literacy. So does reading situations. That’s why we spend time on things like emotional literacy.

One of the emotional dynamics I observe frequently in my work life is shame, both in myself and others. Shame is a primary human affect that can result in complicated emotions and behaviors. I have found that a recognition and effective response to shame, in myself and others, has been crucial in my professional life. This post briefly defines shame, describes some emotional and organizational patterns related to shame, and discusses a few practical approaches to managing shame, both as an individual and an organization.

What is shame?

Shame is the experience of feeling seen in a painful and diminished sense, of being evaluated and identified as lacking in some respect. Shame is biological. It can be intensely, internally uncomfortable, because the physical effect of shame is to amplify our awareness of ourselves and our environment. Shame exists before thinking or language. We might feel small, stuck, bound, captured, frozen, powerless, or hijacked. We are speechless or we stammer. Some people fidget. Some people get intensely still, as if by not moving they will no longer be seen.

Shame is an experience of exposure and self-consciousness. When we feel shame, we often feel it first in our face. Think of all the ways the word “face” reflects shame-related situations. We face the consequences; we can (or cannot) face up to a task; we put on a brave face, or we have egg on our face, or we can’t show our faces around here. We are self-effacing (literally, removing our faces), or we are trying to save face. In The Scarlet Letter, Hawthorne’s famous story about shame, the townspeople punish the heroine most profoundly by preventing her from hiding her face.

Of course, being seen is, by itself, not shameful. On the contrary, being seen by another person is often positive. The shortest verbal affirmation on social media these days is something like “I see you.” Being recognized and acknowledged can produce the opposite of shame, particularly if the other person likes us or is pleased to see us. The key piece of the shame experience is the part where we are found lacking or inadequate. Shame is the feeling that fills the gap between the ideal self and real self. Shame is the experience of not measuring up. The wider the gap, the bigger the potential shame experience.

Shame is, all by itself, normal. What happens for many of us is that we, and the people around us, lack skills for recovering from the feeling, and so shame can become toxic and internalized, so that the act of being seen is something we carry around with us all the time, like a self-recharging flashlight. Every time we turn it on, it gets stronger for the next time. We can also develop strong memories of prior shame experiences, which can begin to shape our behavior as we try to avoid repeating the experience. The fear of shame can become a powerful (and often hidden) motivation and impulse behind our words and actions.

A feeling of abandonment often accompanies shame, the feeling of another person turning their own face away from us in judgement. Shame is always relational, but significantly, we can feel shame without another person present. This is particularly true when we have internalized the shame pattern to the point where we can act out the entire drama of being seen and casting judgement, all by ourselves. We split our inner self into the one who shames and the one who is shamed. Many of us learn that pattern as children, and many of us carry forward an internalized and magnified sense of shame because we have learned to constantly observe and evaluate ourselves. We sometimes refer to this pattern as the little voice in our heads that judges us.

Patterns and symptoms

If you have read this far, you may have already found yourself feeling uncomfortable. One of the ironies of shame is that it can be shameful to name. Being near someone who is experiencing something shameful can be itself shameful for the rest of us. Shame is highly contagious. When someone on the huge Zoom call is not muted and we hear something we probably should not, we can all feel awkward. The symptoms are often the same for the witnesses and the ashamed. We avert our eyes. We look away. Cover our faces. When we feel shame we feel seen, so we want to escape and hide. Sink into the floor. Disappear.

Like FDR’s famous speech about fearing fear itself, being ashamed of shame is one of the ways it becomes such a powerful yet hidden motivator in our everyday interactions. Gershen Kaufman, in his essential book on shame, coined the phrase “shame spiral” to describe the emotional pattern of a triggering event (the exposure of some inadequacy, real or perceived), the shame affect (the feeling), the shame response to that feeling, and then the awareness of the shame, which itself can be a trigger that creates more shame and so on. After repeated experiences, we can learn to shortcut emotionally from the trigger to the response, very quickly.

Shame triggers and responses are enculturated, shaped by age, gender, race, class and identities of all kinds. Imposter Syndrome (very common in the digital technology world, where knowledge (the ideal self) evolves so quickly) is a phenomenon rooted in shame. How we experience shame and what we do about it are filtered through language and the stories we tell ourselves about ourselves. Events that are seen as shameful in one context may not be in another. But the shame affect itself is universal and not limited to humans, and there are some consistent patterns in how humans respond to shame.

We often use the word “toxic” to describe people or environments where shame has been weaponized to enforce patterns of power and privilege. You may know or have encountered people who are very good at making other people feel very bad. We use phrases like “hanging them out to dry” or “throwing them under the bus” or “cutting them off at the knees” or “gaslighting” – all violent images that refer to using shame to deflect responsibility, cast blame, or assert power. People who use shame as a weapon may often have highly attuned internalized shame patterns themselves. They may even, at least superficially, seem immune to shaming. The culture of the organization itself can become infused with weaponized, contagious shame. It’s as if there is blame brewed in the office coffee.

How do we know if we’re in the presence of shame? Obviously we can’t always see when someone is feeling shame, since it’s a profoundly internal experience. Still, there are some clues we can pay attention to. When I observe, in myself or others, the following emotions or behaviors, I often smell shame lurking behind them. While many of these are primary affects (biological emotions), they tend to be secondary responses to shame. In other words, we feel exposed first and then as we come unstuck we slide into one or more of these other affects.

Blame

Blame is essentially pointing away and saying “don’t look at me, look over there instead.” The classic and probably the most common shame response, blame is most visible within organizations and teams, but that does not mean it is always spoken aloud. Sometimes the most hurtful blame is cast only in our internal narratives. Scapegoating is literally the ritual of placing the blame on a goat and sending it away from the community. Blame creates distance (sometimes physical, always emotional) and deflects attention. Blame helps us save face.

Contempt

Contempt and its twin sibling disgust are about locating inferiority. Contempt can be the most damaging response because it is often focused inward. When I am ashamed of myself, I hold the failing part of me in contempt. When we are ashamed of others (as in a contagious shame event), we aim our contempt at the ashamed person who is making us feel ashamed. Blame is visible in words and actions. Contempt is often silent and visible only in a facial expression, but it can linger long after blame and can damage relationships in traumatic ways.

Embarrassment

Shame is often confused with embarrassment because they have similar physiological symptoms (e.g., the hot red face). It’s true that they are related. Embarrassment is about actions being seen by others. Shame is about the self being seen, about identity. If I stumble, I may be embarrassed. If I identify myself as a stumbler, that’s shame. My face might burn in both cases, but the feeling of being exposed as a flawed person is the shame affect.

Guilt

Like embarrassment, guilt is often associated and confused with shame. Like embarrassment, guilt is about observed actions, not self identity. Guilt is when the deficiency we feel is in comparison to an ideal value or moral code. Shame is when the deficiency is in comparison to our ideal self. It might be the same event that triggers both feelings, but the difference is how the self is involved.

Anger

Whenever I experience anger that seems to come from nowhere, the kind of abrupt rage or outburst  that catches me off guard, I know to be on the lookout for shame. In the story I shared at the beginning of this essay, I went from feeling exposed to blaming others to getting irrationally angry (at others and myself) very quickly. On a different occasion, when a government official suddenly started yelling at several of my colleagues on a phone call, I knew we had inadvertently stumbled into some kind of shame experience for him.

Anger can be a great gift, our self’s way of pointing out a gulf between expectations and reality. When anger comes out as rage, as it often can when linked with shame, it can also feel treacherous and scary (and therefore difficult to engage) because of its proximity to violence. In the context of shame, anger is a secondary affect; it comes after the shame, as a defense to feeling exposed. Complicating our interactions, anger can in turn trigger shame and defensiveness in the people who are the target of the outburst: “I made that person so angry, I must have really failed.” When someone gets angry at me, I try to check my own defensiveness in favor of compassion, asking myself, what’s really going on here?

Laughter

With, at, or near: laughing is a complex behavior. Being laughed at can trigger shame, or be a response to it. We laugh to cover up (our faces) at awkward, shame-inducing moments. We make a joke at someone’s expense or to bring someone back in who has been pushed out. Laughter can hurt and it can heal, sometimes in the same moment. Because humor is socially acceptable, we tend to use laughter as a deniable deflector (“I was only joking”). It’s the biggest clue I know that somewhere, shame is going on.

Shame in software projects

In work contexts, regardless of the field, we often cannot simply disappear from a shame-inducing situation. Depending on the circumstances, as in a high-stress meeting or responding to a high-stakes incident, we must do the opposite: face the problem and move toward it rather than away. But how to move forward when we feel stuck? That is why understanding shame is so important, so that we can find ways to live and work with it ourselves, and with others when they are experiencing shame.

Even if your organization is not toxic, shame will be present in all human endeavors, regardless of what business you’re in. So what does shame have to do with software in particular? When you practice human-centered design and development, plenty.

Teams

We’re all humans trying to arrive at a mutual understanding of a problem and a shared vision of how to solve it. That’s a lot of sometimes complex interpersonal negotiation and opportunity to make mistakes, to encounter each other at our best and our worst. I can’t count the number of times I’ve seen my teammates start a sentence with “this might be a dumb question but…”. That’s a pre-emptive, defensive move against shame. We’re worried that other people will see us ask that question and think we’re inadequate for not already knowing the answer. We might have an internally ideal self that already knows all the answers and a real self that knows very few answers.

It may also be a very reasonable defensive move, especially if we’ve suffered judgement in the past. Defenses against shame can help us preserve our dignity at the same time they impede trust. As someone hearing the question, I also don’t want to shame someone for their defensiveness. Responding with “there are no dumb questions! Just ask!” may come across as shaming too. Particularly in a field where there are many people smarter than us, with a great variety of experiences with the technologies and subject matter, the simple act of asking or answering a question often means we are practicing the art of trust.

Empathy

Designing software for other people means paying attention to how people learn and interact with what we make, and what their expectations are. We talk a lot about empathy in our business, but we can’t adequately practice empathy if we don’t understand how shame works. If your software does not help people solve a problem – or worse, it makes users feel inadequate in the process – then your software will suffer too. It’s a cardinal rule of human-centered product design that we don’t blame the user. If someone is in tears of frustration and anger at the failure of a product to help them solve their problem, and they are afraid to admit that or report the problem, you’ve encountered a role shame plays in software development. Practicing good research and design habits by providing easy feedback mechanisms (letting users tell their stories) that provide real value in improving the quality and experience of our products is about removing shame from the process.

Investment in our craft

Building software can involve lots of time and effort in isolated creative craft work, much of it involving internal processing, into which we pour our best personal efforts. We can become emotionally connected to the product of all that labor, like an artisan with their wares. Then we intentionally put that product in front of other people for them to critique, review, and expose its flaws. Sometimes it can feel like we are putting ourselves on display for review and critique. A code or design review can become, for the authors, an emotional shame parade.

SNAFU

Things go wrong. Often. There’s rarely enough time or resources or clarity to really solve the problems we want to solve within the constraints under which we are working. Bugs. Patches. Critical fixes. Technical debt. Vaporware. We have a pretty extensive vocabulary to describe all the ways things go wrong. So many opportunities to experience shame.

Exposure

Open source, vulnerabilities and exploits, data breaches, privacy and security issues: these are all exercises in public exposure. Resistance to talking about and participating in them is nearly always related to shame and humiliation. Some FOSS and InfoSec communities, particularly those dominated by men, are notorious for their shame-based legacies. More than once I have been told that a software project would not be open source because developers did not want to let other people see their messy code.

Antidotes

Learning about and responding effectively to shame patterns is a lifelong process. Shame and its effects are as complicated as human beings are. Still, there are a couple of broad themes that can help point us toward some loosening of the shame chokehold. I’ll sketch out those themes and then look at some tactics for bringing those themes to the workplace, and in particular, software development projects.

These themes apply both to individuals and groups. That is, spotting shame in our individual lives can lead to spotting it at work in the groups to which we belong. Likewise, shame antidotes that work for us as individuals can also be applied to our group encounters.

Trust

Trust is a great antidote to shame. When we learn to trust our real selves, we bring the ideal and real selves into closer alignment, closing the gap where shame breeds. When we learn to trust other people, we create internal resistance to shame responses because we are more confident that if people see our real selves, they still will not judge us. Somewhat paradoxically, we arrive at trust through intentional vulnerability and exposure. In other words, by making mistakes in front of other people who don’t turn away from us in judgement, we learn to rely on each other. We mess up and it isn’t fatal. That gives us strength for the next time. Shame is being seen and then feeling rejected. If we can feel seen and then not rejected or abandoned, that builds trust and heals shame.

We begin to extend trust through exercising empathy, the visceral imagining of another person’s feelings. Empathy is like laughter in that it can both hurt and heal, depending on how and when we apply it. Shame is contagious because we feel empathy. We feel what another person feels. Like a vaccination cures a disease by using the virus against itself, so empathy helps heal shame by applying the human capacity for imaginative compassion.

When I am feeling ashamed, the most significant experience I can have is for someone else to see me in that state and for them to not feel ashamed of being with me (we trust each other). Likewise, when I realize I am feeling shame, naming that experience to myself, and accepting my real self in the process, helps heal me (me trusting myself).

The intra-personal trust we build has an inter-personal effect. The care and support we make for ourselves translates directly into the care and support we are able to extend to and receive from others, and in a business context, what we are able to extend to our products and to the people who use them.

Telling stories

Human beings are constantly telling stories, to one another and to ourselves. Every conversation and interaction with the world is a framing, transformation and interpretation of facts into internal narratives. Dreams are our brains spinning random neurochemical straw into fairy tale gold.

The ideal self is a story we tell ourselves, though we rarely invent ourselves. We construct it from our experience, our feelings, and the stories we hear from others. The more perfect we make the ideal, the harder it is to reconcile with the real self, the self we actually live out every day. The more perfect the ideal self, the more opportunity there is for shame.

This storytelling pattern applies to groups of people too, not just to individuals. Groups and organizations have ideals they profess, narratives in which they place themselves. These group stories are often adopted and internalized by individuals within the group, reinforcing their own personal narratives as well as the group. The same is true of shame. Groups can feel shame because of their attachment to a shared ideal narrative.

When we change the stories we tell ourselves to more closely reflect our real selves, we close the gap between the ideal and real self and shrink the space that shame occupies. This is the dynamic behind confession, talk therapy, and truth and reconciliation commissions. The story must be told, aloud, and then healing can begin to happen.

Strategies

Let’s look at some specific practices we can follow to help mitigate the effects of shame.

Individuals

Emotions are at their root physical, chemical experiences, and there are physical things we can do to manage them. The first is the simplest: breathe. In the midst of a shame episode, we might feel hot, flushed, and start sweating. Cooling down, literal and metaphorical, happens quicker when we are breathing easily. Take a walk. Listen to music. Drink a glass of water. Disperse the shame affect energy by focusing on something other than yourself.

Practice.

Pay attention to your inner narrative. Do a reality check. Do the facts match up with what you are saying to yourself? What story are you telling yourself about how others are perceiving you? If you can, it helps to say it aloud (though obviously in the moment that might make your experience worse). You may discover that your internal narrative has more to do with your feelings than it does with the facts. That discovery is the first step toward changing your inner narrative and bringing your ideal and real selves into more alignment. Can you imagine other stories that might explain the facts you are observing? Ask other people. Different perspectives can sometimes shift our own. The key is finding ways to get unstuck from the rutted in pathways your internal stories always seem to follow. Changing your internal narrative changes your ideal self.

Practice.

Distributed work spaces make it harder to read the room. Instead we have to read the Zoom. We can’t as easily observe the nuances of others’ faces. Listen for tone. Listen for silences. Listen for the stories being shared or avoided. The art of paying attention is a necessary skill to hone if we want to become adept at recognizing the role shame may be playing in our meetings and projects.

Practice.

Name your shame experiences to yourself. It helps make them smaller than you.

Practice. Seriously. The inner game of tennis is the real game.

Teams

At Truss we practice Agile software development. Among the ways that Agile methodologies help to mitigate the impact of shame is that they normalize failure, and emphasize building trust between team members and stakeholders through intentional acts of mutual vulnerability.

Rituals

The reason we label Agile rituals like postmortems and retrospectives “blameless” is not because they are blame-free. It’s because we are ritualizing the telling of success and failure stories without drawing attention to specific people, thereby shifting the blame away from individuals and toward events and processes that we can address going forward.

The process of relocating and defusing blame does a few things for a team, but most importantly it helps to remove the stigma associated with making mistakes and short-circuits the shame response. My efforts to respond adequately to a systemic failure are no longer about my inadequacies as a person, but rather about the complications of the system, of acting in a situation where I have limited information, time and options. “The bug fix introduced a new bug.” “The monitoring was good but missed a use case we had not anticipated.” If there is any shame to be had, we share the shame as a team by pointing at a failed process we all participate in, rather than pushing a single person forward to scapegoat or blame. It’s why we try to recognize and celebrate wins as well as losses. We frame the experiences of the team as better and worse, rather than as perfect or broken. We normalize imperfection and recast it as more or less helpful, rather than judging it as always inadequate, because we want to remove the fear of exposing problems. We can’t fix the problems if we can’t talk about them, and we can’t talk about them if our teammates are afraid that they will be shamed for participating.

One of my favorite things is bringing the retrospective ritual to groups that are not doing software development. A period of work followed by talking through what went well and what did not seems like it should be a basic human pattern, but one we don’t follow often enough. Friday night storytelling around the campfire makes Monday morning work feel lighter.

Continuous delivery

Likewise, continuous delivery normalizes regular exposure of our work. It reduces performance anxiety and minimizes risk. It makes deploying software less painful and increases the happiness of the team. Frequent exposure (deployments) means shorter time frames in which to focus on previous failures. The next release is only moments away, so we don’t have time to dread its arrival or defer while we aim for perfection. It also means we get to feel the relief of release on a regular schedule.

Pairing

Pairing started as a programming exercise but the practice can apply to other activities. The goal is to increase quality through simultaneous focus on a single problem. It can also build a tremendous amount of trust, both in the product outcome and in the relationship between the participants.

Iteration

The Agile process emphasizes iterations. It transforms mistakes from a vice into a virtue by leaning on how we learn from them, and by boxing them into discrete chunks (sprints) of time and effort. We always get a do-over.

Practice

I first read the Kaufman book about shame when I was 20 years old. My professor told me years later that it was quite predictable the lengths to which students would go to to avoid finishing the book. Entering into a conversation with ourselves about shame, particularly for the first time, can be incredibly uncomfortable. I have been thinking about shame for nearly 30 years, since I was first taught about it. I’ve revisited the book several times. I have never finished it.

One thing I have noticed in that time is how often pairings appear. Not opposites or Platonic dualities, but pairings. Both/and, not either/or. How laughing at can turn into laughing with. How, as Dostoyevsky put it, hate is but a hairsbreadth from love. How humiliation and humility are nearly the same word but one is shunned and the other praised. My favorite Truss value is “Act without fear” because acting without fear looks shame in the face and doesn’t blink. Like anything worthwhile, we’ll keep practicing.