Asking Questions to Get Answers

Posted by on in Blogs

Asking development and troubleshooting questions is a mix of art and science. Sites like Stack Overflow and other developer community forums will often reject questions that do not meet their standards. Even when you are sending a support request to our premium update subscription support you can save a lot of time by providing all the necessary information in your first message. There are a few guides to asking questions that get answers, so I thought I would combine the best tips from them here in a useful reference (see the list of sources at the end).

IDERA Rubber Duck

One of the themes I’ve seen in a lot of these guides is that many times in the process of asking a well-researched question you will discover the answer on your own. This is the ideal solution as I believe you learn the most in this situation. More than once I’ve posted the answer to my question immediately after asking it for this very reason. One tip to do this is called Rubber Duck Problem Solving which even has a Wikipedia page describing it. If you have an IDERA Rubber Duck handy you can put it to work for you! 

Here are my tips for asking good questions to get good answers:

  1. Be Specific - What are you trying to accomplish specifically? Or what were you expecting to happen? Just saying something doesn’t work, or asking for an example of FireDAC isn’t really enough to go off of. Also be specific about what version you are using, target operating system, 3rd party components, etc.

  2. Use a Descriptive Title or Subject Line - Especially when posting on peer-support, people are scanning the list of questions to see what they feel comfortable answering. If you have a good title they are more likely to click on it to answer it. But if your title is vague then they probably won’t bother.

  3. What Have you Tried? You don’t want the first few answers to be things you’ve already tried in troubleshooting the issue. And if you haven’t tried anything then you should do that first (a little research saves you a lot of work).

  4. Include the Minimal Code - Create the simplest possible program that demonstrates the problem or what you are trying to do. Don’t include the DCU or anything that isn’t necessary. Often times the process of creating a small app that reproduces the issue you discover the cause of it.

  5. Include Links - Likewise, if there is a link to the documentation that describes what you are trying to do that can help too. This goes with the What Have you Tried part too. You don’t want the first response to be a link to the page you just finished reading.

  6. Include the Errors - If you are getting an error include the exact error. The full text of the error and not just a screenshot. If the screenshot ads something you can include it too.

  7. Is it reproducible? What are the dependencies? If possible try reproducing it on a different version or different install. Maybe disable any IDE plugins or turn runtime packages off. Does debug vs. release make a difference? Have you tried it with your virus scanner disabled?

I’d also add one more tip to be sure and post to the correct place. Here are a few places you might find answers

  • Embarcadero Community is a good place for peer support for questions specific to our products.

  • If you are using a 3rd party component check to see if they have their own support forums or channels.

  • Use the Quality Portal if you are reporting an actual bug or making a feature request.

  • Stack Overflow is a good venue to get answers, especially if they involve broader technology like consuming the Facebook API.

  • We have a special support channel for Installation and Registration issues

  • If you want some dedicated assistance then take advantage of our support team. Your update subscription includes three annual support incidents and you can get more

For further reading, I pulled from these sources:

 What do you find is a great way to get good answers to your questions?


Check out more tips and tricks in this development video: