This guest post from Dr. Benjamin Schumann is a guide to getting better answers by asking better questions. The post originally appeared on his Simulation 101 blog.
Which skill do you need again and again throughout your career? Without this skill, you will forever wonder why you do not progress, why others do not seem to be helpful. With it, things will flow easily, be fun and others will love to help you.
This skill is a secret superpower that some use to their advantage, while others never master it. This skill is especially important when learning technical skills such as simulation modelling, or AnyLogic in particular.
It is all about:
ASKING GOOD QUESTIONS.
Nothing beats it when you want to learn new things fast. Over the past 10 years, I have answered hundreds of simulation questions on StackOverflow, LinkedIn and other places, especially for AnyLogic users. Some questions are SO GOOD that they magically make me answer them. I cannot resist. Some are so well done that I willingly sprinkle in some extra magic sauce for the next steps.
However, most questions are not good.
And since AnyLogic now (semi-)officially moved their support community to StackOverflow, I want to help folks improve their questions. Use this as a quick future reference before posting and you will be flooded by replies (or get 1-2 for sure :) ).
WHAT IS STACKOVERFLOW
StackOverflow is a place for getting technical help. It is cleverly designed to make you ask good questions. It rewards good answers as well. Getting started is easy.
You earn a reputation for your questions and answers with fake internet points. However, they are not fake at all. Many employers will check your StackOverflow profile and people with high reputations can make that work to their advantage. But it is also good fun gamification.
However, StackOverflow is often perceived as a bit cold, technical and even exclusive. However, this is often caused by wrong expectations of how it works.
At the core, StackOverflow is about … you guessed it: asking good questions.
Before we dive in, let’s clarify
WHAT IS STACKOVERFLOW NOT?
StackOverflow is not a place for questions with no answers or with many answers.
What do I mean? Well, avoid:
- “philosophical” questions that require a thesis to answer.
- “How do I best model a hospital?” — Friend, there are hundreds of ways and it … depends
- “When should I apply System Dynamics?” — It really depends on your purpose. It is used for climate change and atomic dissipation reactions.
- “Has anyone ever modelled an airport?” — Yes. Just … yes.
- “Trivial” questions that you could have found yourself
- “What is the Delay block”? — Please check the help
- “Will my model work in the AnyLogic cloud?” — Please try yourself and not unload your work on others.
- “Impossible” questions that are too vague or lack any details
- “My model stopped without an error”. — Well, sorry to hear. Without details, we cannot help.
HOW TO ASK GOOD QUESTIONS
Does this sound too harsh? I hope not. On StackOverflow, we are volunteers that are happy to help. But we are very busy. If people appear "lazy" or as if they did not do their homework, the best you can hope for is a comment pointing that out. But you might not see any replies or your question might even be deleted.
So time to think about your homework. How do you ask good questions? (On StackOverflow and in life).
There are three philosophical themes you should bear in mind always:
- Make sure your question CAN be answered, i.e., avoid the pitfalls above.
- Make OUR lives easy, not yours. This is probably the best advice of all! I should not have to work for you, but vice-versa :)
- Put effort into writing the question.
But what does that mean specifically? Here are some practical steps to follow for your question:
- Google the issue and search on StackOverflow as well (I hope this is obvious :) )
- Boil the issue down to ONE core problem only. If you find more than one issue, open one question for each.
- Try to turn the issue into a minimal, reproducible example. This way, others with a similar issue will find this solution in the future as well and we can reproduce it on our systems quickly. (i.e., strip away the specifics of your model and make it relevant for everyone)
- Give us a brief background of the problem. But stay succinct
- State the problem and add screenshots, code snippets, etc. But avoid sharing an entire model. Few people have the time to really investigate and learn your model!
- Absolutely list what you already tried to fix the problem. No need to be shy here :)
- Write an informative headline. Best write it last, so you can really get the zest of the issue out
- Check your question:
did you make OUR lives easy and your life difficult? Could an expert answer this fast without too much work? If not, rework.
Once your question is out, you might get some clarification comments or a direct response. If the response is helpful, please upvote it. Note that good-quality questions also get upvotes as a way to reward your effort.
StackOverflow offers some good further advice to make the most of their platform, do make sure to check these as well:
Also, do not be intimidated by the formal, dry and technical atmosphere on StackOverflow. This is a place to get things done, not chat over coffee. The best way to make a great impression is to put effort into your question.
Many of you will be familiar with Dr. Benjamin Schumann's AnyLogic simulation modeling from his Cloud models, masterclasses, and webinars, such as How to go from Good to Great in AnyLogic and How to Build a True Digital Twin. But, if you have not already discovered, Benjamin keeps a blog on which you can find all kinds of musings and insights related to simulation modeling — Simulation 101.