Five years ago, we set out to write up some guidelines for folks asking debugging questions on Stack Overflow. Andrew Thompson, author of the much-loved guide to writing a Short, Self Contained, Correct (Compilable), Example, gave us a solid start; with a few tweaks and updates over the years this guide continues to provide one of the most-viewed and most-effective bits of guidance for askers.

Minimal, Reproducible Example (or, "reprex")

Yep. The common factor for both Complete and Verifiable is the need to provide a way for others to reproduce the problem. So... We could just call this thing a Minimal, Reproducible Example. Even better than a clunky acronym, it has a meaningful and elegant portmanteau, "reprex", which was originally coined by members of the R community, some of whom have been maintaining a similar FAQ here for many years. We were especially inspired by Jenny Bryan's reprex library for R and her "help me help you" philosophy behind encouraging question-askers to create reproducible examples that make conversations about code more productive and efficient.

After mulling it over for a while, I couldn't think of a good reason not to change this other than my own inability to consistently spell "reproducible". A big part of the philosophy of the article has always been "short and clear" - so why not make the title itself shorter, and the URL less awkward? Provided we didn't break the thousands of existing links in the process, that is.

So Jon Chan has set up a redirect to allow both /help/mcve and /help/reprex to take folks to the same place, the same old article with a new shorter title. While updating the title, I've taken the opportunity to also work in a few other suggestions from the team:

"you will get better answers" -> "people will be better able to provide help"

Let's face it, there's no guarantee you'll get a good answer no matter how good your question is - you're just increasing the odds.

"tabs make a mess on Stack Overflow" -> "tabs might not get correctly formatted"

The subtle danger here has always been that tabs seem to work on Stack Overflow... Just like they probably seem to work in your favorite editor. Until they don't, and your co-workers murder you with a classic can of diet soda. Again, precision is important here: the danger isn't that tabs will always break, it's that they won't always work.

Removed the now-redundant "make sure it's complete" section

The final guidance in the Verifiable->Reproducible section was already very close to this; with a few more tweaks it can entirely supplant it.

"'It doesn't work' is not a problem statement" -> "isn't descriptive enough to help people understand your problem. There are lots of ways you can better describe your problem so it's reproducible."

Here I got preachy instead of trying to help folks understand the reason for the advice. Meg suggested a more descriptive explanation.

And a few other minor tweaks here and there. All in all, a solid set of improvements, I think... But decide for yourself: /help/reprex. And then let me know what you think...

Unfeaturing this after a day - got plenty to chew on, and hopefully most folks interested have seen it by now. Big thanks to everyone who responded - lotsa good ideas and fair critiques, will think about this for a bit and discuss more later.

On the one hand, "reprex" doesn't emphasize "minimal", "complete", and "verifiable" the way the MCVE expansion does. On the other hand, lots of people still don't really get it when shown the full name and have to be told to follow the link, so it may not be as much of an issue.
– Nicol BolasMay 14 '19 at 21:33

36

It sounds like something that should be followed by a lot of fine print listing possible side effects.
– Mike M.May 14 '19 at 21:54

87

I see how its a bit less wordy, but "min reprex" sounds even more awkward to my ears than MCVE. Though, I've never been a fan of portmanteau's. Fine either way though, really.
– mbrigMay 14 '19 at 22:08

117

I find the "min-reprex" name more awkward than the initialism, but most of the other stuff here sounds good.
– user2357112 supports MonicaMay 14 '19 at 22:21

31

MCVE is already a stand-in in most cases for "no repro" which has the added benefit already carries meaning outside SO... I don't see how a rebranding, reprex, makes it clearer than, for example, min-repro or even just repro.
– TemporalWolfMay 14 '19 at 22:47

57

To me, it sounds like something you should be embarrassed about when you ask your pharmacist for it. "Less awkward" is not a phrase I would use to describe it.
– NickMay 15 '19 at 1:33

73

Oops. I thought from the title of this post that it was a joke - how could "min-reprex" possibly be less awkward than something else? I like the thinking, but maybe keep iterating? (One issue for me is that it's not obvious how you even pronounce "reprex". Is it "re-prex", or "rep-rex" or "reep-rex"?)
– Steve BennettMay 15 '19 at 1:44

56

MCVE is awkward, but at least it has the redeeming feature of clearly being an abbreviation for something. "Min-Reprex"? My first reaction was "Did I accidentally stumble into 'Stack Overflow in Latin' or something?"
– MarkMay 15 '19 at 1:46

121

Yeah, because “reprex” just rolls off the tongue so much better than MCVE. You’re a month and a half late here. I don’t even know how to pronounce “reprex”. At least I know how to pronounce the letters M, C, V, and E.
– Cody Gray♦May 15 '19 at 2:09

I like it how you introduced a change the community dislikes, aimed at helping the community, without having consulted the community at all. At least it fits the usual workflow. I know, I know, just because an annoying and loud minority on meta disagrees doesn't mean anything and so on. How about managing Jobs instead? (I don't use that.)
– Andras DeakMay 15 '19 at 9:46

101

Title suggestion: Min-Reprex: a more awkward name for MCVE
– LuuklagMay 15 '19 at 11:07

35

@Alex there are plenty of things the community wants to change. The problem is what they will change is either something we never asked for, or otherwise carried out in a way that makes things worse. It's not like the community is a miser with suggestions.
– Andras DeakMay 15 '19 at 13:22

46

I want to make sure that it is clear: This isn't the normal "Meta Negativity" from the regulars rejecting a new change that gets ignored: the people who most frequent Meta and were seeing the post first tended to upvote it (26-4 in the first few hours). These downvotes may represent many nonregular users brought in by the featured tag, and shouldn't be dismissed.
– Davy MMay 15 '19 at 14:49

40

I'm going to continue to call it mcve, because it is already etched into our community and it simply makes a lot more sense (imo). I frankly find it ridiculous that a change like this would be rolled out without any discussion, and then we are expected to just go with it and completely change our established behavior for no reason whatsoever. This entire thing leaves a very sour taste in my mouth, and the feelings I have toward the way SO has been managed lately are indescribable.
– GrumpyCroutonMay 15 '19 at 15:36

20 Answers
20

