Topics

Featured in Development

Understandability is the concept that a system should be presented so that an engineer can easily comprehend it. The more understandable a system is, the easier it will be for engineers to change it in a predictable and safe manner. A system is understandable if it meets the following criteria: complete, concise, clear, and organized.

Featured in Architecture & Design

Sonali Sharma and Shriya Arora describe how Netflix solved a complex join of two high-volume event streams using Flink. They also talk about managing out of order events and processing late arriving data, exploring keyed state for maintaining large state, fault tolerance of a stateful application, strategies for failure recovery, data validation batch vs streaming, and more.

Featured in Culture & Methods

Tim Cochran presents research gathered from ThoughtWorks' varied clients and projects, and shows some of the metrics their teams have identified as guides to creating the platform and the culture for high performing teams.

Better Engineering via Better Discourse

Killing opposition with kindness is a real strategy in online discussions; there is power to disarm in acting as if the other party did not intend to be insulting or condescending, argued Theo Schlossnagle. He suggested to accept that there will be bias in online communication, use facts and reason to deal with it, and practice awareness of bias and attempt to compensate.

InfoQ interviewed Schlossnagle about the differences between in person and online discussions and how to keep discussions healthy and effective and deal with biases in communication, how to become better in speaking at conferences, and what conference attendees can do to get more value from attending talks at conferences.

InfoQ: What are the main differences between in person and online discussions?

Theo Schlossnagle: Communicating well in written form is an art form; communicating well in person is part of the human condition in society. As humans we are used to incorporating tone and many non-verbal cues (such as body language) into both in the delivery of information and in the reception of information allowing us to understand more directly the meaning and intention of interactions. Basically, people online are crappy communicators, tend towards insensitivity and take things the wrong way. Additionaly, in person interactions tend to be much more information dense due to both a wider communication medium and a faster interaction cycle.

Online video (like skype, face time, and hangouts) do a great deal to address a lot of issues with typical online communications, but they aren’t widely used in most communities. Two reasons: one horrible, the other well-founded. The horrible reason is because people don’t want the human connection; they just want to code. The legitimate reason is that it is less inclusive as it can alienate those in odd timezones, with other work/life commitments, or without sufficient internet access to participate. "Synchronous" communications can exclude people; this is why asynchronous online communications skills are so important.

InfoQ: Things can get nasty in online discussions. What can you do to keep discussions healthy and effective?

Schlossnagle: I think the most important thing is to always play the better person; killing opposition with kindness is a real strategy. Always assume the person did not intend to be insulting or condescending (even when they clearly are, pretend they aren’t). Seek to extract only information from interactions that you can act on in a positive way and ignore the rest.

If they are leaders in a community and act horribly, leave. If they aren’t leaders and you do not engage in ridicule, condescension or other abusive behaviors, it will provide the contrast necessary to make them change their ways, leave the group or be asked to leave.

The one rule to follow is: you don’t need the last word or the most flippant response. If your interactions are designed to make someone feel bad, check yourself.

InfoQ: How can you deal with biases in communication?

Schlossnagle: Biases exist in communications because humans are biased. Accepting this and being self-aware is the first step. Using the Socratic method can help others understand their biases, but that requires a significant skillset often lacking in the participants. Dealing with facts and reason helps a lot, but ultimately one cannot remove bias from communication only; practice awareness and attempt to compensate. Three simple compensation methods are the scientific method, empathy and logic. The scientific method can actually work quite well here: hypothesize the other person’s position, assume it is correct and prove it wrong. If you cannot (which is often the case), realize you might still share facts while not sharing position. Realize the source of bias is often comfort or investment and having someone discount your comforts or investments is often offensive; empathizing can help remind you to control your reactions and explain the defensiveness of others. Another great tool in the arsenal is to study logical falacies and apply them (kindly) to discussion.

InfoQ: What advice do you have for when people want to become better in speaking at conferences?

Schlossnagle: Speaking at conference, like all things, requires practice. So, simply, do it more often and seek feedback. And like any communication, only take from that feedback those things you can act on positively. Practicing in front of a video recorder and watching and listening to yourself can help. Identify people you enjoy watching and listening to and attempt to emulate their mannerisms and speaking styles (vocabulary selection, grammar and stage presence) privately while recording it; review and pick out the parts that you like and you felt work well. Experiment and practice.

InfoQ: What can conference attendees do to get more value from attending talks at conferences?

Schlossnagle: Engagement is the most critical aspect of conference going. Not only asking questions to the speaker during and after, but engaging with other audience members to understand what they thought about the content. Use a talk as a conversation starter. You’d be amazed as the wealth of knowledge and experience sitting in the crowd; if you have the ability to engage well you can leverage that collective expertise.