Is "create a reprex" becoming a bit too stackoverflow-esque?

I think it is a general rule here on this site is that if you need help - you need to create a reprex. It goes without saying.

However, I see that many new R users seem to struggle with this ask, which is understandable, in my mind. They came to the forum because they don't have enough experience in R, and are being asked to learn more R (or so it seems to them) before they can ask a question, which looks like a Catch-22.

I've seen a couple of cases where a topic starter was repeatedly asked to create a reprex in the same thread before any help can be provided. While I know the intentions are nothing but good, it does start to look a lot like asking a question on Stack Overflow, and all the emotional baggage that comes with it. Which I think is the fate we are hoping to avoid. I hope that we all want a safe and welcoming community, with as least amount of passive aggressiveness as possible.

What I think about this is the following:

  • Obviously, a reprex is an undisputable status quo
  • Some problems don't necessarily need a reprex, and pushing for it is not always necessary.
  • Some questions can be answered conceptually. If a user states their problem well, but doesn't provide the code, an answer can include a list of functions or a sequence of operations, from where the user would need to extrapolate (the price paid for no reprex)
  • In some cases, it is clear that the user struggles with some basic concepts, and asking for a reprex is a tall order. An answer containing a reprex can be provided in this case, with hope that in the future the user will pick up on some R concepts and will learn to create reprexes.

This is my current take on the community. Any thoughts?

6 Likes

I agree with your approach but some times the line between people not knowing how to do a reprex and people not having the will to do it, is hard to draw.

It was pointed out to me that, giving up with the reprex, could encourage this behavior in the future

1 Like

Totally agree, there isn't a good clear line here.
Sometimes though, it is pretty obvious that a user is struggling a lot, and reprex is probably too much to ask from them at this point in their learning journey...

There are two sides of that coin, making a reprex could be difficult at the beginning but by making the effort is very likely that they solve their own problem, and even if they don't, I have seen the quality of their questions improved afterwards.

2 Likes

Is there a way through Discourse to have a message suggesting users include a reprex and a link to the reprex FAQ show up in the preivew pane (as in the similar post suggestions) when someone composes a message?

Obivously, this would be annoying for most regular users who know how to post a reprex, but perhaps there is some kind of filtering that is possible wherein this message would only be shown to new(ish) forum users, or for posts that contain code chunks but do not include a reprex (maybe looking for the Created...by the reprex package to guess if a reprex is included in the post)?

I would propose we approach this problem in two ways,

  1. We sort out a better (friendly, welcoming, relatively easy and scalable for friendly folk) way to onboard people writing well-posed questions with reproducible examples.
    I'd love your advice on how to improve this.
    Currently, repeat offenders get flagged and I try to help them via DM (which I'm happy to, but isn't always that effective).
    And I don't think this addresses Taras' concern about friendly folk being too quick to request-reprexes.

  2. Fitting with mfherman's suggestion (and others), I'm working on a "new-topic" button that is dedicated to coding questions (and something similar for IDE trouble-shooting / bug questions).
    It would be a web-form with fill-in-the-blank sections, with a side panel linking to our guides and videos.
    IE if you're in the title field, there's advice on how to write a good title. This is very slow in going since it requires discourse development

2 Likes

tl:dr I believe we can have standards for our expectations on question askers, while still avoiding the unapproachable aspect of SO.

So I disagree with this for one main reason. Which is when you are told to provide a reproducible example it is either a comment that says "please post a reproducible example" or a link to this SO thread which gives general ideas of what a reproducible example is. While that thread has A TON of great suggestions, it is a lot to parse though.

Here, the user is pointed to a package page that once installed, all you need to do is use the RStudio Add in and it does the rest for you (while I am simplifying, that is essentially the gist of it). So in my mind the difference is that we are not providing arbitrary opinions about what should be included in your reprex, but rather we are giving you a tool that creates the reprex for you.

While I understand how this can be intimidating for people that are totally new to R, I don't think it is unreasonable to ask the person who is asking the question to put in the effort to learn how to best ask the question.

This happens all the time, there are threads on a regular basis that a user will ask a very vague question and get in return a very vague response (see one such answer from you today. Some users will post resources while some will post general code that could approach a similar problem. So it is not as if we close or put on hold questions that are vague and more open ended. Typically the only questions we will unlist is if the asker literally just copies and paste the recommended discourse question template with no actual information.

While yes that can be done (and is often done) I would hesitate to recommend that practice. If the user is clearly trying to make the reprex but is making errors in the reprex process (not loading libraries, trying to use global data outside of the reprex) then I would say this is appropriate. But as @andresrcs stated, creating a reprex for the user without them putting in any effort encourages them to repeat that lack of effort next time they ask a question (Why invest any more time than I did for the last question I asked when I still got the answer I wanted :man_shrugging:) . While asking a question here should not be a burden, an answerer should not be expected to ask and answer the question for the asker without the asker having put any effort into it themselves.

So I guess my main point is that while we do want to avoid the SO mindset of the user has to ask a perfect question, I don't think that means we have to have no standards for what we expect when someone asks the question. I think the big difference lies in how we ask the user for the reprex. When I ask users for a reprex i try to make it friendly (as an internet post can be) and to provide the necessary information and documentation they need to be able to ask the write question.

In case anyone wants to use it, my (really the one I stole from @mara) canned reprex response (without the typical manually added friendly first sentence) is here:

Could you please turn this into a self-contained reprex (short for reproducible example)? It will help us help you if we can be sure we're all working with/looking at the same stuff.

install.packages("reprex")

If you've never heard of a reprex before, you might want to start by reading the tidyverse.org help page. The reprex dos and don'ts are also useful.

What to do if you run into clipboard problems

If you run into problems with access to your clipboard, you can specify an outfile for the reprex, and then copy and paste the contents into the forum.

reprex::reprex(input = "fruits_stringdist.R", outfile = "fruits_stringdist.md")

For pointers specific to the community site, check out the reprex FAQ, linked to below.

6 Likes

All good points!
And just to be clear: I'm not in the business of doing all the work for anyone and everyone who ever comes across the site. I was just trying to look at the problem from the point of view of a newcomer to the site.

Perhaps we could poll new users on the question if they are being intimidated by the requests?


Another question here would be "How can we make the user's journey 10% better, or suck 10% less?" (cc @jdlong) I like some of the suggestions already. There could be something else we can collectively think of.

For example, I feel like one of the problems we have is that the usefulness of reprex totally escapes many users: if folks understood that by providing a reprex, you're on track of getting a reproducible answer that you can just plop back into your code and do a happy dance, it'd probably encourage more users to do a reprex in the first place. But this concept should be clear to anyone who understands the basics of how programming works, right? Which tells me that some users migrate to R from a non-coding environment and only see R as another SPSS, another Excel or another Tableau. And then poor questions could be a symptom of some fundamental gaps of understanding the main advantages of programming in R, and hence the discussion pivots to, say, "R for Data Science" book.
Something like that. Anyway, that's just one of the takes here (and not necessarily a good, correct or coherent one)

3 Likes

I think this is a good place to make very basic (but specific) questions, but isn't a good starting point for learning R from zero, so I think a minimum level of R expertise should be required.

I believe a forum is not the right format for a R 101 class.

1 Like

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

If you have a query related to it or one of the replies, start a new topic and refer back with a link.