Why Thunkable's team asks for Minimal Examples and what they are

The Why?

I used to get really annoyed at this request. Now though, in a support role, I totally understand and what to share our point of view on this and also to share a helpful article pulled from StackOverflow.com.

Basically the why is because this helps us help you. Videos and screenshots are great help for chat/forum support, but if you are at the point that staff need to jump in cause something isn’t working, staff not only want to see the issue but we also want to recreate the issue and be able to break the apps ourself. On our end, we have access to debuggers and can run the files while viewing error logs to pinpoint and workout issues.

It’s not to delay things or because we don’t believe you. It’s often due to a difficulty quickly recreating the same error you are seeing ourselves. So in short, when we ask for these it’s so we can more quickly solve your issues.

The following is a quick read on what a minimal example really is. Take some time, ask questions if you have any! The rest of this post was copy pasted from the StackOVerflow link above.

The What

When asking a question, people will be better able to provide help if you provide code that they can easily understand and use to reproduce the problem. This is referred to by community members as creating a minimal, reproducible example (reprex), a minimal, complete and verifiable example (mcve), or a minimal, workable example (mwe). Regardless of how it’s communicated to you, it boils down to ensuring your code that reproduces the problem follows the following guidelines:

Your code examples should be…

  • …Minimal – Use as little code as possible that still produces the same problem
  • …Complete – Provide all parts someone else needs to reproduce your problem in the question itself
  • …Reproducible – Test the code you’re about to provide to make sure it reproduces the problem

The rest of this help article provides guidance on these aspects of writing a minimal, reproducible example.

Minimal

The more code there is to go through, the less likely people can find your problem. Streamline your example in one of two ways:

  1. Restart from scratch. Create a new program, adding in only what is needed to see the problem. Use simple, descriptive names for functions and variables – don’t copy the names you’re using in your existing code.
  2. Divide and conquer. If you’re not sure what the source of the problem is, start removing code a bit at a time until the problem disappears – then add the last part back.

Minimal and readable

Don’t sacrifice clarity for brevity when creating a minimal example. Use consistent naming and indentation, and include code comments if needed. Also, use spaces instead of tabs – tabs might not get correctly formatted on Stack Overflow.

Complete

Make sure all information necessary to reproduce the problem is included in the question itself:

  • If the problem requires some backend setup (google sheets/airtable) as well as some client side blocks of code, include both. The problem might not be in the code that you think it is in.

  • Use individual code blocks for each file or snippet you include. Provide a description for the purpose of each block.

  • use images of code. Grab a screenshot of the blocks from your block editor, paste it into the question. This helps others more easily read and test your code.

Reproducible

To help you solve your problem, others will need to verify that it exists:

  • Describe the problem. “It doesn’t work” isn’t descriptive enough to help people understand your problem. Instead, tell other readers what the expected behavior should be. Tell other readers what the exact wording of the error message is, and which line of code is producing it. Use a brief but descriptive summary of your problem as the title of your question.
  • Eliminate any issues that aren’t relevant to the problem. If your question isn’t about using saving an input to a variable, remove the blocks that have nothing to do with this topic. if you r topic isn’t about using the data source blocks, remove the blocks that have nothing to do with that topic.
  • Double-check that your example reproduces the problem! If you inadvertently fixed the problem while composing the example but didn’t test it again, you’d want to know that before asking someone else to help.

It might help to shut the system down and restart it, or transport the example to a fresh environment to confirm it really does provide an example of the problem. Hard refreshes are also extremely handy.

For more information on how to debug your program so that you can create a minimal example, Eric Lippert has written a fantastic blog post on the subject: How to debug small programs.

The use of “reprex” for Reproducible Example was inspired by Jenny Bryan’s reprex package for R.

You may have been told to include an MCVE – Minimal, Complete, and Verifiable examples is what they were referring to. MCVE was also the former name of the page you’re reading now, occasionally misspelled as MVCE, before it was renamed to Minimal, Reproducible Example (sometimes called “reprex”, “min-reprex”, “repro” or just “example”).

6 Likes

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.