I have a personal theory. 95% of interpersonal problems stem from a lack of communication.
On December 11th, 1998, NASA launched the Mars Climate Orbiter (MCO). The probe was meant to orbit Mars, collect data on Martian climate and surface conditions, and, most importantly, act as a communications relay to the Mars Polar Lander.
As the MCO approached the red planet, sensors showed that the probe was going to be too far from Mars to be put into orbit. A trajectory change was planned and executed to bring the orbiter closer to the surface on September 15th. Eight days later, contact with the craft was unexpectedly lost.
The team at NASA thought that they were about 140 miles from the surface; an optimal orbital height. Later investigations showed that, in fact, the probe was only 35 miles above the surface. MCO entered the Martian atmosphere at too steep an angle and exploded.
The cause of the crash and inaccuracy of the altitude readings, were eventually found to be because of a units conversion problem. Lockheed Martin had been tasked with creating the ground-based communication software, but NASA had built the software on the orbiter itself. NASA sent readings to the ground using the SI unit for impulse, Newton-seconds. However, Lockheed interpreted those signals in their imperial counterpart, foot-pound-seconds.
This miscommunication caused the readings to show incorrectly, thus plunging the orbiter to its untimely and fiery demise.
It's worth noting that after the conclusion of the investigation, NASA did not blame Lockheed for the accident. Instead, they placed the blame on themselves, citing the lack of verification and processes that could have been used to catch the discrepancy early.
Stories like this are the reason that technical communication is so important.
Talking to engineers (whether software engineers, like me, or any other type of engineer, scientist, or analyst) is not easy, but is tremendously important. In this article, I want to provide tips and tricks for talking to these kinds of people; the nerds.
I've seen so many business-engineering conversations crash and burn that I can tell when a conversation is doomed almost as soon as it begins. Bridging the gap between these two very different worlds is not easy, but it is possible (and, dare I say, necessary).
Tips For Talking To Nerds
Concrete Objectives Instead of Abstract Philosophy
Most nerds are not particularly abstract thinkers. We prefer concrete ideas over lofty ones. We like small-picture over big-picture.
Don't get caught up in the large-scale, long-term vision. Describing vision to a nerd is like talking about foreign policy to someone who's been stuck on a dinghy in the middle of the ocean for the past year. They may understand what you're saying, but they have a small view of the world. Our last thought was not about where the company is going to be in five years, it was about where the company is going to be in the next five minutes.
Keep goals short enough to easily wrap your head around (think, for a 10 year old) and don't leave them open-ended. "A needs to do B," is much better than "somehow we need to get from A to B." Precision and accuracy are highly valued to a nerd. We don't like estimates or guesses. One concise and well thought out statement is worth more to a nerd than 30 minutes of brainstorming or rambling. Once you establish a goal, don't set open-ended deadlines unless you never want the project to be complete. Nerds work best when we have a firm, set deadline. It lets us plan, prioritize, and optimize our time (and we love to optimize).
Learn About Logic
Nerds are logical beings (insert Spock quote here). We thrive on structure, especially when it's repeatable.
Take a look at this excerpt from Gary Hardegree's book Symbolic Logic. This is how nerds think. In fact, this is how computers work at the most basic level. Learning the underpinnings of conditional logic will not only help you understand the nerds around you, but may also help you better understand the computers you use, and even the decision making process as a whole.
Remember that nerds need concrete, logical thoughts. We don't like "maybes", "sometimes", or "whichevers" without strict guidelines around them. "Sometimes" has no place in conditional logic. Try putting your thoughts into a format a nerd will understand when faced with this problem. The best approach is the "if this, then that" approach. "If a user is logged in, then they should be taken to their dashboard. If a user is not logged in, they should be taken to the login page." This is how a nerds brain processes a problem. Reframing it in this way will make it easier for us to understand and easier to communicate goals.
The last reason that logical communication is so important is because of something we call edge cases. Edge cases are the handful of situations that occur when something goes wrong; the cases that don't occur in the regular flow. They occur at the edge. Defining edge cases is hard and is easily overlooked if communication between nerds and non-nerds isn't strong. Explaining processes logically allows for us to quickly and easily identify those edge cases. Don't be alarmed or offended when we bring them up; it will feel like we're poking a million holes into your plan or idea. This is how we harden processes, make infrastructure stronger, and make software better.
Don’t Mistake Dryness for Rudeness
When talking to a nerd, remember that you are likely talking to someone who gets along better with their computer than they do their parents. Many nerds are introverts. We don't like talking to people, or find talking to people draining and difficult. I used to work with a developer who spoke maybe 20 words to me for the two years I worked with him. The day he left the company, he stopped on his way out, turned to my desk and said, "Today's my last day. Been good working with you. Bye." And that was it!
It's important to remember that a nerds distaste for conversation shouldn't be interpreted as rudeness. A nerd almost never means to be rude or condescending, we're just not good at holding a conversation.
I see this a lot in meetings. The group is discussing a topic but some nerd is in the corner not contributing. It's easy to assume they're uninterested, day-dreaming, or playing games on their phone. On the contrary, we're typically paying attention but don't have anything insightful to say. If you want a nerds opinion on something specific, don't be afraid to ask. A nerd is almost always glad to give their opinion, but won't do so unsolicited.
Another way this comes through is with clarity. We're used to speaking in jargon and acronyms all day (just as people on the business side are). If a nerd isn't being clear, just ask him or her to clarify. We don't mind clarifying, even if it seems like it's bothering us. Most people would be surprised at how creative an answer a nerd can give when asked to clarify. While nerds deal in logic, maths, and programming jargon, many of us are very creative. While we may not all paint or write music, our creativity shines through when solving a problem or designing a system. This creativity can help when explaining how these systems work, or why a problem has arisen.
In extreme cases, I've seen people who are quiet, be mistaken for people who are unintelligent. In the business world, the smartest people are the ones who have worked with the most people, networked the most, and built the best companies. This rule does not follow to the engineering side. In fact, some of the quietest nerds are often times some of the smartest. Pick their brains. Just because they're quiet, doesn't mean they're unable to help you, or unable to solve some really tough problems.
A warning though: give a nerd a mile and they'll take the whole mile. We love to optimize, test, and experiment. If you give us an open-ended problem, or a project with no deadline, we'll likely use that time to try to make something perfect. Perfection is the enemy of done, and a nerd will often strive for perfection.
Don’t Get Caught Up In Jargon
Have you ever compiled your source code only to realize you forgot to push the new tag on a dependent library?
Both sides of a business use a lot of jargon, both sides of which can be difficult to understand. What's important about nerds and jargon is that we don't typically stop to explain what it means and it can be very hard to figure out from context clues.
What to do? As always, just ask. Nerds had to learn this jargon at some point as well. We don't look down on people not knowing it, and don't mind explaining what it means. Write down bits of jargon that you learn because if you ask us what the same thing means three times, we start to get annoyed.
For bigger concepts, don't be afraid to ask a nerd to walk over to a whiteboard and explain a concept visually. Nerds use whiteboards all the time to get their thoughts straight and we are always happy to go through the process with someone else. Also note that you don't have to remember it all! Some of these concepts are big and complicated and you'll lose bits of information. Focus on the big picture here and try to absorb concepts rather than names and places. The idea is more important than knowing where all the wires get plugged in.
If you get lost, ask for a nerd to talk in big picture concepts. We love to get down to the details because that's where we solve problems and that's what we're most proud of. Those details, though, can be daunting and unnecessary for someone who's not familiar with a big system. Just ask to back up and we'll be happy to summarize.
Finally, don't change jargon. If you call something by an acronym, don't call it by its full name, an internal name, or anything else. Nerds don't know if you're talking about the same thing or not and most of us are careful to use the same names for things with each other. Consistency is key to all communications.
Last, but certainly not least, be honest.
If you don’t understand something, ask for clarification. Just remember to be precise. “I don’t get it” after 20 minutes of whiteboarding will make a nerd want to quit. Instead say “can you go over this part again?” or “I don’t understand how these things relate.”
It’s ok to be wrong. Admit it and move on. Nerds have very little patience for uninformed opinions, but an inherent love to teach and explain. Take advantage of that.
Be concise. If it can be said in one sentence clearly, don’t take 5 minutes to explain it. If you don’t know how to explain it, say so, there’s a chance the nerd can help you get your thoughts on a whiteboard.
Hopefully you've come away with some pointers and guidelines to help you talk to nerds. Communication is key to any business and cross-departmental communication is very important (and often neglected). Remember that a two minute talk between Lockheed and NASA could have saved millions of dollars. Make sure your teams, nerd or not, are on the same page before you launch your proverbial rocket.