You haven't defended your claim

MCVE is an awkward name. The full title is long, and the initialism is... Also long.

No, it isn't. MCVE is incredibly short. The full title isn't short, but it's hardly a burdensome length.

Heck, I had to add a little blurb at the bottom just to help folks find it when searching for "MVCE". Turns out it's hard to have a discussion when folks keep forgetting the name of the thing they're talking about...

Your only real complaint is that people mix up the C and the V. Fine. I can agree that getting it straight is a mild annoyance. But if that's the problem you're trying to solve, just say so. Don't make up stuff about "MCVE" itself being too long or "awkward."

Even when people mix up the C and the V, that doesn't mean there is any real problem with communication. You haven't demonstrated any actual problem communicating about MCVEs.

Why did you have to add that note? Google brings up the MCVE page immediately when searching for "mvce":

My point is that you have failed to articulate the problem you're trying to solve. Instead, you're presenting the "solution" you've already arrived at, without delving into the problem and considering other possibilities.

There's a simpler option you didn't consider

The far simpler thing to do would be to popularize both MCVE and MVCE as valid representations of the concept. There's no reason why the C and the V have to be in that order anyway. Dealing with this common typo directly would be far easier than trying to popularize a new name and insisting everyone change a good name they've been using for years. If you can make help/mcve and help/min-reprex work at the same time, you can do this for help/mvce. Add a note to the page that it's also sometimes abbreviated "MVCE," and you're done with minimal disruption.

This change reduces the clarity of the term

I object to dropping the "complete" and "verifiable" terms. These terms are there to combat specific categories of errors when creating an example:

Complete: The code example should be complete is that it is fully functional. Another user should not have to add missing variables, functions, classes, etc. to make it work. They also shouldn't have to make guesses or assumptions about the environment the code is being run in; all dependencies and any specific environment conditions should be articulated. This is a common problem when users post questions.

Verifiable: The example should reliably reproduce the problem. Another user should be able to see the incorrect output immediately after they've executed the code. It should do exactly what the author says it does when they run it. It should not throw other errors that are not the subject of the question.

Minimal (for completeness): It should not be a code dump of 2000 lines. It should be a short, easily read block with as little logic and as few dependencies as possible. This reduces the number of possibilities other readers need to check to identify the problem.

Dropping these two words makes it more difficult to communicate the common problems that led to the creation of the term "MCVE." Having them separated out makes it easier for someone reading about the concept to understand its purpose and intentions. This is vastly better than "Minimal, Reproducible Example," which doesn't articulate these common errors as clearly.

You don't seem to have understood the term

It is worrying to me that you did not come to the realization that each word bore particular significance yourselves. It shows me that you didn't examine why each term was included originally. You did not take the time to understand the intentions of the people who developed the original name and understand what it was trying to communicate. Instead, you railroaded it into what you thought was important. This is a common trend among modern SO employees, and it undermines my trust in the organization. Doing that goes against SO's core values, both in terms of how to treat other people and in terms of improving your own understanding of a problem.

If you had approached Meta about this change before implementing it, any number of users could have explained this. By implementing it before coming to this understanding, you have again demonstrated that you do not value your established community's thoughts on these matters.

I know good and well why each section of the page is there; I've been editing it for five years now. And for five years, I've been regretting stuffing those section initials into the URL, because all too often folks throw around the initials instead of the relevant section name(s). I was aiming for a short little path name in the help center, but now I see "MCVE" popping up as far afield as Reddit without any context or link back... But until today, I couldn't change the URL without breaking thousands of outstanding links, so I had to just live with what carelessness wrought.
– Shog9May 15 '19 at 3:23

7

@jpmc26: "I object to dropping the "complete" and "verifiable" terms." They haven't been dropped. They're simply not part of the short form anymore. And it's not like they were part of MCVE if you didn't already know what it stood for. The fact that "reprex" is a term in usage among at least some subset of programmers for this exact same concept is enough to make it legitimate to substitute our made-up word for theirs.
– Nicol BolasMay 15 '19 at 3:25

48

@Shog9 "because all too often folks throw around the initials instead of the relevant section name(s)" Why is it the responsibility of a close voter to explain every last detail of what's wrong with a question someone has posted? It isn't. It's the author's responsibility to go read the page and figure out what's wrong. The whole point of having the page is so that users don't have to explain in detail to every question asker.
– jpmc26May 15 '19 at 3:28

23

@Shog9 "...but now I see 'MCVE' popping up as far afield as Reddit without any context or link back..." Do you think people can't Google the term? Clearly, it's a widely known term. Why is that a problem at all? How is this even relevant?
– jpmc26May 15 '19 at 3:31

7

I don't care if close voters skip explaining their votes altogether, @jpmc26; if a close vote needs an explanation, we've screwed up the close vote to begin with. There's a close reason that links directly to this page already - if you have to post a comment with another link, then we have bigger problems than the term used in the URL.
– Shog9May 15 '19 at 3:32

3

@Shog9 "But until today, I couldn't change the URL without breaking thousands of outstanding links, so I had to just live with what carelessness wrought." It's not carelessness to choose your terms carefully. The fact you even think that the name is reflective of carelessness just proves my point.
– jpmc26May 15 '19 at 3:33

10

@Shog9: The reason people make those comments is because the OP won't know to edit their post until it gets closed for that reason, at which point it's more-or-less too late. Indeed, I've seen people delay providing a close vote for precisely this reason: so that the OP can have time to fix their question before it gets closed.
– Nicol BolasMay 15 '19 at 3:33

10

@NicolBolas Actually, yes, I am aware of it's origin here on SO. It was chosen carefully, and that's evidence by the fact it was a revision of SSCCE. You don't revise an existing term to increase clarity out of "carelessness."
– jpmc26May 15 '19 at 3:38

8

@jpmc26: You realize that Shog is the person who invented the term MCVE, yes? You cannot argue that a term was invented carelessly or not with the person who invented it. By definition, they know more about its invention than you do.
– Nicol BolasMay 15 '19 at 3:40

15

