Communication: Tech vs Non-Tech

There’s Competent People on Both Sides

People acting like I’m a child just because I thought RAG meant the thing my humans use to dry me off when I come in from the rain instead of some fancy algorithm people use nowadays. 🙄

Dear Diary,

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex topics with creative flair."},
    {"role": "user", "content": "Compose a poem that explains the topic of non-technical people and technical people communicating."}
  ]
)

print(completion.choices[0].message)

This week in the accelerator program, we talked about the importance of technical and non-technical people being able to communicate effectively with each other. Clearly, as you can see above, I learned nothing. 😁 But in all seriousness, this was probably one of my least favorite talks I’ve sat in on. I firmly believe in the importance of communication between technical and non-technical folks. There are a significant amount of barriers that need to be learned to navigate it effectively, and not enough people do that nowadays. However, in this talk, our speaker who claimed to be technical made a number of false statements as reasons to motivate and justify non-technical folks learning how to communicate about technical content with their technical team. Some of what I heard:

❌ All developers will say the language they use is best because it’s what they know.

❌ All developers will say the code before them is trash (because ego).

❌ Know your code so you make sure your engineers aren’t just getting paid to watch Netflix all day.

🤮🤮🤮

My hot take: Sounds like this person, who has built a successful company, has never had a good technical team under their belt. And for that, I am sad. While everyone is entitled to their own opinions, I know full and well that all three of those statements above are fallacies at best.

❌ All developers will say the language they use is best because it’s what they know.

How about all those developers that weigh the pros and cons of adopting a particular language for elements like efficiency, scalability, performance, maintainability, community support, domain-specific adoptability, and more? Or those of us contributing to make newer, more scalable languages more widely adopted by the community so we can move the industry forward?

❌ All developers will say the code before them is trash (because ego).

Developers will only call code trash if it is indeed trash. Everyone has their own definition of trash, but it’s never about ego. What if you built a foundation for a home that technically worked, but was not going to hold up over time, as you remodel and make additions, or as you pivot and try again? You’d want someone to tell you your foundation is trash and needs to be fixed or rebuilt.

That’s the same for developers who say code is trash. It isn’t about the code that was written, but it’s about whether or not the code can successfully grow with the future roadmap of the product.

❌ Know your code so you make sure your engineers aren’t just getting paid to watch Netflix all day.

Do you know how much engineers need breaks throughout their day? And how many don’t work conventional hours? Engineers worthy of being on an all-star team might watch Netflix during the day because their creative energy comes at night. Now an underperforming engineer is an underperforming engineer, but you need to learn what that actually means from a technical perspective and not just from what you believe engineers to be - code producers.

Engineers are creatives. While sometimes you have your templates and boiler-plate code, a lot of the technologies evolving today aren’t easy to just crank out. And if an engineer gives you an estimate for how long a task will take, it isn’t so they can watch Netflix all day. It’s so they can have the capacity to properly scope it out (if they don’t know the scope already) and implement it. Knowing the code so you can call them out is no way to treat a creative engineer, let alone any human being.

Rant over.

While I disagreed with many of the points in this presentation, the overall message was sound: it is important as a non-technical person for you to be able to communicate effectively with your technical team (and vise versa). There is an incredible amount of value in being able to explain your work at a level everyone can understand because it brings about:

  • Diversity of thought

  • Inspiration

  • Transparency

  • And more

But what are some effective ways to make this happen? Here’s my two cents on the topic.

Communication breakdowns between technical and non-technical people happen because of one of two things:

  1. Lack of background information

  2. Lack of terminology knowledge

Even between two technical people or two non-technical people, this can still happen. However, the gap between technical and non-technical people can be quite vast, creating this well-known problem. Similar to how two people attempting to communicate in two very different languages (like English and Japanese for example) instead of two different but similar languages (like Portuguese and Spanish), you need to communicate on a common, mutual ground that both parties can understand.

Some of the tell-tale signs that you are not communicating well:

  • Eyes glaze over

  • Comments are made like “this is out of my scope”, “i’m not smart enough for this”, “let's move on”, etc. **

  • Lack of engagement in the conversation (whether it’s direct 1:1 with you or in a group setting)**

  • Inability to contextualize or reiterate your points

** this isn’t always an indicator of lack of communication, but coupled with other traits can hint that sometimes.

Growing up in a technical community and (previously) being the non-technical one, I’ve picked up some tricks and tips for communicating both ways. These are some things that work for me, but you need to find what works best for you.

🤓 When I am discussing a technical topic with someone who is non-technical, I:

  • Establish a common language.

  • Refrain from using any domain-specific jargon unless it is either well-known already or will be defined by me in our conversation.

  • Start with an easy-to-understand high-level summary designed to be clear enough to be understood but lacking enough detail to inspire conversation and/or questions.
    ✨ Example: “How does ML training work? It uses a set of random numbers and, over time, tweaks those random numbers to become something meaningful. Thus, when it is all done, the numbers are no longer random.”

  • Use the concepts I discuss in my conversation to inspire critical thinking in the other person. Phrases like “now if we think about XYZ in the frame of this new concept, we can …” and “now what happens if we apply this concept to ABC?” can be really helpful in identifying knowledge gaps while helping connect the dots in your audience’s head.

  • Ask them to summarize in their words. If it’s important to make sure the person I’m talking to really gets it and I don’t have a clear sense of that yet, I’ll always ask toward the end of our conversation something like “if you were to summarize this knowing what you know now, what would you say?” and see if they: 

    ✖️ Repeat your words.

    ✅ Use their own words.

🤔 When I am discussing a non-technical topic with someone who is non-technical and I am the one learning/absorbing, I:

  • Establish a common language.

  • Frequently speak up to say when I don’t understand something. I’ll even cut a person off if they are getting too far away and I cannot hang on.

  • Actively try to reiterate what they are saying and ask if it sounds correct to them. This will point out to them what I don’t understand and they can then help me fill the gap.

  • Ideate for feedback. Once I’m starting to understand their topic, my mind tends to ideate. I may offer some of these ideas up to see how they land. Based on their responses, I’ll have a better idea of whether I am really understanding what they are talking about or not. 

  • Tie it back to my work. If this is something I’m learning or discussing to accomplish another task I have, I’ll often ask questions tying back to the project I am working on to make sure I am applying it correctly.

  • Follow up. After the conversation, I typically follow up with whomever I was talking to to say thanks and ask any other questions I have based on my reflection post-conversation.

These tips are from my seat as a technical person with a non-technical background. However, these methods also work when you are in the other seat. In general, if you are the person with the knowledge that someone else doesn’t have, it’s important you find your mutual ground and build the knowledge up from there. And if you are the person without the knowledge, it’s your responsibility to help establish that mutual ground by shamelessly speaking up when you don’t know something so that you can be an active participant in the conversation and beyond.

And if you do all of this, you may just end up with a more accurate version of what people on the other side are really like. Because as I can say from experience - both sides know what's up. ✌️

Leila Kaneda
Co-Founder and CTO
she/her/hers

P.S. From our code above:

"Harmony of Minds: Bridging Worlds"

In realms of thought, where minds collide,
Two worlds converge, in a dance untied.
One speaks in codes, the other in prose,
Yet together they journey, where knowledge flows.

Non-technical hearts, a canvas vast,
With colors of emotion, they're steadfast.
They paint with words, in hues so bright,
Their language, a beacon in the night.

Technical minds, a realm of gears,
Where logic reigns and reason steers.
In algorithms and data streams they dwell,
Their language, a symphony, a mathematical spell.

But lo, where these realms intertwine,
A bridge of understanding, so divine.
Non-tech whispers, like gentle breeze,
Technical echoes, in harmonious ease.

Patience and empathy pave the way,
In this dance of dawn and day.
For when non-tech meets tech's embrace,
New horizons emerge, in boundless grace.

So let them converse, in shared embrace,
Non-tech's warmth, tech's cool grace.
For in this union, a symphony is sung,
Where understanding blooms, forever young.

~ ChatGPT 3.5

Previous
Previous

TAM: Total Addressable Market

Next
Next

In The Weeds