Kindness engineering


Dmitry Vinnik speaking at DevRelCon San Francisco 2019

Dmitry Vinnik

Lead software engineer and speaker from Salesforce, Dmitry Vinnik explores kindness in this talk from DevRelCon San Francisco 2019, covering how you can use empathy to get the best out of your community and your team even when dealing with difficult interactions.


So, my name is Dmitry Vinnik, and today, we’ll talk about kindness. Nothing, you know, unique, though. The concepts will be kind of, you know, simple, you can even say cliché but hopefully, some of it would resonate with you. So, what is kindness?

I’m not going to define it from, like, the, you know, Webster Dictionary or something, but I’ll kind of highlight a couple of main points. First and foremost, we have to show some empathy or, in other words, be able to relate to others, what they’re feeling like, and ultimately be able to show them compassion to what kind of a struggle or, you know, life they’re going through.

But not just looking or understanding how they feel, it’s important to give back and help them whether it’s through volunteering or any sort of ways that you can give. And the simplest way I can put it, just being nice.

All these main highlights, again as I said before, sounds so cliche. It’s easier to say, but it’s so hard to implement.

Let’s apply the kindness to dev rel. And for that, I really like to be more specific than that and set some focus. And the focus for today and the kindness that I’ll be discussing with you guys is that we’ll discuss kindness with your community, for your community, and then a kindness towards your team and yourself.

Kindness for your community

So, we’ll begin by discussing the major part of this talk will be focusing on your community. So being kind, as I said before, it’s very easy to say but it’s very complicated to actually follow especially when you apply a context, in our case a dev rel context.

So, when do we have a chance to be really kind when it comes to the community interactions? Of course, it’s the community engagements. Basically, working with communities in different ways. And you might ask yourself what can go wrong when you’re working with different communities?

There is this great example I always like to bring up. Jeremy Ashkenas is the famous person. He is the creator of CoffeeScript, Backbone.js, and lots of other open source libraries and frameworks, and he posted this lovely picture of him enjoying the sun, jumping into the water and then someone made a great comment just that describes the, you know, some of the, not the nicest people.

This comment basically explained the, weird feedback to give to someone who’s enjoying vacation but something that we have to deal with, not very kind comment, I’d say.

Controlling emotions

But even though this might look bad, this sort of feedback might look bad, you should always, always remain calm and, you know, level-headed. Never ever lose control of your emotions if you want to remain being kind. There is a saying that all it takes to undo 10 acts of kindness is just one single act of unkindness.

So, never be rude, never a reason to be rude. I’m from Canada now, so I can actually say that, but more importantly, there’s this whole, this point kind of famous saying is the Art of Unsent Letters. It comes from, they say, Abraham Lincoln.

When he was upset with, you know, some general or whoever he was working with, he would not just message them or, in his case, mail them a letter saying how much he disappointed in the person. Instead, he would write a couple of iterations of a very, I would say, unpleasant letters how upset he is with the person, how horrible their acts were, but he would never send those letters.

He would actually hide them in his drawer. We actually have them today, we can read them if we wanted to, but the recipient never received them. We can do the same exact thing.

If you got an email from your community, from the email list, write out your, you know, emotions but don’t send. But be careful, though, when you do it through the email. If the recipients are on the field and you accidentally press send, it might be not as pleasant of an experience, so be careful with that approach.

Focus on improvements

It’s good to focus on improvements, again, when it comes to your community. But even though we encourage that be part of our retrospects when we work with the different dev relation teams, sometimes it’s important to appreciate the success when the project ended and really try to go for proactive feedback.

This morning I saw that Google did a great thing. They posted appreciation of the WebKit team saying, “Thank you for fixing the long-standing bug,” you know, we just, all of us, it’s not that, you know, “Now we need to do better,” and, “How do we improve the project going forward?” They have acknowledged a good thing proactively to some extent. I really appreciate this kind of approach.

Some people even have, you know, not Friday Improvement Day, they do, like, Thank You Thursdays, people actually have it scheduled where they can say what they’re grateful for towards the community. What sort of good things the community has done at that point.

So it’s always nice to appreciate the people near you. But remember, remember, more importantly, even though with your emotions is with some, not that kind of people out, you know, out there always more good people than bad. Or in our case, I would say more kind people than not.

Recently, I was in Lyon, just like, last, month. I was speaking in Lyon and during my time there, unfortunately, there was a potential, I think it was a terror attack, where, you know, where basically there was a bomb right near the venue of the conference. This message was posted about 9:00. This was a different time zone but it was as if it was, like, late evening that day right after the conference.

But I, what I really liked is that we did not focus on that. This is basically a Slack for the speakers. The next message we got in the Slack channel was about the party that we were going to. Especially, I appreciate this cat smiley face that was basically posted right after. No acknowledgment of the above…

Reasons for rudeness

The community might appear at least to be rude or unkind. One of the things would be wrong expectations, especially in the open source community, it’s a big thing where they expect you they feel like you owe them to fix a bug. That’s their own expectations.

Sometimes there are no expectations and that’s what produces this sort of a mismatch of what they think you have to do for them. We have to make it as clear as possible.

When you made it clear, then you can have some expectations from the community, and keeping them in check, and really have this good relationship going.

Lack of CoC

The talk before me was acknowledging the same point that, you know, a code of conduct is important and not just lack of code of conduct, I see more and more that fortunately conferences now implement this important document but still, I see that some events don’t really enforce or empower the understanding of the importance of such document. There is maybe the code of conduct but there is a lack of understanding and appreciation of how important it is, and that’s not going to work well.

And sometimes, again, there is lack of tact in the community or in culture that you’re working with. As dev rel people, we often have to interact with people all over the globe.

I myself have a background from Siberia, right? And I have kind of a harsh way to interact, at least I used to. Canada kind of taught me the different ways of life.

But I still remember when I was giving the code reviews and I would see the code line that I did not really like as much, I would say right to the point, “This is horrible. This is not how you do it.” And I was working with someone from France and they would explain me politely that that’s not the way to communicate and that’s important, they did not give up on me.

Don’t give up on them

Never give up on your community. Really try to empathize with them. The person I was commenting on the code empathized with me and he really tried to make my coding practices better, and this is what you should do for your community. Help them. Don’t just give up on them so quickly. Most people want to learn. They open to learn.

A good example, today we had a discussion on this floor about just the public speaking and I brought up, there was in a point we were discussing of the, do we need to have introduction before our slides? And I said very strongly, “No, we should not waste time on that.”

And there was a person in our discussion circle, Mina from Microsoft, and she brought up, she was, strongly disagreed with me and she was very open about it, and she explained that as a female speaker, she sometimes has to establish the credibility before she can talk and be appreciated by the people she has to, you know, give a talk in front of.

And I myself, you know, I couldn’t really appreciate that because I wasn’t able to connect to the same idea. And she was you know, open enough to explain it to me and I really appreciate that but I am open to learn and most people are open to learn so don’t just give up on them.

Try to stay human

And overall, try to be human. The problem these days is because of the importance of email and instant messaging we often dehumanize our interaction.

So, with all these avatars, you know, those eggs and, you know, meaningless, faceless avatars, it’s so easy to be mean. With this egg from Twitter, I can be as hateful as possible to the, especially the cholesterol and other problems. I hate this thing. And try to avoid it.

If you interact with the community, try to at least encourage them to have a real avatar, their photo, because then people can see the human behind it and it’s harder to be mean to someone when you know there is a person behind. How can you be mean to this person? This very open smiley face, it’s going to be tough. It’s possible, but it’s going to be tough.

Where to direct our kindness

But, again, it’s important in those communications when it’s not in-person but when it comes to in-person interactions, like conferences, meetups, hackathons, and a bunch of other ones, when we interact with those in-person engagements, we have to know, where do we direct our kindness?

And it’s important to know that when it comes to in-person events you have to focus on your attendees and your speakers. If you have appreciation for those two groups, you’re going to have a successful event.

If you have a person like Brian Sullivan, who recently have been kind of popularized online thanks to, for myself, Stephanie exposed this situation where they basically were very mean to the regards of speakers, you know, being very egocentric and want to be paid for travel and other expenses. He had a very wrong approach and he actually apologized for this idea that he had and, hopefully, improve going forward.

Yes, it’s not every conference sponsors speakers but it’s how you operate, how you, you know, that you appreciate the attendees and speakers. People would know that and that’s how you have to show kindness towards your attendees and in-person events.

But that being said, always be strict to the sponsors. As welcoming as you should be, you have to be careful when you give them the slots to speak.

I’ve been in events, I still remember to this day, I was in India, there was a lightning talk. They gave a slot to the sponsor. The sponsor started the lightning talk by showing a promotional sales video. I stood up and l left and that’s what we should do, you have to be very strict on the idea of how you interact with sponsors. That being said, we always appreciate their help, you have to be clear on that. Again, expectations matter.

And be strict on code of conduct, don’t just have it for the sake of it. Kindness should not be, you know, conflicted with the weakness. It’s not the same thing, that’s why I appreciate the JSConf Europe just a couple days, this was June 3rd, it’s just, I don’t even know what day today is, but they just recently posted this after their conference.

Someone, you know, breached the code of conduct and they were very clear and, you know, fast in acknowledging the importance of following the code of conduct and I really appreciate that.

Kindness towards your team

So we looked externally quite a bit and it’s great but let us now look internally and see the focus of kindness towards your team. This tweet from Cory Benfield, who is a quite big in open source field and he acknowledged that throughout his work for the open source, his, you know, mental health really suffered.

Himself, he said he became more bitter and short-tempered. It affected his family life and you never want to have that. Open source community should be fun and engaging, and if you really do that volunteering work and you’ve been upset and you know you feel like your life is miserable, that should never happen.

You should be keeping that community kind as much as you can, and this is important to acknowledge these kind of problems and speak about them.

It’s hard to be kind when you are burned out

Still, it’s hard to be kind when you are burned out. In case of Cory, it was very clear. He’s been burning out with this sort of open source contribution commitment that made him feel bad.

Because we have lots of areas for burnout and it’s been established and talked about, you know, earlier today. When it comes to dev rel, the travel is, you know, very common fuel for the burnout. The odd hours, we have to work with different time zones very frequently.

The constant criticism. As much as we appreciate, you know, a good criticism, sometimes I get those, you know, feedback forms, it might be 30 positive feedbacks and there would be, like, one, you know, one point out of five, like, “Uh, that’s weird.” It takes a while to kind of appreciate the criticism but still it takes a toll, so the burnout is definitely there for us.

And lack of direction is also an important aspect in the area for us to easily burn out because it’s hard to measure success of dev rel hence we’re going to keep that in mind and try to figure out, “How do I know if I was, you know, the conference I went to was actually useful for the company?” It’s really hard for us and hence we start worrying and being more confused.

So, what is the solution? Solution is fairly simple, is to be kind to yourself. You have to be kind to yourself and to your team. And only then, only then you can actually spread kindness.

Never downplay alternatives

And spreading kindness, I really have to establish a couple of main points, is that never ever downplay alternatives that maybe exist in the market. Your competitors, don’t downplay them.

A good example, you know, there is Selenium and frameworks out there. It’s basically the UI automation test frameworks and as much as I love both of those, there was a problem when Cypress when they would talk, not the Cypress team but then people would talk about Cypress, they would first begin by highlighting how slow and bad Selenium was.

That’s not the way to go about promoting and talking about importance of your software. You have to highlight that Selenium brought up as testing standards as de facto QA too.

You have to talk about that, you have to acknowledge. And be kind, uplift alternatives, show that your area of expertise is important, don’t just try to push down people.

Never conflict employees in companies. I still remember to this day I spoke in Croatia recently. We’re sitting at a table for speakers’ dinner, there was a table near us. People who work for Oracle, you know, and Oracle as a company is one thing but then I see…

Audience member: I work at Oracle.

Dmitry: Yeah. And so you know, I would basically… I would sit on a table and I would hear the people hate on the people sitting right next to us, other speakers just because they’re working for Oracle. But not, they’re forgetting the great work that these guys were doing, you know.

The conflicting the two, companies and employees are not always the same. You have to, you know, separate the two, and still be kind, and empathize. Don’t just think, “Oh, they’re working for this company, they’re going to be horrible.”

There might be different situations, they might be great a great team with… you know, and there are great teams at Oracle. Oracle Labs are awesome.

And always be open to share knowledge. As I’ve said, people want to learn. I really appreciate this book from Mary Thengvall, The Business Value of Dev Rel. It really taught me a lot about developer relations and be able to talk to others about dev rel positions.

Think about delivery

So, really, share your knowledge and experience, hence this conference. And think about delivery methods of your overall message. This slide is very famous and I tried to do some censorship but it’s still kind of apparent what happened.

It basically was the Ruby conference, where they basically, the community was saying we have a number of features we want and the DHH reply, “No.” In a different fashion, you might say no or discuss it, but it’s how you deliver that actually matters. You have to be kind even with your delivery. And people would never forget this. Again, it’s hard to earn credibility, it’s very easy to lose it.

There is no one answer

So, to conclude, though, how can we be more kind? Unfortunately, there is no one answer because humans are complicated. I wish they were simpler but, you know, at the same time, it’s fascinating, right?

Sometimes, though, because they’re complicated we have to let people go. Just think about the firing process of your companies. We have a coaching period when you’re about to fire someone. You try to coach them, mentor them closely because you know there is a problem.

That doesn’t work, you put them on a performance improvement plan. That doesn’t work, you have to terminate them. The same goes for your community.

As much as I’ve said that people are open to learn, hopefully, most people are open to learn and there are more good people than bad, even as Kelsey himself said just earlier today, there are still some, you know, not such a kind people or haters or whatever you want to call them out there, they’re just there for basically for the blood and suffering. You have to cut them out whether it’s you… but still, give it a try, try to educate and help them out.

So let me conclude with a quick and short call for action. Foster respect. I didn’t mention this term as a whole during this talk but respect is implied. It’s what, basically the very basis of most of our emotions, good emotions, is to have respect because only then you really can empathize with people.

And only if you empathize and try to put yourself on the spot and position of other people, you can ultimately foster kindness. That’s the only way. And kindness, again, is key. There are more good people than bad.

And, again, as dev rel people, we’re lucky enough to travel or to interact with people all over the globe and we can see that even if they are on the other side of the earth, unless you’re a flat-earther, I’m not going to talk about that, but, you know, there are still people on the other side of the earth who are as kind as you would see, you know, working with you.

And this conference is amazing. I see people seeing each other, they hugging, you know. Everyone, like, clapped, give a standing ovation. It’s amazing. So, really try to be kind, and foster kindness, and bring kindness to other people.

With that, I really thank you all for joining, and yeah, that’s my information and stuff.

Thank you.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.