Daily, we communicate with a lot of people - family, friends, office colleagues and often with end customers. A lot of this communication is in the form of asking questions and getting answers. If I ask you - How hard it is to ask questions? Different people might have different answers to this, depending on a few things like:
How vocal they are generally?
How much they are comfortable discussing the topic?
Is the problem statement clear?
Can they describe their problem in a way that the second party can understand?
Is there a language barrier, knowledge gap or missing context?
Generally speaking, many people do not think a lot before asking questions. While it encourages them to openly ask questions, it also creates a challenge in understanding the problem for the second party. To solve the same, a lot of to and fro happens while communicating. This is still ok when the parties are communicating synchronously (eg. over a call or in-person meeting) because the parties can clarify their doubts there and then, but becomes worse when the same is happening over an asynchronous medium (eg. chat or email). A common example of such email as an engineering team is – communication with the end customers or other departments where people describe their problem in the shortest possible way and assume they will get a solution. Without a process, such emails often run for weeks.
There are multiple occasions when our sense of asking questions brings different outputs. People who have been using ChatGPT for any purpose will agree with me on this. Response from such generators depends not only on our questions but the context and details we provide. For those who have not had a chance to get their hands dirty yet, here are two questions I asked ChatGPT (one with minimal context, another with a detailed context) :
Q: Give me a small paragraph on the topic: optimizing page load
It generated 3 such paragraphs, about 1000 words in total. I added more context to the question to get a shorter response and also gave an idea on topics it should focus on:
People have now understood the value of context, at least while using AI generators. Surprisingly, the same is missing in some cases when we question humans. I often get emails and messages like The feature X is broken, can you check? It is not that the reporter did not do their homework. They must have opened the website, clicked some button(s), filled a form (maybe?), and seen an error, but they did not tell me all this. They should realize that either I’ll have to do all of this again, or ask them about the same, so better share these details. In my personal ToDo list, I deprioritize tasks that do not contain sufficient context. If you’re facing a problem, you should explain it in detail. Having details will help get the solution sooner and would eliminate the need to ask obvious questions – Is this breaking for a specific user? Does this break for all the cases or sometimes? Can you share the error message, error code or screenshot?
A similar issue happens in some cases when we’re communicating within engineering teams. When such issues reach the developers for debugging, they respond like: I couldn’t find the issue despite spending 2 hours on it. While this is a good first response, this is what anyone would expect afterwards –
Did you try reproducing the issue as mentioned, before looking into the code?
Did we get the exact problem statement in technical terms (i.e. what exactly is breaking)?
Could we figure out what specific class or method in the code deals with the broken part?
Does the code need restructuring to debug? If we need to restructure, do we have automated tests?
Are there recent changes in this code? Do we know after which release this started breaking?
Do you need someone to pair with you to debug this? Or probably move this to someone else?
If you want someone else to check, have you recorded the investigation in the issue tracker as a comment?
Some of the above points might not be applicable to all issues, but this is what comes to my mind generally. Such questions help in building a clear understanding of the problem and proposing a fix that makes sense. You get half of the solution by understanding the problem clearly. When you’re seeking solution of your problem from someone else, make sure you can show what you have tried before reaching them out. Have answers to all the obviou questions. This is an underrated skill but optimizes much of the communication cycle.
This post is just an introduction to asking good questions. There’s a very detailed, opinionated post (might sound little rude) on this topic already. Click here to read the same. Take care and see you guys in the next post.