Agile Software Development is about people working together. For that to happen, it helps to be kind, respectful, and helpful. Let’s talk about that.

I often lead my article-announcing Tweets with “Be kind, be respectful, be helpful”, and I’ve used the phrase at least three times in articles:

All Together

Today I want to focus on the role those three attributes play in Agile Software Development. And they play together. They are more like three sides of a triangle, than three separable ideas. It’s not OK to be just one or two of them. It almost makes no sense. Almost.

I suppose someone could argue that if they had a coworker who didn’t know the language well, it would be helpful to throw the language manual at them, shouting “Study this, you tiny fool!” It would not be kind, nor respectful.

I’ll leave it to you to think of ways to do just one, or just two, of the attributes. It’s kind of fun. But you’ll quickly see that unkind disrespectful “help” doesn’t help much, and that treating someone who needs help kindly and respectfully, but not offering help doesn’t help much, and that kindly offering help with disrespect in your heart doesn’t help much.

Why Not?

Why do people so often act unkindly or disrespectfully, or fail to offer help? Doubtless there are many reasons, especially in these bizarre times where even our highest “leaders” seem to battle to be the nastiest person possible. But there are a few causes that I think are closer to home.

Most of what I’ll talk about here is the behavior of white men in programming. Perhaps everyone needs to be more kind, respectful, and helpful, but the examples I can think of seem to be mostly white men, mostly young white men.

Disrespected Folks
Sometimes a person’s skill in programming is the first attribute they’ve ever had that was valued. Maybe they were never good at sports, never members of the cool crowd. Possibly they were “nerds” in school. Quite possibly they were bullied or otherwise disrespected in their youth. Often, even in their family life they were not respected.

Somehow they got into programming, Suddenly a nerdy ability commands respect and even good pay.

Because they were disrespected, and because they were not helped, and because they were treated unkindly, they treat their skill as something to be hoarded, something not to be shared, and something to use as a weapon.

Fearful Folks
Sometimes people are uncertain of their skill. They’re afraid that they aren’t as good as people think, and that if people “find out”, they’ll be exposed as pretenders or imposters.

Again they hoard their knowledge, out of fear that if they were to begin to expose what they know, everyone would see that they have it wrong, that they don’t really understand, that they’re not really good enough.

Doubtless there are other reasons, but I suspect that most violations of the KRH guideline come from fear or the notion that “someone was bad to me, now I get to be bad to someone else”. Pecking order. Chicken behavior.

But I’m not here to explain non-KRH behavior, I’m here to remind us to be kind, respectful, and helpful.

KRH in Action

I have met many software people in my six decades of doing this stuff, and many of them, men and women, are incredibly kind, respectful, and helpful. I hold back from making a list only because I fear I’d leave someone out who deserves to be on the list. But one stands out for me, perhaps because of the many interactions I’ve had with him.

Ward Cunningham is unquestionably the kindest software developer I’ve ever met. Let me share two stories.

A or B

I had the privilege of consulting jointly with Ward, and one of the team’s developers had a question about which way to go with some decision, and wanted to sit with us for advice. The conversation was enlightening, perhaps more for me than for the developer.

The dev briefly described the two ideas, A and B. When he finished his description he said “so I don’t know which one to do”.

I said “A”.

Ward said “Tell me more about A and B”. The dev went into more detail, and said “so I don’t know which one to do”.

I said “A”.

Ward said “What are the main advantages of each of A and B”. The dev listed a few and paused.

I said “A”.

Ward said “What disadvantages to each do you see?” The dev listed some, slowed down, and said “I should do A. Thanks!”

I solved the problem. Ward respectfully and kindly helped the developer.

Interpreter

My first serious encounter with Ward came when he was brought in to look at a project my team were working on. He mostly pair programmed with each of us, looking at what each was doing. When it was my turn, I was showing him the engine that was central to the application.