I literally just took the initials of the first four words in Andrew's first draft and shoved 'em in the URL, @jpmc26. I didn't give a moment's thought to how that decision might play out over the years, I just wanted a URL to link to and took the easy road. I was far more concerned with the content of the page at that point, and when I regretted it a few days later it was already too late.
– Shog9May 15 '19 at 3:41

21

@Shog9 The fact you initially "regretted" it doesn't mean anything. You still haven't demonstrated that it's actually causing any problems. The author who did develop the term clearly thought it through very carefully.
– jpmc26May 15 '19 at 3:44

4

By the way, I covered the entire history of this page, with citations, in the announcement above. Most of it's in the first paragraph. I'm not sure how much I want to bother reiterating here.
– Shog9May 15 '19 at 3:45

46

@Shog9 FWIW, the term "Min-reprex" doesn't explain anything either; I thought it was a mathematical term until I read your post. Not only is it longer than MCVE, but reprex isn't a word... it's parts of two words arbitrarily smashed together. "Min-repro" (for one example) would be shorter than "Min-reprex", and better than both "Min-reprex" and "MCVE" in that you can guess what it means without having to google it. It also has the added benefit of being a common abbreviation for reproducible and is already used here in the phrase "no repro".
– TylerHMay 15 '19 at 13:44

15

@FélixGagnon-Grenier The difference is that regex is well-established already, and doesn't have any competing shorthands. "Min-reprex" (not even just "reprex") is a new attempt at changing an existing shorthand, so it has different barriers to entry. It's also a bit of an apples to oranges comparison; regex is an amalgamation for an algorithmic approach to pattern matching across various programming languages, reprex/min-reprex is a less elegant amalgamation of a subject matter-agnostic approach to getting assistance.
– TylerHMay 15 '19 at 15:54

15

@FélixGagnon-Grenier For me, a change from MCVE to anything else has to be at least: A) not longer, and B) not more confusing/abstracted to be considered worthwhile. Min-reprex or even just reprex fails both of those absolute minimum criteria, let alone whether you think it might be a better term (I don't).
– TylerHMay 15 '19 at 15:55

Min-reprex will further confuse non-English users

We already deal with welcome broken English as it is. Let's not break it more intentionally.

We already have an ecosystem for MCVE

In addition to the page, we have the [mcve] shortcut for comments ([minreprex] seems like a step backwards) and the closure reason

Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: How to create a Minimal, Complete, and Verifiable example.

If we're going to simplify, just go with Reproducible Example

Yes, Minimal is important (walls of code suck). So is Complete and Verifiable. But Complete is implied by Reproducible, as is Verified. I think you're right that reproducible is probably the key word here, but "reprex" doesn't communicate that. People have to understand reprex first and then make it reproducible. So let's just communicate that up front. Here's how I would write the closure reason

Questions seeking debugging help ("why isn't this code working?") must include a minimal example to reproduce the problem. Questions without a clear problem statement, and/or a way to reproduce the problem, are not useful to other readers. See: How to create a Reproducible Example //stackoverflow.com/help/reproducible

No more reprex, MCVE or anything like that. Help us reproduce your problem. 99% of the time that's what I have to explain at work (IT, coding, life in general, etc. needs reproducibility).

and [mvce] for those who cannot remember the order
– Antti HaapalaMay 15 '19 at 9:54

56

I'm a native English speaker, and Reprex still confuses me. I've read the entire post, know that it's just the same MCVE as always, but when I read it, I don't recognize it as anything; not an acronym which does stand for something else, and not a word which stands for itself. I've read a bunch of comments and my first reaction is to read it as "Reflux" misspelled rather than giving it any meaning.
– Davy MMay 15 '19 at 11:15

@FélixGagnon-Grenier I definitely wasn't around back then but I'd assume people knew what "regular expression" is and that's definitely a cumbersome term to keep throwing around, so it seems natural that it'd eventually get shortened. And "regex" is not very ambiguous when in context. However, this change is trying to do the opposite - starting with the shortened term "reprex" to popularize the longer one. If you were told yesterday to provide "reprex" would you honestly instinctively think it's a "reproducible example"? I'd imagine you'd google it and discover...a library. Not very clear.
– VLAZMay 15 '19 at 14:20

2

@FélixGagnon-Grenier so yesterday that would have been completely clear to you? EDIT: and I'd argue that it is ambiguous because it exists and it means something different.
– VLAZMay 15 '19 at 14:25

2

@FélixGagnon-Grenier "you need to provide a reprex" doesn't sound like somebody misspelled regex or maybe meant some weird regex dialect to you? How? Because THAT is the context you would get - anything more and you'd be explaining what the term is. Honestly, if somebody told me "give me reprex" I can see this also meaning "give me <some medicine>" which would be weird but I'd assume it's a play on "chill pill" or something. If I google it and find it's some library I'd be even more confused.
– VLAZMay 15 '19 at 14:43

1

@FélixGagnon-Grenier "Minimal Complete Reproducible Example is already in our language. Reproducible Example is already in our day to day language" I'd like to come back and address this, too - really? It's Minimal, Complete, and Verifiable example. I can't think of many (any?) times I've seen somebody use "reproducible example" on SO. I can't say it hasn't happened - it seems like something that can come up but it's far from regular. Definitely not daily - doesn't come up often outside SO. You yourself haven't used it within the last two years. Hardly "common".
– VLAZMay 15 '19 at 14:51

1

@VLAZ heh, indeed. I misremembered it. So much for MCVE being clear at all. Imagine that, I've been aware of, and using regularly, the term for years, and still the letters get mixed up? How is that better than reprex?
– Félix Gagnon-GrenierMay 15 '19 at 14:54

2

@FélixGagnon-Grenier again, the "regex" usage rose up organically, it wasn't forced. And you wouldn't get confusing information if you google "regex". Moreover, pretty much any programming language calls the construct some variation of "regex", so even before coming to SO or some other context you are likely to encounter that term. Not so with "reprex" - you'd only find it on SO or if you're within the R community. There is hardly a valid comparison between the two.
– VLAZMay 15 '19 at 14:59

2

@FélixGagnon-Grenier Not really, because what you just said helps my argument. MCVE has been used for years, it's well-established. Are we changing MCVE just for the sake of changing it? I'm not one to "fix" things that aren't broken, and why should the community be forced into this change that such a huge part of the community disagree's with? IMO there are much bigger fish to fry instead of wasting time with nonsense like this which effectively does nothing to better the community but in fact makes it worse by trying to change something already so deep in the community.
– GrumpyCroutonMay 15 '19 at 20:54

In addition to everyone else's objections -- all of which I agree with -- if you google "reprex" you get a bunch of stuff about a specific R package and its Python analogue. This will almost certainly be diabolically confusing for anyone who comes to Stack Exchange with questions touching on data science or machine learning.

If they're asked for a 'reprex' they'll likely google the unheard-of term, see that it's a package, install the package and start going through the documentation to see how it's related, and so on.

This is IMO an even better argument against "Min-reprex" than the fact that the term is just extermely awkward. Repurposing a word which already has a ton of google hits to very specific things in the context of programming (R package, python package, R documentation, Rstudio FAQ, ...) is simply a bad idea. It will either make search results worse for SO users unfamiliar with the term, or if the SO pages eventually outrank the current results, for everybody who currently uses the term.
– l4mpiMay 15 '19 at 11:13

1

To me, this argument alone is enough to drop the "reprex" term altogether. Creating confusion when we ask an user for a "reprex" is about as far as we can get from the purpose of asking for said "reprex".
– Mathieu VIALESMay 24 '19 at 15:08

And now you can clearly understand it's not about regex or another brand of vacuum cleaner.

Well, we're dealing with neologisms anyway, so it's the usage frequency of any of those formulations that will decide the outcome. Not that reprex is bad, maybe it's acceptable, but it could have been worth having an open poll before renaming the page.

And for most people to understand it, maybe we could have the URL being a full title:

"it's the usage frequency of any of those formulations that will decide the outcome" The usage frequency of "repro" is precisely zero, while the usage frequency of "reprex" is higher than that. Do a Google search on it, and you'll find a small group of programmers who settled on this term for this concept.
– Nicol BolasMay 15 '19 at 3:28

2

If you want to call it a "Min-Repro" or a "MRE" or even better a "Minimal, Reproducible Example" go right ahead. I'm perfectly happy to see folks use the title of the page instead of the abbreviation, since we shouldn't need a page just to explain a help topic. The value of Reprex over both MCVE and Repro is that it is both sufficiently unique and has seen enough use outside of SO to actually stand a chance of meaning something to new askers... Who, after all, are the folks it is intended to be used by.
– Shog9May 15 '19 at 3:30

I don't hate that idea. But I also like short paths. I nearly always type help center URLs from memory.
– Shog9May 15 '19 at 3:51

30

@Shog9 You just said that MCVE is widely used outside of SO. What evidence do you have that users aren't encountering it elsewhere? I have never encountered the term "reprex" before. I doubt it's any more widely known than MCVE.
– jpmc26May 15 '19 at 3:56

I actually suspect you're right, @jpmc - I've been shocked by just how common the term has become. But that's a problem: it's jargon for the folks who most need to know what it means. The last change I made to the page prior to today was adding information on runnable snippets... The utility of the page lies in getting folks to provide a demonstration of their problem, not teaching them a new word for "code".
– Shog9May 15 '19 at 4:08

34

@Shog9 ...And "reprex" is not jargon? Wat. If you're going to use jargon, at least "MCVE" has the benefit of emphasizing its intentions and connotations. MCVE becoming a common term is not a problem in any way, shape, or form. All this change does is add even more jargon that's harder to understand.
– jpmc26May 15 '19 at 4:10

Not sure about this suggestion. "reprex" sounds like some weird mutation of "regex" to me. While "repro" seems like you've misspelled "repo". If I didn't see this meta post and I was asked "can you give a repro", I'd assume they are asking me to set up a GitHub repo with the code or something.
– VLAZMay 15 '19 at 5:26

4

@NicolBolas Sorry, I don't buy that. Not only is it especially not appealing to me to go with a confusing neologism "because a small group of programmers" 'once decided on that, but when I decided to bite on your Google challenge, I found the exact opposite of your claim: books.google.com/ngrams/…
– TylerHMay 15 '19 at 13:48

6

@NicolBolas And if you meant just purely google search, I found 38,400 results for "reprex", and "42,300,000" results for "repro". Tell me how "reprex" is higher usage frequency, again?
– TylerHMay 15 '19 at 13:50

I mean I got to agree that at first sight when you would look at the abbreviation, it looks a bit strange and you would require to look it up to understand its meaning, but once looked up, makes sense. Simply replacing the text with e.g. "example" with an anchor leading to the definition of MCVE would suffice. Even easier would be, adding a tool/button which could generate this automatically for an author of a given answer, question and/or comment. But why change things if those work just fine?
– BarrosyMay 15 '19 at 8:50

1

@Barrosy "I mean I got to agree that at first sight when you would look at the abbreviation, it looks a bit strange and you would require to look it up to understand its meaning" - and reprex doesn't?
– LankymartMay 15 '19 at 19:21

1

It does not make sense at all if you compare the it to the description of MCVE and the reason for it being abbreviated. @Lankymart It does not make sense because MCVE for as far as I know worked perfectly fine and like I said, why fix something that ain't broken?
– BarrosyMay 16 '19 at 6:43

The original new version contained "MVCE" along with "MCVE", which I thought was reasonable to help readers seeing the old name find it via google. Apparently this was a mistake.

So you're unhappy with the old name because it's "confusing" and "awkward" and not meaningful enough, and hard to google in its own right (trivial to google with the old SEO boost of the old MCVE page). So you introduce a new name that's harder to say, has little visible meaning, contains a dash, and remove the original SEO trick so that people searching for "MVCE" won't even find it. Because this is what will happen.

You dislike the current situation where people might (don't) get confused about what they are told, partly because people get mixed up between MCVE and MVCE (presumably, I've yet to see this). So you introduce a third and weird name. Now you will have three names in circulation, only two of which will lead the reader to the corresponding meta page. Success I guess.

To be fair, I think the mistake was only after the edit. Before the text said "You may have been told to include an MCVE by some helpful commentary, or perhaps even an MVCE if they were rushed", but the new, post-edit text wasn't attempting to highlight the common typo. Not that it changes anything, the common typo should obviously remain in some form to keep the page near the top of Google for 'MVCE'. Hopefully removing it was simply an oversight and it will be put back in. I mean, hopefully all of this will be reverted, but...
– DaveyDaveDaveMay 15 '19 at 10:11

@DaveyDaveDave unless I'm misunderstanding you now, that's what I was trying to say with my first sentence. The "original new version" was the one that contained MVCE, but then Shog "fixed it" as per the comment.
– Andras DeakMay 15 '19 at 10:13

4

You're right, but in context, in the "original new version", "MVCE" was just a typo - the sentence it was in wasn't attempting to demonstrate that the initialism is sometimes presented in the wrong order, it was just using it as a term: "MVCE was also the former name of the page you're reading now". In the "old version", it was part of sentence saying "you might see it like this". Presumably that was to clarify any confusion and for SEO. I totally agree with your point though - in some form the typo should exist in the page.
– DaveyDaveDaveMay 15 '19 at 10:23

I don't like this xkcd because it gives no answers.
– ivan_pozdeevMay 20 '19 at 13:12

1

@ivan_pozdeev what do you mean? What answers? It's not meant to give answers, other than "trying to fix 14 standards with a new one will only give you 15 standards".
– Andras DeakMay 20 '19 at 13:30

1

@AndrasDeak And that is horrendously wrong -- that's why I dislike it. It basically implies: "The problem is unsolvable. Go kill yourself, you can't win." The worst possible advice to give. It is possible to solve it but the focus needs to be on the people who use the existing standards: whatever you suggest must be a "clear winner" for them for some reason. It's not necessary to cover all user cases, either: use case requirements may be so different that it's impossible (or at least unclear how) to cover them all and maintain ease of use.
– ivan_pozdeevMay 20 '19 at 13:41

1

@ivan_pozdeev I think of it more like a cautionary tale than a prophecy.
– Andras DeakMay 20 '19 at 13:43

@AndrasDeak cautionary tales are rubbish, specifically because of that "you can't win" implication. The real answer is "you can win but you need to be careful so you don't waste time making the same mistakes as your predecessors (but there's nothing wrong with making new, yet unknown ones)". They miss the "you can win" part, and that poisons the whole aesop. I fell victim of that omission and it tooks me many years to come to it myself, and I cannot forgive the fools who preach this lie for that.
– ivan_pozdeevMay 20 '19 at 13:51

Why?

Of all the things that are a problem on Stack Overflow, of all the things that need fixing, of all the things that could be fixed...

You chose the one that is literally the opposite of a problem. And then you made it a problem, and invented a terrible solution for this nonexistent problem. And here we are.

Mere words cannot convey how absolutely asinine this suggestion is. It is not just bad, it is not just useless, it is an extremely bad idea. Attempting to imagine the mental gymnastics that went into justifying this, is headache-inducing.

Every time I think the disconnect between Stack Overflow and its community cannot get any wider, something like this happens. You guys need to stop, get out of your echo chamber, and actually ask what real human users want and need from the site, not hypothetical fairy users from Saturn.

@gnat In a way, I stand corrected. Yet, I'll seek to read the opposing point of view by the fairy users from Saturn when I have the time.
– E_net4 is downhaustedMay 15 '19 at 12:45

6

Calling something pants on head [...] is probably undermining your point by quite a bit and will most likely cause people to dismiss it for lack of politeness. I edited it out, partly because I suspect that the post would otherwise be deleted or edited anyways as per the code of conduct.
– MagischMay 15 '19 at 12:53

2

Also, the rest of this answer is probably going to have an equal and opposite effect to the intended one. Imagine if someone said what you just said, but to you about something you worked hard on and are passionate about. Can you imagine a framework in which that could result in anything else then a doubling down type of reaction? I can't. So what is the reason for posting this? Just venting or actually wanting to change something, because if it's the latter this needs further work.
– MagischMay 15 '19 at 13:03

32

@Magisch, I think the tone of this answer perfectly represents the anger and contempt that much of the established community has for recent changes. The fact that nobody seems to be listening will only increase the anger and contempt. Constructive suggestions seem to be ignored, so the next step is anger. After that, people leave.
– DaveyDaveDaveMay 15 '19 at 13:27

@Magisch, you're right, of course. Still though, I can't blame people for feeling like this, especially when far less constructively-phrased rants on Twitter/Reddit seem to get results.
– DaveyDaveDaveMay 15 '19 at 13:39

15

This answer cracked me up. I needed a laugh. Agree. For the love of all things helpful, make it easier to close and delete stuff! I know they want to get better quality on the site, but in the meantime, while they're trying to make the site more user friendly, at least give people the tools to keep it clean.
– YvetteMay 15 '19 at 14:54

2

I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a [change].
– Lightness Races in OrbitMay 15 '19 at 23:27

7

I agree; this really feels like a "ha ha, the community is pissed at us and feels really disconnected from the company, so much so that all is lost.... so let's have a real laugh about it on the way out by doing something like this" FML
– Lightness Races in OrbitMay 15 '19 at 23:28

1

@Magisch Although you're not really wrong in the general case, I find it hard to believe that somebody could "work hard on" or "be passionate about" an acronym.
– Lightness Races in OrbitMay 17 '19 at 1:45

@LightnessRacesinOrbit I don't knock the amount of work and understanding that has to go into UX research and related changes. I can't judge how substantive this work was considering it's not in my area of expertise.
– MagischMay 17 '19 at 8:17

There need not be any other name for MCVE. The thing about MCVE is that it is an initialism not used for any other purposes, so first occurrences of mcve in anywhere in comments, meta posts and alike could be linked to /help/mcve as is. In addition to that, for those that do not remember whether it is mcve or mvce, both orderings could be accepted. Try to do that with reprex.

If anything, the title could have one more word added to it: yet, to signal the contrast between minimality on one side and completeness and verifiability on the other.

Seriously? "Reprex"? Is supposed to be less awkward than MCVE? You missed the date by about 6 weeks.

I would write more text, but I don't even understand the problem. [MCVE] unfolds into a real, almost full sentence and you can write a full English comment without ever even seeing the term MCVE. It's in place and established in the community, and it's working. You want to change its name from an obvious abbreviation, to something that sounds like it needs health insurance to cover its costs. Please don't. Just don't.

Cody Gray wrote in a comment above: "You’re a month and a half late here". And you wrote: "You missed the date by about 6 weeks". Is that a meme or is it related to April fool jokes?
– CœurMay 15 '19 at 9:45

31

It's about Aprils fools... if it had been 6 weeks ago on April 1st I would have laughed about it and thought it was a good one.
– nvoigtMay 15 '19 at 9:49

4

Side effects include virginity? I need some reprex!
– Davy MMay 15 '19 at 11:18

2

@DavyM be careful with the dosage - you might get vomiting or your mom.
– VLAZMay 15 '19 at 14:24

2

Reprex sounds like the brand name of a competitor to Durex. ;)
– PM 2RingMay 16 '19 at 7:39

2

@PM 2Ring only reprex is destined to fail as "Rep" stands for reproducible.
– NullPoiиteяMay 16 '19 at 10:33

This entire effort seems to me to be misguided. The problem isn't that MCVE is too wordy or otherwise unknown to new users. The problem is that people commenting about it aren't being specific or direct enough when they drop a boilerplate comment about needing an MCVE.

Most of the time, what this boils down to is that the problem is not sufficiently reproducible with the current amount of information in the question, or that there is too much code to properly reproduce the problem in isolation.

There isn't a single short hand phrase you can choose that will have the desired effect of condensing individualized and complex fact specific advice into a shorthand. So I propose we axe that endeavour right out.

Instead of calling on people to submit an MCVE, rename the article to something more descriptive and outwardly helpful like "Help us understand and reproduce your problem" or similar. Link to that only in a full sentence explaining why, not just that you need a way to reproduce problems.

People (and by extension askers) can be appealed to effectively via their self interest. The message we need to convey isn't

You need to add an MCVE (link to the article)

Because that frames it as if it's something that the OP does for our benefit instead of something that the OP does because it helps them get their solution faster (or at all)

We need to reproduce your problem to start working on a solution, you could work on #ProblemAreaTheQuestionIsUncleaIn or #''. Here (link to the article) is a guide to help you do that"

