8

Regarding this answer:

I think you should reconsider the idea of several people live-editing a single code file. That may be great when teaching or pair-programming (ie, working on the same thing), but not for working on different things. You will step on each others' toes to a terrible degree and not be able to get any work done. At essence, you will have the same code conflicts as when doing a "merge" in a VCS, but you will be having them constantly. You will hardly be able to compile the program at any point in time, much less test your own work, because of other people's half-finished code. You'll also find it more difficult to benefit from IDE hints, error squiggles, code completion, etc.

...

It's a "You shouldn't do this because X, Y, and Z" answer. I can see three points about this off the top of my head (meaning they may be wrong):

  • It doesn't provide a real recommendation for software
  • It does provide a sort-of alternative, ("break up the work"). This still isn't a software recommendation matching the requirements in the question, but...
  • ... It might still be valuable for someone coming off of Google

How should we handle these types of answers?

| |
8

I've found time and again that a good recommendation question comprises two parts:

  • A purpose or user story, establishing the scenario.
  • Some firm requirements.

In the end, questions here are problem-solving questions: I have a job to do, what's the best tool for this job. The most important criterion to judge answers is whether they are a good fit for the job.

If an answerer thinks that the requirements are incompatible with the given purpose, and offer a way to accomplish the job that doesn't meet the requirements, this is still useful. Therefore an answer that deliberately fiails to meet some requirements should be valid, but must be justified. If you disagree with a requirement, ok, say so, but back it up.

Building on an example by Robert Cartaino, consider a question that has as a requirement an anti-virus program that must never connect to the Internet.

  • Q: Scenario: I have a computer which will never have any network connection. I can't run any network cable to it or set up any wireless connection, it's physically impossible due to the location of the computer.
    A: An antivirus needs to have up-to-date virus lists, so I'm going to recommend an antivirus that needs Internet access.

    This is not a valid answer and should be deleted because it doesn't answer the question at all. The requirement of working offline is absolutely intrinsic to the question.

  • Q: I want an offline antivirus because I don't trust the antivirus provider not to feed me invalid data.
    A: The antivirus provider already has control of your machine via the antivirus program, so letting them push an updated database to your computer doesn't worsen its security.

    Here, the answer explains that the contested requirement stems from a mistaken security analysis. This is a valid answer. It might be wrong, depending on whose analysis is correct, but that would be a matter for downvotes to sort out.

    Note that this doesn't dispense the answer from also providing a tool or workflow recommendation. If the post only contests the requirements without suggesting a tool that fulfills .

  • Q: I want an offline antivirus.

    With no explanation as to why, if the motivation is important, request a clarification in a comment. If you think that the clarification is necessary to answer, close as unclear.

In this case, the answer explains at length that for the stated purpose (collaboration a coding project), real-time updates are more of a hindrance than a gain and distributed version control is the way to go. I personally agree with that — but even if I disagreed, this would be a reason to downvote, not to delete. If the purpose of the request for real-time collaboration was, say, pair programming between people in different locations, that would be a different matter.

TL,DR:

  • “you shouldn't do this” → no (but that could be a comment)
  • “you can't do it that way” → yes, if you can say so authoritatively
  • “you can't do it that way, do it this way instead” → yes, if you back it up
| |
9

It depends on the context.

If you can authoritatively say that the problem statement is implicitly a "bad idea", than saying so might actually be a perfectly acceptable 'answer'. It's really just a variation on Impossible/Impractical Requests.

But…

It is not okay to inject commentary posing as an 'answer' just to make a point.

For example:

  • Q: I'm looking for an anti-virus program that never has to connect to the Internet
    A: That is a very bad idea because such solutions have been shown to be inherently unreliable as viruses are always changing and you need that connectivity to keep your software up to date — MAY BE OKAY

  • Q: I'm looking for a video editor that runs on Windows
    A: That is a very bad idea because all the good video editors run on OS X — UNACCEPTABLE

| |
7

Sometimes a bad idea is a bad idea. I don't think this is a good example of such a question (OP might have been able to do it as a comment), but in some cases something really is a bad idea.

For me the test would be

"Could this be said as a comment?"

"Does this provide a viable alternative, within the scope of being a software recommendation?"

| |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .