How many times did you ask a technical question, to be met with a laconic “it depends”? Or worse, for your question to be totally ignored? This is so typical on Internet forums. I know it is depressing not to obtain an answer to your question, or to obtain a generic answer that does not really help you move forward. I may be guilty of this! Guilty of not answering, or of answering “it depends” quite frequently.
In this post, I want to share my thoughts about the reasons why I answer “it depends”. Knowing the reasons might help you ask your questions the right way, so that you obtain your desired answer.
I answer tons of questions: from my students, from conference attendees or from anybody asking me about Power BI, Data Modeling and DAX both online and in person. To me, answering questions is a win-win. As a teacher, answering questions is partly my job, and partly a good means to learn more about the topics I teach. If I do not know the answer to something, that tells me what I still need to study. Moreover, answering means learning how to explain things, and again this helps me a lot. That said, I skip many questions. Really… a lot. I read them quickly and I decide to move on to the next, leaving the question to somebody else. The reason is that the questions are phrased in such a way that either the answer is “it depends”, or the question is the starting point for an endless exchange of information that I cannot commit to following. I don’t enjoy any of these scenarios, so I prefer to remain silent.
Let me give you a few examples of questions that – IMHO – are interesting, but not answerable:
- Is it better to create one big fat model with all the business entities inside it, or to build several smaller models, one for each business role?
- Which one is the way to go, Power BI Premium, Azure Analysis Services or on-premises SSAS?
- Is it worth learning MDX in 2021?
- Should I build two date tables in my model or is it better to build two relationships with one date table?
I wrote them off the top of my head, based on the ones that I read the most often.. All these questions have one single answer in common: “it depends”.
The reason I cannot answer these questions is because they are lacking the background information that is crucial to me providing any reasonable answer. Let me show you what I mean by providing a different set of questions, unrelated to Power BI. Try to answer them:
- Is it better to use a sports car or a family car?
- What kind of clothes is better if I want to have a walk outside in January?
- How do I know when a task is completed?
Did you try answering? Now you know what I mean. Those questions are taken out of context. A sports car is better to run a race, a family car is better to go on holiday. Therefore, the answer is: “it depends”. If I want to have a walk outside, am I walking in January in Dubai or in Helsinki? The difference is quite relevant. Hence, the only reasonable answer is: “it depends”.
If you ask a question, it is your job to provide the context required to obtain a good answer. The context can be as short or as detailed as needed. Nonetheless, it should be neither too short nor too detailed. Both exaggerations are problematic. If I need to read three pages of a detailed description to provide an answer, it is unlikely I have the time to do that, therefore too much is as bad as too little. Just provide the minimum context required for me to answer you.
Let me rephrase the previous questions, by adding some context:
- I am in charge of three departments with various different requirements. Each department has a data model with around 10 tables, three of which could be shared with the other department models. Each department model is around 5GB is size and takes around 20 mins to refresh. Is it better to create one big fat model with all the business entities inside it, or to build several smaller models, one for each department?
- I need to build a BI model for around 10 users, 2 of whom will also be DAX authors. Our main database is stored in the cloud and we are also loading some data from CSV files stored on our local PC. Which one is the way to go, Power BI Premium, Azure AS or on-prem AS?
- I have allocated some time to learn a new language to improve my skills. I have no specific constraints; it is for my personal growth. Is it worth learning MDX in 2021?
- I have a model with Sales, Delivery Date, and Order Date. I need to report the number of orders delivered and the number of orders placed. Should I build two date tables in my model or is it better to build two relationships with one date table?
Stated this way, all these questions have a clear answer that I can provide in a matter of a few minutes. And I will happily do that.
It is really important to comprehend that the person who asks the question is in charge of providing the context, and that this needs to be the first part of the question.
If I need to ask for context, I do not ask. I have learned that it is wiser to skip the question altogether.
Let me give you another example.
You want to compute a complex DAX formula. You have two options:
- You can publish the image of an Excel file with dozens of numbers, arrows, and colors, and then start outlining the algorithm required using your own business language – which by the way, I have no way of understanding.
- You can share your Power BI Desktop file that contains ONE page with a matrix with the calculations you have done, and a few notes about why your calculation is wrong. A text note in the report clearly says: “Look here: the number is 5, I need it to be 7”.
Let me ask you: which one is more likely to get my attention? I’d say that I might spend around 5 seconds on the question in the first option, before moving along. I know, by experience, that the first question leads to this thread:
- Can you share your data?
- No, it is private data, I cannot share it.
- Then I don’t know how to help you.
- Here, I prepared another Excel file with dummy data, screenshot attached.
- I don’t want to type in all these numbers, can you share the file?
- Sorry, I don’t know how to attach a file to this forum.
And so on. It may go on like this for a few days, and it is very unlikely I will be able to follow the thread for that long.
The second option is so much easier: if I am intrigued by the question, I download the file and start playing with it. I look at the matrix, I build a measure and I test it. I know the expected result: it is provided right there! A few minutes later, I can proudly answer with my code. Anybody else in the thread can check, validate and correct my code, if needed.
Now, I totally understand the various issues that can come with sharing your data. If you cannot share the data, then invest the time to build a simple model with a few rows to demonstrate your scenario. Again, the person asking a question is responsible for providing the context. The task of the answerer is just that: to answer.
I think I know why most questions are impossible to handle, to the point where they receive no answer. We are used to talking in person: you can ask whatever question you want and if your question is not clear, the other person can immediately ask you to provide more details. It is what we call a conversation. In the real world, it works. On the Internet? It does not.
Besides, depending on the context that year I might be in Italy, in the UK or in Seattle when I read your question. It is very unlikely that if I ask for further information I will obtain the answer immediately. Time zones, workload… There are a million reasons why we cannot engage in a real conversation. You need to provide the correct level of information right off the bat, so that I can work completely offline. And the place where to put this information is the first few lines of your question. Later than that, it is too late.
Let me conclude this post with the reason why I wrote it. I love answering questions. Really, I do. Questions are vital to my professional life; the more I can answer, the better I become as a teacher and as an expert. It hurts to have to skip an interesting question because there is not enough context and I don’t have the time to start a conversation.
Help me with this. Don’t overestimate me. Write better questions, you will obtain your answers quickly and we both will be so much happier.