Soul searching for a better word seems to me like micro optimization and missing the forest for the trees.

It seems the proposed solution here would require much more lengthy comments. Not sure, enough people have the patience for it. I think you say it nicely in the second paragraph: "The problem is not sufficiently reproducible with the current amount of information in the question, or there is too much code to properly reproduce the problem in isolation. What we need ultimately is something like a meaningful example (link to mcve)."
– TrilarionMay 15 '19 at 19:39

3

@Trilarion I think the lengthy comments issue can be addressed by a larger menu of prefab comments and an easy way to select them. I'd be more inclined to comment helpfully on code dumps if I could just click "Prefab Comments" > "Example" > "Code Dump" to auto-insert a comment (written by someone more patient and eloquent than I am) suggesting the OP put more effort into minimizing their example code.
– manvetiMay 15 '19 at 19:56

2

Indeed, when I leave a "provide an MCVE" comment on a question, I almost always couch it in terms of "We can help you better if you ..." or "You'll get better answers if you ..." or sometimes simply "we don't have enough information to answer the question. Please ...". The point is exactly to convey that it is in the OP's interest to do it.
– John BollingerMay 15 '19 at 22:26

Honestly, changing it to another in-house (or small part of the programming community) term is not the solution. It's yet another term newcomers don't understand and regular users will take time to adapt to. It needs to be simple as possible. We have so much trouble even getting people to post answers in the answer box, let alone craft a decent question. Keep it simple. (imo)

The only noun in the phrase Minimal, Verifiable, Complete Example, is Example. The rest is describing how the example should be.

Provide an Example (or Sample) - then explain it need to be Minimal, Verifiable and Complete.

So the page can read something like:

How to Provide an Example

bla bla bla bla this is what we need to help you... whatever, more
blas

I mostly participate on other network sites, and I rarely see MCVE used. "Sample" or "example" are most common and people get it. As for "reprex" it may be used in R community but to be fair stackoverflow isn't just about R alone; I've never heard of it in Linux community, nor in Python context, nor in C context.
– Sergiy KolodyazhnyyMay 15 '19 at 5:17

5

@NicolBolas yet only a small fraction of the people that now know what a MCVE is
– MagischMay 15 '19 at 9:51

8

@YvetteColomb You don't need to use R to be confused by a bunch of technical R topics when you put "reprex" into Google, trying to figure out what it means. If you're not using R it means someone's likely to just assume the person made a typo or doesn't know what they're talking about by bringing up some unrelated R concept on their JavaScript question.
– ServyMay 15 '19 at 13:26

9

@NicolBolas Comparing the number of people who use reprex now in the R community to the number of people who used MCVE before it was invented is absurd on its face; the usage of both terms at the same time (e.g. before their invention) was of course zero. If you want to compare the number of people in the R community who use the term "reprex" now to the usage of MCVE, you have to compare it to the usage of MCVE now, too, not some cherry-picked time in the past.
– TylerHMay 15 '19 at 13:54

6

@Nicol: I get 61k hits on Google for "reprex", and 941k for "mcve".
– Cris LuengoMay 15 '19 at 15:35

3

"Please provide an example (some link)!" Wouldn't this kind of get reactions of the sort of "But haven't I already given an example"? And then one might be stuck in iteratively explaining the M, the C and the V in "example".
– TrilarionMay 15 '19 at 19:44

4

@NicolBolas "More than the number of people who used MCVE before SO created the term" Even if that were so, Stack Overflow has since then brought it to literally millions and millions of people. How many people had heard of it ten years ago is utterly irrelevant.
– Lightness Races in OrbitMay 15 '19 at 23:29

"...the exact integration problem..." Probably right after the wizard asks "do you have a debugging question, if yes then we would definitely need a MVCE from you ASAP!!!"
– TrilarionMay 15 '19 at 19:34

Think of these posts. Think of multiple close-worthy questions hanging open and slowly dying without any meaningful feedback, and think of how having these serves one purpose: to keep askers oblivious of what they need to improve.

Maybe people have a problem learning about MCVE not because it's hard to pronounce, but because the system doesn't let them learn that they need it.

