Explaining what a 500 status code is to someone with zero technical knowledge sounded more interesting and fun to me so this is what I remember saying…
A 500 status code is what you’ll get when a something has gone wrong on the web application’s server but the server doesn’t have any specific details.
Imagine a home with many doors, in this example, each door is a “web application” and the home is the “web server”, the place where all these doors are.
Now imagine that you open a door, and while the door does exist, there is nothing behind it, at this point the home will tell you that nothing specific exists behind the door so in web server language, that would be similar to a 404 status code which means “Not Found”.
What about the 500 status code? Well, if you attempt to open any other door and nothing works inside of it, the home will tell you that there’s something wrong with it, but not sure what it is. For example, there might be no lights or no water, but the home won’t tell you that, it just tells you that there’s something wrong and in web server language that’s usually what a 500 error means. Something is wrong with the web server or the app but it doesn’t know what it is.
If you can’t explain it simply, you don’t understand it well enough.
~ Albert Einstein.
By now you’ll probably already pulling your hair, and I understand, this is painful. My explanation or attempt to explain this to someone with zero technical knowledge wasn’t good enough, at least not in my opinion. But that isn’t the point of this, the point that I am trying to make is that it is very hard to explain something technical that is well understood by us and people that we work with, but not by anyone that isn’t technical and has zero knowledge about programming or web servers in the above example.
In my experience, having the ability to translate a technical problem or solution to a non-technical audience is key, it is something that you as a software engineer, for example, will need to do many times when communicating with business partners, customers, or anyone that isn’t a software engineer or has any technical knowledge.
How do we get better at this? Well, this is something that the more you do, the easier it gets, but it never stops being difficult. You might memorize a couple of examples where you can explain a couple of things, but with technology changing so rapidly it will be hard to have a template or an example of how to translate something technical onto something that anyone can understand.
The ability to tell a story is key to accomplish this, and without at least trying to get good at storytelling, your chances of confusing people and not being able to communicate something technical clearly are very low.
Also, be empathetic and patient. If you are trying to explain a technical concept be aware of who your audience is and tune your technical speak to their level. There might be times where you’ll replace the technical talk with something that your audience will understand, remember that your ultimate goal is to communicate and to do it clearly.
In conclusion, I learned something about myself and this blog post is the first step to improve it, I don’t think too much about how to improve my communication skills when trying to explain a technical concept, idea, or problem, to someone who doesn’t have the technical knowledge or experience with technical terms.
Here are some resources that I am using to help me with this subject: