Monthly Archives: June 2015

Toxicity is Abuse

Why I am writing this

This weekend I got into a lot of discussions about the responsibilities of a programmer.  I heard multiple times that a programmer cannot be held responsible if they are working in an environment that is toxic and forces bad behavior. While I do not advocate that someone threaten their ability to feed, clothe, or house themselves (or family) because of some theoretical responsibility, it is imperative to get out of a toxic environment.

This weekend I was in a conversation about a consultant that was described as abusive by the other employees and someone said: “They only fear for their jobs because they are too stupid to do the job right.” In other words, they deserved to be abused.

In another conversation, I mentioned that a programmer has a responsibility to do what is right. I was told that this was a pipe dream because of the toxicity of work environments. To me this translates as, “Offices can treat you any way they want because you are worthless.”

The funny thing is I have heard these statements before.

My mom married an advertising executive when I was 8. It turns out that he was a drug user who slowly revealed his nasty temper. I was often backhanded hard enough to knock me from my feet, and I got to watch as the same thing happened to my mom.

I heard the whispers of neighbors and even friends.

They sounded a lot like how I now hear people talk about toxic work environments. The words are slightly different but the meanings are the same. The fault lies on the victims. If they are being abused, then they deserve it.

It takes more courage, stamina and risk to stand up to an abusive person or organization than most people know. That chapter, in the end, was a small chapter of my life. My mom left that man one night and never looked back.

When we speak down on those being abused or make excuses for the abuse we make it even harder to do what is right. I implore you to stop this destructive behavior. Instead of making excuses for toxic companies, let’s do something about them.

Your responsibility

Every software developer has some professional responsibilities, even when we are unable to perform them. These responsibilities include:

  • We have a responsibility to produce bug free code.
  • We have a responsibility to produce code that is inexpensive to maintain.
  • We have a responsibility to produce value that is greater than our cost.
  • We have a responsibility to help those starting in the profession to be better at what they do.
  • We have a responsibility to share what we learn to progress the industry.
  • We have a responsibility to understand our customer’s, company’s or client’s business well enough to make informed business decisions about the software we write.
  • We have a responsibility to say ‘No’ to our employers if we are asked to do something that endangers time, profit, relations, information, reputation or money of an individual, company, community or ourselves.
  • We have a responsibility to provide value well above our cost.
  • [UPDATED] We have the responsibility to support those in a toxic work environment find a better one.

Doing that will cost me my job!

If you are in an abusive relationship with your employer, one or more of those responsibilities become impossible to execute without being fired. That is a tough and scary place to be. I am not saying for you to risk your job, and risk being homeless.

What I am saying is that you do have a responsibility to leave. Don’t quit your job without a new one. Look for help within the community.

Then share what you learn. Help the community understand what you did to find a good place to work. This will give hope to those who are in similar situations.

We need to use economic power to stop abuse.

These abuses are not illegal. They are immoral, but that does not give us any legal ground to prevent them.

Companies need to make at least 3x their operating costs to be successful. That means that a company sees at least 3x profit from your pay. YOU ARE WORTH A LOT MORE THAN YOU ARE BEING PAID! We have value. In today’s economy custom software makes and breaks a company.

If a toxic company could not keep their employees or better yet not be able to hire then they will not be able to compete against non-toxic companies. The problem now is that programmers stay in toxic situations. This allows toxic companies to compete.

Let’s stop this. Leave those companies. Leave them as soon as you realize they are toxic. Abandon them, and move to companies that are doing it correctly.


Moreover, remember it is not the fault of those being abused that they are abused. It is the fault of the abusers. Show compassion to those in need. Help them move to somewhere that will appreciate them. Help people recognize abusive bosses, coworkers and companies before they are in the position to be abused. Recognize that even with warning circumstances might necessitate they go anyway. Be prepared to help them.

Transformational Communication


I recently came across a framework for discussing and categorizing the types of messages we see. I present it here to help analyze the way that the community talks about Agile. The hope is that through analysis we can improve the way we deliver our message.

I will give you the framework for analyzing our delivery that I learned. I will explain what it means when a message is hard to understand, or compromised. The hope is by seeing similarities in what we are putting out into the world the community can better self-adjust.