If questions lacking an MCVE were closed with an appropriate reason and in a timely manner, askers would learn themselves what they need to do. They would learn because the system would tell them what they need in a clear and timely way.

They would learn even if you renamed it to jIyajbe'. Without that people just won't learn no matter how you name it - because they won't even see that they need to learn.

well, in rust questions we get some folk that always refuse to make mcve (on question that require it ofc), we got some issues that have been posted on meta and sometime on reddit. Everytime, other people tell then they are wrong but their peoples refuse to learn.
– StargateurMay 15 '19 at 12:39

5

"Have you considered that you may be attacking the issue from the wrong angle?" - It's a well known fact that SO usually attack an issue from the wrong angle. Just another in a long line of bad decisions, nothing new here.
– LankymartMay 15 '19 at 19:17

1

Hah, I had a feeling that was Klingon before hovering over the link. Nice.
– Lightness Races in OrbitMay 15 '19 at 23:30

I just realized what this change reminds me of: people who advocate plain-English programming languages. They look at existing programming languages, see all the funny symbols they use, and think that if they replace those symbols with English words, programming will become far easier.
– MarkMay 16 '19 at 21:33

@Stargateur You may be right, but those people who refuse to help us help them are just unhelpable and won't attempt to learn no matter what we do.
– GrumpyCroutonMay 17 '19 at 12:40

So, I kinda jumped the gun here - this would've been a heck of a lot easier if I'd posted before the URL changes went out. I don't really have a good excuse there; I got sloppy. Still, y'all came through with a lot of good feedback in spite of me, and it'd be a shame to let that go to waste - so let's see if we can fix it...

After chewing on this discussion for a bit, I found two answers especially insightful:

I think you're right that reproducible is probably the key word here, but "reprex" doesn't communicate that. People have to understand reprex first and then make it reproducible. So let's just communicate that up front.

And for most people to understand it, maybe we could have the URL being a full title:

/help/minimal-reproducible-example

and everything else (mcve, reprex, ...) being redirects to such clear title. This is a common practice for instance on Wikipedia where they define shortcuts for frequent URLs.

This... Probably should've been obvious to me, but I was still stuck on the notion that I needed a short URL and didn't consider that it wouldn't need to be a short canonical URL. Especially if we had plenty of magic shorthand links.

I did a bit of quick & dirty text analysis of comments mentioning / linking to MCVE over the past year - the other term that jumps out is simply "example" - mostly, but not entirely, because a fair number of folks don't use magic links - they type a term or title and the help page's URL.

Based on this, my recommendation going forward is:

Rename the slug to minimal-reproducible-example - no more guessing at what it links to.

Create a redirect from /help/reprex AND /help/mcve to /help/minimal-reproducible-example

Create magic links for [reprex], [repro], [mre] and maybe [example] that result in a link to /help/minimal-reproducible-example

This should leave folks with a host of convenient, easy-to-remember ways of linking to the page, while making the page URL itself as descriptive as the title and getting rid of the need for invented terms altogether.

Thank you for taking a step back to take the time to listen to and consider the input here. What you've detailed in this answer is a much better way to handle the issues that precipitated this change and those issues described by people here in response to the announcement. This should allow both the continued use of MCVE and the progressive adoption of wording that might be more intuitively understandable to those who have not previously encountered that acronym.
– MakyenMay 22 '19 at 4:15

1

Ultimately, the goal is for users to create good questions, which can be answered. Clearly communicating what is needed from the OP in order for that to be possible, in a way that is understandable to them, is very important. If changing the wording that's generally used from "minimal, complete, verifiable example" to "minimal, reproducible example" helps communicate what's needed in order to be able to answer a question, then our making that change is a very good thing. As these things tend to develop, I expect MRE is much more likely to see wide adoption than other non-"MCVE" suggestions.
– MakyenMay 22 '19 at 4:16

13

Given that one of the ongoing issues with MCVE was that a significant amount of the time people use MVCE instead of MCVE, it seems like it would be a good idea to also have /help/mvce be a redirect to /help/minimal-reproducible-example, and have [mvce] as a comment shortcut. While this is commonly a typo, and is likely to see declining usage, it's a low-effort change that will make people's lives easier, from time to time.
– MakyenMay 22 '19 at 4:44

3

Thanks for owning up Shog9. Great to see that Meta feedback isn't always discarded as "grumpy opd Meta's". I fully support this way forward.
– LuuklagMay 22 '19 at 5:40

5

You might going to hate me for this but I suggest you re-add the misspelling of MCVE and the new shorthand terms in the help page as well, for searchabiity. So please bring back "MVCE" and add "mre" and "repro". I noticed that searching for "example" does put the correct help page on top of the result so that is all good.
– reneMay 22 '19 at 7:21

2

I support this way forward as well, much more than previous dicussion. Thanks Shog!
– GrumpyCroutonMay 22 '19 at 20:09

4

I've stuffed as many terms into that footer as I could think of, @rene. Why the hell not...
– Shog9May 22 '19 at 20:22

I feel like a lot of the frustration from this change is that it is being delivered to us in the fashion of: "Hey, I already did this thing."

Whereas most of the steps in the history of the MCVE solicited community involvement, or were initiated by community suggestions.

Essentially, what's happened is that something that was community-driven has had control reverted to one employee, and the community is being told that their involvement is no longer relevant.

I personally have no cards in the specific matter of MCVE v Reprex, but I find that the model being used to make this change has become part of a frustrating pattern for SO/SE. This alone makes me bristle against the change. I prefer to cast my votes before the changes, instead of after.

Unfortunately "the community is being told that their involvement is no longer relevant" isn't exactly breaking news. There have been very clear signals for a few years.
– Andras DeakMay 15 '19 at 15:40

18

SE tried that with the New Contributor icon. Feedback was almost universally against it (even with the positive votes). It happened anyway. I'm wondering what good talking to your community does if there doesn't seem to be any listening going on.
– fbueckertMay 15 '19 at 15:41

5

@fbueckert they are talking to us, not with us. They are informing us of the change. Otherwise someone would have to ask where the MCVE link has gone.
– Andras DeakMay 15 '19 at 15:42

6

