Many questions may share the same answers and viewpoints. e.g. “What’s the best Q&A Site”, “What’s the best subscription free Q&A Site”, “What’s the best subjective Q&A Site” and “What’s your favourite programming resource?” all have some overlap (some more than others). Being able to re-use content created previously would help to “normalise” the content, saving duplication of answers and effort.
Very good idea.
I think you’ll also have to provide some context as to where certain pieces of information are also referenced: “This viewpoint also appears in X, Y, Z”.
Credit for all these goes to @johnlbevan. This really is a great idea. What do you guys think about data sync though?
So you add “evernote” to a new question and decide to add a few of the existing Pros and Cons. If an edit is made to the original source should it be reflected in the new question?
Maybe options and their pros & cons start out in the context of the original question.
A new question arises to which an existing option could be reused; at that point the option is moved to a pool of re-usable options; the original question and the new question are then linked to this same option; though initially the pros and cons remain with the original question.
The question-option link record could also include context sensative information, whilst the option is generic (e.g. a description of what Evernote is is the same everywhere; but information about why it’s a good notes application vs a good todo list / OCR tool / etc will vary with context).
Pros and Cons could also be treated similarly; i.e. “SaaS Available” is a pro of a number of systems; so could be applied to multiple options.
I can picture a reasonable data model for this in my head; will try to knock something up when I get a moment. The UI & keeping it intuitive to users, I’m not so sure on; maybe I’ve opened a can of worms. . .
Here’s the data model I was thinking of to cater for this - hopefully it makes sense; I’ve been a little sparse on comments: http://sqlfiddle.com/#!6/8104b/1
That’s more or less the design I had in mind - my plan was to have one ‘canonical’ version of an Option and each Reason, and then, on each Question, let that option get “forked”, and then make it possible to merge-in those changes to the canonical version.
I’m not sure which approach is better - I really like the idea of separating out the contextual information from the non-contextual information, or the neutral info from the pros/cons. Right now, the intention was mostly to have neutral info in the Option summary, but the approach I mentioned above just kind of mixes the non-contextual with the contextual.
Ah, should have posted my “Introduce Properties for Options” here. I don’t think forking is a good idea, but maybe I don’t have enough familiarity with when this feature would be used.
The way I see it, Options are going to basically be the same no matter the context. There may be a Pro/Con here and their more relivant to the question, but ultimately all the information should be preserved so anyone can make the appropriate choice (it may differ slightly from the OP).
I agree it the information will mostly be the same, but I think there are enough use-cases that require the information would need to be forked in some respect to at least make us consider the ability to fork content. “Best ultrabook” -> “Best laptop for programmers?” requires the addition of a lot of linux compatibility issues and the removal of gaming Pros etc.
I would say each answer should have a consistent source through out all questions and just alter what shown for the question. For instance if you say “What is the best laptop for video editing?” I could come in and say the MacBook Pro. The existing information for the MacBook Pro is ported into the question. I can then choose from the list of existing pros and cons which ones are relevant, and then add my own. A few more pros and cons may be shown after that but the rest could be condensed into a “More information” button. This way the user has access to all of the information of the option, but can still customize it for the specific question.
In this case there wouldn’t be any forking of answers, it would constantly be updated and everyone would have access to the same thing. The single source might be a more familiar model for casual users, based on their usage of things like Wikipedia and Google Docs.
It may also be useful, or overwhelming to have meta section for each answer, and be able to see where pros and cons were added.
I like this, but what do you suggest for editing the contents of the existing pros/cons. There are two main use-cases I can think of:
- The existing pro you added only has a title, so you edit it to include more information. By doing this you improve the quality of the pro in all locations and make everyone happy.
- The existing pro you added is 90% right, but in the new question context it doesn’t really work. You slightly edit the title and add some more content to the description to make it work in the new question content. Those changes get synced to all the other occurrences of that pro. Those other occurrences now don’t make sense. You make people sad.
The other issue is, just say we decide “if you add a pro from another question, you can’t edit it” and you add a pro that at the time makes sense, but overtime changes in the original location and those changes get synced and now no longer makes sense in your question.
Lots of edge cases to consider.
I suppose by calling it “forking”, I made it sound complicated, but my thought process is basically this:
- 80%+ of the time changes shouldn’t be needed, so we want users to just be able to say “this Reason is relevant here” and add it.
- Another, say, ~15% of the time, a change will need to be made everywhere an option appears (e.g., updating a price or fixing a spelling error). Users should be able to edit the option where they are, without thinking about every other context, and without going to a special “meta” page. Before it gets automatically propagated to other contexts, someone should probably confirm that it makes sense in that other context (or at least, notified of it after the fact so they can revert/reject it if need be).
- The last < 5% of the time, some change only makes sense in the current context/is only relevant to a particular Question. For those cases, I think users should still be able to make that change, but we probably shouldn’t optimize for it, especially since it makes it more difficult for that Option/Reason to get updated by changes elsewhere in the future.
Of course, I’m pulling those numbers out of nowhere, so my assumptions of how common each is might be be completely off.
Alternatively, we could disallow localized changes, as DannyM and hethegreat suggested, but I worry that if the situation does come up, people might just resort to making alternative/duplicate localized content, or will just get frustrated with their edits getting reverted for being too context-specific. The former might be ok, but at the very least, it’d make it a little harder to get information like “overall, people like X because of Y”, since Y would be broken up in different Questions, which in turn could make things like search results less accurate (if we ever get really clever with search). It certainly would make everything a lot less complicated, though.
We know that Reasons definitely change based on Question scoping, but the question really is, does their content or phrasing change based on Question scoping? I think it’s probably more likely the more that a Reason is directly addressing something about another Option (e.g. “has 4GB of RAM” is less likely to change based on context than “has lots of RAM”, which depends on what it’s being compared to - but then, maybe that Reason just gets left off in some contexts). We may just need to see what we can do about getting some real estimates of how common these things are.
What if synced changes used the pending edit system instead of the direct edit system?
I think it is important to provide visibility into where the Option is used. I don’t know if it is a big issue to not be able to customize for the question, but assigning a custom heading and maybe intro text is reasonable.
This really sounds like you’re complicated things. I get where this could be useful, but you’re not making an object database of real life things. Maybe a list of “references” of where else this “solution” has been listed would be good? Not exactly sure how UI wise though.
It would admittedly be complicated for our end, but the user facing elements for a feature like like would actually be really simple and wouldn’t change the flow at all (other than making it easier and faster for users).
From a UX perspective all I’m envisioning is after you type in “evernote” as an option you’re presented with a clean list of “suggested pros” you can click to add to your option. Kind of like the list of “existing pros” we have now, just with a new heading and a button to add it to the option.
We can then pull in images, URLS etc from a central database so if the user is on a mobile they don’t have to do that much work to generate nice content.