When I say community I include myself. I have been and am guilty of violating the rules set forth by this framework. I am no better than anyone else. In writing this blog, I have had to swallow a large pill and make the decision to change.


Let’s assume that the goal is to deliver a message to an audience. If I examine how understandable our message is on one axis. Then we examine how intact the message is on the second axis.

On our grid interact-ness is Y and understandability is X

On our grid interact-ness is Y and understandability is X


So if that message, is Agile then I can diagnose why I am being ineffective in communicating what I want. If either the understandability of what I am saying or content of what I am saying is low, I fail. I need to be able to communicate with the highest approachability if I am to succeed.

That is fine and easy to say, but what do I do if either or both, understandability or intact-ness is low? First you have to be able to recognize when either or both are low. I will give examples and some explanation. I will also give some reasons why something is low, with the hope of guiding you out of that position.



When both understandability and content are low, what you have is noise.

In the lower left quadrant, noise is unable to reach any one.

Noise is unable to reach any one


Noise comes in all forms. With noise we build a wall hiding the fact that there is no real content. Noise can be either ranting with no context to how and why something failed, or it can be cheerleading. Both of these turn people away from the message because it is unapproachable. If someone has concerns or excitement regarding the message you have left them with nowhere to go. All they have is how the delivery left them feeling and a bit of anxiety about its meaning.

I have been guilty of this. I have both complained that too many people call themselves Agile, without clarification as to why they are not Agile. I have also cheered the success I have had with agile techniques without giving context or information about why I had success.

The less concrete what you say is the more likely it is to be noise.


When the content is intact but people are unable to understand and digest it or act on it, it is non-contextual.


In the upper right quadrant, non-contextual exists where people want the information but are unable to reach it.

Non-Contextual exists where people want the information but are unable to reach it.

Here you preserve the message by framing it into a single context. There is only one way the message can exist is within your context. If you ever find yourself talking in absolutes you are being non-contextual. This does not mean that you compromise what you are saying only you need to frame it in representation of the audience’s context.


In the lower right quadrant accommodating allows everyone to hear what ever message they want to hear.

Accommodating allows everyone to hear what ever message they want to hear.

When the understandability, and ability to act, are high but without the meaning or original message that is accommodating.

Accommodating starts with a message, but allows it to be adaptable to whatever interpretation the audience may have. Each person interacting with the message changes it to fit their needs. Nothing actually changes except the meaning of the message.

Here you lose your intent. Context is mistaken for reality and presumed to be the truth rather than a commonality upon which to build communications. I have been guilty of saying that everything is a suggestion without giving context to how you evaluate what is needed.


So far I have only talked about the negative. There is one part of the graph that actually signifies success. If I can communicate such that I deliver the most of the content I was intending while making it understandable then the message is transformational.

In the upper right quadrant transformational reaches everyone and preserves the message.

Transformational reaches everyone and preserves the message

In order for a message to be transformational, it has to be able to reach its audience and be complete. That means describing it, and explaining it with the context not only considered but understood. You can only deliver a message to someone you understand. Once you understand your audience you can help them to understand you.


We can take the way we deliver a message, Agile in this case, and analyze it to understand if it can be effective. We can also examine messages we hear and put out into the world to see how effective they are.

We examine the message by how much content there is, and how understandable it is. We can classify our communication. Noise is neither understandable nor does it actually inform. Non-contextual messages keep the context but reduce understandability by ignoring context. Accommodating messages are very clear but lose content by allowing others to change the meaning.


Only when we keep the message intact, and clearly deliver it from an understanding position do we become transformational.

We desire to be in the upper right quadrant.

We desire to be in the upper right quadrant.

Now what

When we talk about Agile, we are talking about transformation. We are trying to bring an industry build on the mistreatment of people and failing processes to a point of success for all. We are trying to build human systems to automate the world, drive business, and generate money.

We cannot do this if the industry does not understand us. It becomes harder if bad experiences make it so they don’t want to understand us. We need to change the way we approach this, we need to be more efficient in what we say and how we say it.

So now what? Now we retrospect and learn. We categorize our successes and failures into these four groups and attempt to capitalize the good.

Before we speak, judge, or advise; take a moment and reflect. Move those conversations to the first quadrant. Focus on the individuals’ beliefs and knowledge. Try to capture their context and drive the lessons through them. Let’s transform the world!