@AndrasDeak Yup. Communication broke down quite some time ago, and this continues to reinforce that the community isn't welcome to participate in changes.
– fbueckertMay 15 '19 at 15:42

10

@fbueckert as long as "people on meta are a bunch of toxic evil people who are an annoying minority" is a legimate view within the company it's unsurprising if they don't ask that toxic bunch for advice (instead they can just look for feedback on twitter)
– Andras DeakMay 15 '19 at 15:44

3

@AndrasDeak While I agree, I don't think having this conversation in the comments of an answer is all that constructive. If you want to take it to chat, I'm available.
– fbueckertMay 15 '19 at 15:46

The only problem I've encountered with MCVE is people using the initialism without linking to anything. Since it doesn't mean anything as is, anyone not familiar with it would need to go and search for it.

Using [mcve] expands it to the full name and adds a link, thus avoids this problem.

If we were to use "reprex" (regexp? repex? reprox? Is that a dinosaur representative?), this would have the same problem: "reprex" also wouldn't mean all that much as is to most. How many people instantly knew what it meant based on the title of this question? Certainly not me. And that's with the context of seeing the familiar MCVE right next to it.

Based on how awkward it is to say (see also: the comments), it doesn't seem particularly elegant either.

I could get behind using "reproducible", as this is a common term in programming, but I'd rather just have it be MCRE then. Or MRE, but you did keep "complete" in a bunch of places on that page, including the main headings, so clearly the "C" has some value.

Making the magic comment links much more prominent and well-know would have helped way more than how much harm I expect this change will do.
– Andras DeakMay 15 '19 at 12:26

2

@AndrasDeak making magic links more prominent is going to be very useful. I didn't even know about the [mcve] magic link until I saw this post. I was only vaguely aware of the tag magic links and only because I posted a meta question for some tags and a helpful person edited all my direct links to the tags to magic links. Heck, I didn't even know they are called "magic links". After I saw the post this morning I finally had the knowledge of their existence and the vocabulary to look them up
– VLAZMay 15 '19 at 14:34

1

@VLAZ FYI, you can click on "help" when editing a comment to get to a list of all (or most of) the magic links (although they're actually only called "shorthand links" there), and I would recommend any regular user read through that and the other help center pages at some point. I wouldn't know how to make it more visible without giving it more visibility than would make sense (given all the other important stuff), except maybe by displaying the help by default with the option to hide it (as a global option).
– Bernhard BarkerMay 15 '19 at 17:10

5

Maybe MCVE and MVCE in comments should automaticaly be changed to [mcve] to always have a link.
– TrilarionMay 15 '19 at 19:36

I feel this overlooks the advantage MCVE has in non-regular user recollection.
Acronyms are frequently taught as learning aides in schools, take PEMDAS/BODMAS, SOH CAH TOA, among others. It's easier to learn the acronym and from there recall the words behind the acronym. Leading to an increase in users following the rules.

As I'm a non-regular to SO, I forget the acronym and remember it as "MVC???". From here I can then expand it and get "Minimal, Verifiable, Complete" which allows me to ask better questions, as at least I've got 3/4 things correct.

With low exposure I can only see myself remembering 'Min ReaperEx'. Which makes working back a real pain, and only tells me one thing.

I also don't see how having something that rolls off the tongue helps the majority of the users of the site. I've not, verbally, spoken to anyone from any SE site.

This only helps SE staff that think MVCE is awkward to say. And given that the first section of my answer doesn't affect SE staff, I can see why this would be a cute benefit internally. But I don't see why it not internal only.

You may have been told to include an MCVE – Minimal, Complete, and Verifiable examples is what they were referring to. MVCE was also the former name of the page you're reading now before it was renamed to Minimal, Reproducible Example (or “reprex”).

I think you mean this:

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 before it was renamed to Minimal, Reproducible Example (or “reprex”).

fixed, thanks - had that in there originally to catch typos, but now it's just weird
– Shog9May 14 '19 at 22:50

6

Don't you want to keep the common typo 'mvce' in there somewhere for precisely the reason you mention about people mistyping it?
– DaveyDaveDaveMay 15 '19 at 7:50

1

@DaveyDaveDave The misspelled mvce could be added in invisible ways that still get indexed in the crawlers, without visibly making the typo.
– Davy MMay 15 '19 at 11:20

@DavyM - agreed, although (1) I think SEO-y stuff works more consistently if the text is visible, but I know nothing about that at all, and (2) presumably it hasn't been done, and maybe it's easier to just edit the text to include the typo.
– DaveyDaveDaveMay 15 '19 at 12:04

Unfeaturing this after a day - got plenty to chew on, and hopefully most folks interested have seen it by now. Big thanks to everyone who responded - lotsa good ideas and fair critiques, will think about this for a bit and discuss more later.

This is asking for a blunt statement: we really don't want to discuss this matter any further. All of the necessary issues have been outlined and I don't think there is anything else to "discuss more" about. A tiny summary of all answers below:

MCVE is already a fairly well established term, if not as a consequence of the site's own nurturing, with a higher count on search engines than most.

Awkwardness is subjective. Even the suggested name has its own problems. Too many folks consider Min-Reprex (or just Reprex) more awkward, or just a bit too close to "regex".

The name Reprex is also tightly related to specific packages for constructing reproducible examples, but it's not a common expression across many technologies. Searching for "reprex" is more likely to confuse people than searching for "MCVE" at this point.

And most important, it's trying to solve an XY problem. What we really want is better guidelines and tools that help users understand what really makes an MCVE, and how to make one. In the Rust tag for example, we have gathered a list of common tips in the tag info wiki. More ideas may come from the concept of (min-)reprex in R, but it doesn't mean we have to adopt that specific name.

And meanwhile, there are so many other requested features (yet never tested, even if for a few days), totally worth trying out, that it makes no sense why this one in particular had to be prioritized and become part of the site before we even had a chance to provide any feedback.

It's high time we propose this change to be rolled back and just call it a meme day.

They can use whatever they like, but hopefully we can leave R (and it's interesting terminology) to the Mathematicians and Graphics Programmers who use it and keep something clearer here for everyone else
– Nick CardosoMay 15 '19 at 21:05