Ward said “Do you know how to write an interpreter in Smalltalk?” I showed him our interpreter, a rather nifty piece of code, I thought.

He asked again about how to write an interpreter in Smalltalk, so I showed him in more detail how my code worked.

After what seems to me now to be many repeats of the question, Ward asked if he could show me something. I of course said yes.

He wrote one line of code in Smalltalk, the answer to the question “how do you write an interpreter in Smalltalk?” One line.

My mind was blown. I didn’t know that.

And at no time in the process did I feel pressured, embarrassed, or uncomfortable. I didn’t even feel embarrassed to be shown this one line of code that I didn’t know how to write. It was just like sitting with a close friend, programming, and he showed me a neat thing.

OOPSLA

I have to tell a third Ward story. I think it was at an OOPSLA conference, and Ward and Kent Beck were doing some kind of joint session. I don’t remember if it was a workshop or just a bunch of folks who wanted to ask question.

What I do recall is that someone asked how something could be done, and Kent began a fairly elaborate impromptu design session. It was good stuff. I could understand what he was saying and that it would work. Then Ward somehow managed to interrupt. I think he said something mild like “Can I show you something?” Kent of course paused.

Ward wrote one line of code. It was a Smalltalk inject:into:.

Kent paused. I think he said “Oh”. Ward’s one line brought Kent’s design down to reality, made it much more clear in Kent’s mind, and helped him make his explanation simpler and more clear.

Kind, Respectful, Helpful

I have never seen anyone have so much valuable impact while being invariably kind, respectful, and helpful. Despite those enlightening experiences, and many more, it has taken me decades to even see what was going on.

People sometimes refer to “punching down”, the odious practice of belittling people who are in any way of lower rank, power, or status. If there’s any kind of status gradient downward from Alex to Bailey, Bailey is likely to perceive unkindness, pressure, force, rudeness, or imposition, even if Alex doesn’t intend any of those things. And if Alex has a strong personality, or expresses themselves forcefully, while Bailey is a bit more quiet, Bailey is likely to perceive unkindness or disrespect, and is likely to be unable to perceive the help offered.

What I Try to Do

Like it or not, my mind is quick to think sarcastic things. I am quick to have a retort to anything said. I suppose it comes from hours spent in my youth thinking about “what I should have said”, although had I said it at the time, I’d probably have had a bloody nose. Bullies bully.

I am quick to jump on a mistake, or something I perceive as a mistake. I am quick to see solutions and simplifications.

Not always: you’ve watched me work here. But still, sometimes I am quick.

I like to argue. I like to push and pull on ideas, kick them around, turn them over with other like-minded folks, because I’ve found that better ideas are discovered that way.

And in my work, I have been fortunate to be surrounded by people who trusted each other and who enjoyed the same kinds of things.

The result is that in my heart, even if I’m the “instructor” and they’re the “student”, anyone I sit down to talk with seems to me to be an equal. In my heart, we each enjoy that high-flying, vivid give and take that leads often to better ideas, and leads always to increased mutual respect.

Unfortunately, not everyone comes from that culture. That means that I am often too much to take. Sometimes what seems to me to be an equal challenging an equal seems to them to be … well … me beating up on someone.

I never intend that. Never.

So in an effort to improve myself in the direction of Kindness, Respect, and Helpfulness, I try now to focus, not on convincing someone to do something, not on changing what they do.

In my published or spoken expositions, I don’t tell people what to do, I just try to be understood. I just try to offer what I have, to show what happens to me, and to leave it to folks to decide what to do.

In direct interactions, I try to be kind, respectful, and helpful. I have so many people to emulate, starting with Ward, but including a huge list. Thinking about it as I’ve written this, I think that almost everyone I know may be better than I am at this, at least part of the time.

I’ll leave it to you to decide, but I urge you to think deeply about how being kind, respectful, and helpful might improve things on your team, in your family, in your life.

I admit that’s perilously close to advice, but I mean it to be kind, respectful, and helpful.