Page MenuHomePhabricator

Real Time Collaborative Editing
Open, Needs TriagePublic

Tokens
"Like" token, awarded by Liuxinyu970226."Like" token, awarded by I_JethroBT."Like" token, awarded by dr0ptp4kt."Like" token, awarded by Florian."Like" token, awarded by JanZerebecki.
Assigned To
Authored By
cscott, Sep 17 2015

Description

We have the backend infrastructure mostly in place for real time collaborative editing. See:
https://wikimania2014.wikimedia.org/wiki/Submissions/Real-time_Collaborative_Editing_with_TogetherJS

But actually rolling out collaborative editing requires more than just the Visual Editor team. It will require a coordinated effort to reimagine what editing is like. Some tentative steps were discussed at:
https://wikimania2015.wikimedia.org/wiki/Submissions/Real-Time_Collaborative_Editing

We will need mechanisms to create user groups, real time chat mechanisms, mechanisms to temporarily persist collaborative sessions, perhaps even new core mechanisms for describing revisions (at the very least, revisions can have multiple authors!). We also need to think about social mechanisms and preventing harassment and vandalism of collaborative sessions. @Pginer-WMF has sketched out a vision for the UI, but we need to achieve broad consensus on the overall direction, refine the details, and figure out how to get there from here, with a unified roadmap across design, services, and editing.

Related:

SUMMIT PLAN

  • Agree on a concrete "next step", whether that is a UX experiment or a backend implementation task (support for temporary storage of in-process edits, for example).
  • Discuss community implications, and develop a plan for managing harassment/abuse/etc in a real-time collaborative environment.
  • Agree on broad-stroke integration of collaborative UX into our current mediawiki skin. The existing design prototypes have been built against Winter, and we need to figure out how the pieces can be built on top of the skin we actually use.

Event Timeline

cscott created this task.Sep 17 2015, 9:56 PM
cscott raised the priority of this task from to Needs Triage.
cscott updated the task description. (Show Details)
cscott added subscribers: cscott, Pginer-WMF.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptSep 17 2015, 9:56 PM
Aklapper updated the task description. (Show Details)Sep 19 2015, 6:34 AM
Aklapper set Security to None.

... and related to this topic there is also T3898: Support real-time collaborative editing. Do we really need all these separate tasks, or is it possible to consolidate a bit? If not, we should associate the right projects here.

In any case, a very interesting proposal. I can't wait.

Florian added a subscriber: Florian.
Aklapper updated the task description. (Show Details)Sep 23 2015, 8:33 AM
cscott added a subscriber: RobLa.Sep 23 2015, 5:41 PM

@Qgil, I'd prefer keeping this a separate task for now, since I think one of the goals of this summit topic would be to decide between some of the different approaches (T3898 predates VE, and my togetherjs work allows real-time collab of wikitext editing as well as VE edits). Another goal of the summit would be to collect all of the different pieces necessary to make this work and ensure they are resourced. T76546 and T76548 covers the VE component, but there might be improvements needed to the storage infrastructure, development of a real time chat mechanism, etc. As we need design involvement! Those might turn into separate tasks linked here as we flesh out (or narrow down) this topic.

Also, there seem to be "fields expected" (what fields, exactly?) and other formatting necessities of a summit topic which aren't quite as appropriate to hijack into one of the existing tasks. As I understand it from @RobLa, part of the process over the coming months will be to host a discussion here; again, perhaps not appropriate to do tacked on to one of the existing tasks. (But correct me if I'm wrong.)

RobLa-WMF edited subscribers, added: RobLa-WMF; removed: RobLa.Sep 23 2015, 5:54 PM

As I understand it from [@RobLa-WMF], part of the process over the coming months will be to host a discussion here; again, perhaps not appropriate to do tacked on to one of the existing tasks. (But correct me if I'm wrong.)

@cscott, you're correct. The task (and corresponding success criterion) could be renamed "Define strategy for deploying real-time collaborative editing to Wikimedia servers" and we could convert this to an RfC and/or working group that attempts to answer that question. Morphing this task into "Form working group for designing/deploying real-time collaborative editing to Wikimedia servers" would also be appropriate.

@Qgil is understandably concerned about having nebulous tasks without clear success conditions (especially tied to Wikimedia-Developer-Summit-2016). I hope my suggestions help point things in a more productive direction.

I'm still very fuzzy about all of this, but it seems that reusing existing phab tickets for summit tasks is almost never the right thing to do, since summit tasks have an associated process and are more meta- than existing tickets tend to be.

My current understanding is that summit tasks should be more like tracker bugs, in that they should try to define and curate a collection of concrete tasks associated with an issue (or candidate tasks, since there may be multiple paths to a goal). The title of this task was deliberately broad, so that it could include necessary UX design work, backend improvements, etc, as well as meta-tasks like "form a working group" and "write an RFC".

But "Form working group" seems like a *subtask*, not a summit topic. After all, can't we name members of a working group without meeting in person? "Define strategy for X" is a little closer to what I'm imagining the actual summit meeting is for -- but then we'd have to prefix those three words to all the summit topics.

Again, I might be misunderstanding, so please correct me if so.

Qgil added a comment.Sep 23 2015, 6:54 PM

It's ok, there is no rigid process. Let's keep this task for the Summit. The expected fields are described in https://www.mediawiki.org/wiki/Wikimedia_Developer_Summit_2016#Call_for_participation

@Qgil can you point to an example of a task including the expected fields?

I think you're on the right track with this concept. I'd urge taking it one step further: realtime chat and maybe realtime audio where people can even just discuss topics if they're there at the same time - a sort of realtime bench at the bus stop.

Qgil added a comment.Oct 3 2015, 8:57 PM

Congratulations! This is one of the 52 proposals that made it through the first deadline of the Wikimedia-Developer-Summit-2016 selection process. Please pay attention to the next one: > By 6 Nov 2015, all Summit proposals must have active discussions and a Summit plan documented in the description. Proposals not reaching this critical mass can continue at their own path out of the Summit.

Isarra added a subscriber: Isarra.Oct 25 2015, 7:11 PM

A great use case for functionality like would be in edit-a-thons, especially ones that are conducted virtually. As an organizer, there are many many times I would like to be able to edit together with someone else, and there are sometimes editors working together. Some edit-a-thons are focused on building one or a small set of articles, in which collaborative editing in real time would be fantastic.

I've posted about this proposal on the project page for Meetups on en.wiki.

I think simultaneous editing is a nightmare, and efforts could be focused elsewhere. We used to try and do this via Box and via a corporate document management system when I was a word processor at an investment bank. It always created massive problems. Not a fan.

Restricted Application added a subscriber: StudiesWorld. · View Herald TranscriptNov 4 2015, 8:45 PM
Qgil added a comment.Nov 6 2015, 11:23 AM

November 6, and this proposal doesn't seem to have much traction, it is not on track. Unless there is a sudden change, I will leave the ultimate decision of pre-scheduling it for the Wikimedia-Developer-Summit-2016 to @RobLa-WMF and the Architecture Committee.

cscott updated the task description. (Show Details)Nov 6 2015, 6:51 PM
Elitre added a subscriber: Elitre.Nov 10 2015, 7:19 PM

I'd love to see this at the summit.

In any case, I wanted to provide some ideas about how to handle versioning and conflict resolution after a discussion with one of my clients. This seemed like the best place to put these comments for now, but I'll move them if someone points to a better place.

  • Versioning is a nightmare. A possible fix would be to make it impossible for two editors to edit the same paragraph simultaneously. Other editors could see changes made on paragraphs they aren't currently working on but would be blocked (kind of like how VE handles templates for now) from editing them. When an editor moves off the paragraph, xyr changes are staged for commit with the title of the collaboration session as the comment.
  • If another editor begins to edit a previously changed paragraph, the staged changes are stored as an edit and a new "change window" for the paragraph is opened.
  • When an editor leaves a session, all xyr staged changes are committed. Optionally, xe can provide more detailed comments for each staged change.

make it impossible for two editors to edit the same paragraph simultaneously. Other editors could see changes made on paragraphs they aren't currently working on but would be blocked (kind of like how VE handles templates for now) from editing them.

Too easy to abuse. Protection rights are given to admins only by default for a reason.

Too easy to abuse. Protection rights are given to admins only by default for a reason.

Note I wasn't talking about a global block, just a way to block the other users of the shared session. This leaves lots of problems to be solved. but I think it is a good start.

Since this topic "won" the strawpoll taken in the T119162 session, I've scheduled it for an unconference slot at 10am Tuesday. Hopefully this is an acceptable time for @Jdforrester-WMF, @MrStradivarius, @Quiddity, @matmarex, @violetto, @Nasirkhan, @dr0ptp4kt, and @Trizek-WMF (who all voted for this in the straw poll).

I resurrected the TogetherJS demo. To try it out, add:

importScript( 'User:cscott/TogetherJS-demo.js' );

to [[Special:MyPage/common.js]] on your favorite wiki (for example: https://en.wikipedia.org/wiki/Special:MyPage/common.js) and encourage your friends to do that same.

Sources are built from https://github.com/cscott/mediawiki-extensions-togetherjs -- I am very interested in trying to prototype (at least) the following "how to decide when we're done editing" proposals:

  • Only the person who started the session can save the revision.
  • Everyone involved in the session needs to sign off on the changes before we can save.
  • Anyone can click 'save', but it starts a 30 second countdown. Anyone who edits the page in that 30 second window (or clicks a button to object) can prevent the save.
  • Other UI ideas?

Let me know if you'd be interested in hacking on this for a little bit and/or trying it out with real users.

@cscott Oh neat! I didn't realize a script like this was hanging around. I'll see if I can wrangle up a few folks tomorrow and Friday to play around with this script.

In a conversation with @RobLa and @TheDJ a new hybrid save strategy was proposed:

When you hit save, everyone who has edited the article in the last <time period> has to sign off before the save goes through. This has some.of the nice "empowerment"/nonblocking features of the countdown clock without forcing everyone to wait until time expires. It seems to naturally generalize to the single-user or nobody's-left-but-me cases.

TheDJ added a comment.EditedJan 8 2016, 1:24 AM

What led to the time based approach was the concept of 'stabilizing'. (Both content and users' agreement about this content needs to stabilize, before a save can occur).

Copy of the etherpad: https://etherpad.wikimedia.org/p/WikiDev16-T112984


Session name: Real Time Collaboration
Meeting goal: Survey UX issues involved with Real Time Collaboration
Meeting style: Problem-solving: surveying many possible solutions
Phabricator task link: https://phabricator.wikimedia.org/T112984

Goals

Agree on a concrete "next step", whether that is a UX experiment or a backend implementation task (support for temporary storage of in-process edits, for example).

Discuss community implications, and develop a plan for managing harassment/abuse/etc in a real-time collaborative environment.

Agree on broad-stroke integration of collaborative UX into our current MediaWiki skin. The existing design prototypes have been built against Winter, and we need to figure out how the pieces can be built on top of the skin we actually use (or a new standalone prototype needs to be built).


Trevor Parscal: You have to solve "when is it done and publishable" because people aren't going to know about everything everyone else is doing.

C. Scott Ananian: Like gdocs?

Trevor: No they have suggestions, but that's not the same

James Forrester: Every person has to sign off for every single revision, which is horrendous.

Trevor: Having a localized line-item approval, where someone else approves the text for publishing, is needed. RTC increases granularity of edits, so we need to increase granularity of saves

Scott: My goal there is to discuss whether real time collaboration should be a new experience, or a more conservative approach. On the table is Trevor's "granular saving" thing, but let's hear from David.

David Chan: What is the minimal change to the process, start with that first then change more radically. Seems like that is to have one person own the edit, have a single save. So people join but the owner still takes responsibility. Edit session gets no priority, still has to be merged with non-collaborative edits.

Scott: That's basically what my TogetherJS experiment does. Shared browser session, edit is done when the first person is save.

Trevor: Only the person who originated the session can save. They own it.

Scott: So, yes, you need to add some WP-specific logic, otherwise you could save while someone else is in the middle of writing something.

David Chan: Key point is the edit session has no priority over any other session or non-collaborative edit, no process change.

Scott: That's why I didn't push for more with Together JS. We need to have some guidance.

Adam Baso: Agree with starting simple, wonder if merely having chat available in the browser (so we can let people know others are editing) might be a start. If people were just able to communicate in real time (outside of IRC). Re shared save: wonder if there's a simpler approach, identify whether a given section is being edited, then when two editors are editing at the same time, they'd know about each other. We could try these to see whether users actually care about collaboration

Scott: That's a really good experiment. People might push back hard about it.

James: People who care are people who we don't need to worry about, as we're trying to attract new users. If you warn people about an edit conflict they're about to cause, they're just gonna press save anyway (also half of them are bots).

Adam: Maybe limit it to VE users. There's a social component, a need to have a dialog, and talk pages aren't real-time enough.

Scott: There's a cultural issue, when WP was started there were discussions about whether articles should be locked to prevent conflicts. Culture (for whatever reason) is wild wild west. No FlaggedRevs, no locks, stuff happens and we make it work. My feeling about Trevor's proposal that one person owns the session, I think it's reasonable but a little contrary to this Wikipedian culture.

Trevor: My proposal instead is that when you make a contribution, somebody else goes and approves it.

Scott: So more FlaggedRevs-like?

Trevor: What I really mean is that when you're in an editing session, in between starting and ending you're doing work, and it wouldn't be appropriate to save there. We need to bring the distinction between "I'm working" and "I'm saving" to a more granular level.

Scott: gdocs has an interesting model where revisions are defined retroactively. Annoying from a tech perspective, but seems to match human intuition pretty well.

Alex: We need edit summaries, so we can't follow that model?

Roan Kattouw, Ed Sanders: Do we? [need edit summaries]

James: MW is built around revisions. We can change that, but you need a compelling argument.

Scott: I'm trying hard not to take a personal stance. As a strawman, when you hit save, it starts a timer. No-one else can save until the timer ends, say after 30 seconds.

Trevor: A session like David's, the owner might want to leave when other people are still working. Participation will be transient. So you need a way to save portions of the session at different times. Instead of, after some time of inactivity we publish everything.

David Chan: Are saving and publishing the same thing?

Trevor: Interchangeable

Scott: The interesting question is when a revision should be saved. With TogetherJS I didn't have a good answer to this question. We could get some experience experimenting with different approaches. With minimal systems, the smallest possible thing you need to do is to create a URL for your session which you can then share via Facebook etc.

Adam: The session ID is for the purpose of logging into the session, not because there are multiple sessions per page?

Scott: There could probably be multiple sessions per page. We'd also want a list of all active sessions.

Adam: Getting past the social hurdle is the harder part of the problem. If two people are editing in the same session at the same time, one person might not be willing to commit the work.

Scott: I think they're separable issues. Let's avoid rat holes.

Guillaume: Real time collaboration vs real time editing. Adam's comment was more about communication, you could have RT collab without RT editing. Useful to see the different levels of collaboration. You could have two people discussing the contents of an article in real time without editing. You could have a r/o view where one person is editing and the other person is talking to them. You could have people collaborating on the same article but editing different sections. And then finally you could have multiple people editing the same bit of text. So there are multiple levels to explore.

Scott: First we need real-time chat. A lot of issues adding real-time chat to Wikipedia. I'm interested in teasing those issues apart. James's ideas about the annotations of articles is also interesting.

Alex: Was thinking about chat issues, private vs public sessions. Presumably chats are permanent and saved forever?

Scott: That's one option, the other is it's private. If it's private, reporting abuse is hard.

Alex: And do we retain chat history when you come back?

David Lynch: If you go back to that revision, do you see the chat log that was attached to it?

Adam: 90 days?

James: We have a rule that everything that's public is public forever, and everything that's not public is never public. Don't have something be public and then become private.

Scott: What is the minimum we'd need against abuse?

James: Report abuse button in the chat window, would mail log of the chat somewhere, system that deals with private complaints

Scott: Chat logs would be thrown away immediately unless you clicked report abuse, in which case they would be kept for 90 days or something.

David Chan: Invite-only chat, ability to kick people?

James: Say I'm a bad user, admin yells at me, I kick admin out of my chat, that's a frustrating experience. Or do we have magic classes of users that can't be kicked?

David Chan: Does it matter that people are talking [bad things] in chat?

James: There are issues with legal.

Guillaume: Privacy issues, invite-only, etc.: you presented a few use cases, like mentoring (2 people), WikiProject (dozen people), editing a news article (100 people including newcomers and experienced users). In which of those cases is RT editing actually a good thing? In some cases, sequential editing has been proved to be better than real-time (better for the content, also less territoriality)

Scott: Google Docs is interesting...

Guillaume: - and there's a paper I wasn't able to read yet ( http://paul.is/pubs/andre-coordination-chi2014.pdf ). But going through the use cases and asking what we need for each might clear up some of these difficult questions.

Scott: There are use cases where we can not worry about harassment in real-time chat... there was a slide which showed the different scale of real time editing compared to editing a different paragraph... There was a read only method where lots of people are watching, one person is editing. There's a race for people to be the one to contribute.

Trevor: What you led with was that you don't care as much about real-time as about mergability. If you solve that part of the problem, then whether the time between sync is short or long, if everything is mergeable sensibly then it doesn't matter as much. Foundational tech should support a variety of these cases. This discussion is supposed to be about UX but we keep coming back to tech limitations. So let's ignore those and assume everything possible, everything can be merged magically.

Scott: Does anyone want to comment on the academic versus friends version of the project?

James: We currently provide poor facilities for socialization, so socialization is either despite facilities (IRC, Skype), or through the things we do provide (talk pages, WikiProjects), very stilted conversations. Just providing a more free-form chat environment could be disruptive but interesting. Would end up being more social than what we currently have. People say WP != FB, their point is not that they're anti-fun but that we're here for serious things.

Trevor: Exciting first step: every time you're editing, you can optionally join a chat with everybody else editing that page. People could talk about who's editing what. The idea that every page has a chat room is an exciting idea. The other thing is whether we archive that chat or throw it away.

Scott: I think that's interesting, because should we do the chat first, and the editing would follow?

Trevor: If you can't even get chat to work, you probably can't get real-time collab to work.

Guillaume (etherpad comment): Chat seems like a prerequisite to real-time editing, BUT "chat on every page at any time" may also be a bigger problem to solve than "chat on a given page during a joint editing session". We should clearly state what we need out of chat for joint editing.

Scott: Don't know whether or not a community like this should be built inside or outside WP. Should this be tightly integrated that old-timers are always going to be confronted with, or does it exist on the side?

Trevor: Are you equating chat with a Facebook-like experience?

James: We can have a chat system that has no FB-like connotations.

Alex: Like IRC

Scott: So you're encouraging chat rooms to be associating with pages, not groups of friends

James: Yes, or wiki projects. Or the 20 people who edited an article most recently.

Scott: Is there a way for me to chat directly to you?

James: It's a talk page, it's public.

Trevor: Networks are deliberate connections for social reasons, communities are built around what they're doing. If chat rooms are all centered around work, then it's community. If people are just chatting with their friends, it's a network. FB is a network, WP is a community. The reason I'm interacting with you is because I'm editing the same page. So if interaction is int hte context of work being done, it's not an FB experience, and we shouldn't shy away from it.

Scott: Even if I associate chats with experience, I can hack it into a way to talk to my friends

David Lynch: A chat system that is per-article really is just automatically refreshing talk pages.

Scott: You don't have to go and edit the article at all. If you don't want to join in with the social aspects, you're free not to.

Trevor: You click a button and choose to join the chat, I think it should be a deliberate step

David Chan: The fact you can edit without even knowing about talk pages is clearly something that happens a lot, because in some articles people put <!-- Don't edit this without looking at the talk page -->, so that proves not everyone looks at the talk page.

Scott: I think that's a bug not a feature, but opinions differ.

Trevor: If you make people jump through more hoops, you make it harder for people to edit.

Scott: Those passive-agressive comments indicate that people are frustrated they can't make people look at the talk page

Trevor: If you look at those talk pages, they're not as valuable.

James: Talk pages used to be red unless there was a message there. If there was a blue link, you would check it. Then we created WikiProject templates on talk pages, so there's no information signalling about whether there's an active discussion.

Scott: So we could add an optional real-time chat, but also introduce an indicator of whether it's being used.

Trevor: I think the whole trick is contextual conversation, talk about the area you're editing. That's what gdocs does and it's really valuable. We need to do that for talk pages too. A lot of the discussion there can be linked contextually, especially the things we want people to see (per David C). Select the paragraph, right click, add comment.

Scott: I run an MIT mystery hunt team. We have a wiki to document the process. If we talk about something in the middle of the chat... maybe the first letter spells "red herring". There's some sort of meta chat system that lets you turn that chat into a more structured product.

Trevor: If you associate it with a part of the page, it's contextual discussion. Not ephemeral, but persistent, it's an annotation.

James: What kind of level would they operate on? Block, document?

Trevor: Block level like Medium would probably be easier

Scott: So say I highlight a section and comment, say that comment shows up in the chat: "Scott just said that X is wrong"

James: Why is there a chat window?

Scott: We're trying to integrate it into a process of discussion.

James: GDocs is theoretically sync collab editing, in practice it's often async; 'just' adding chat to arbitrary parts of pages (GDocs comments style) might get us to the place where it's good enough

Scott: Suggestion comes from mystery hunt, people feel like they're out of sync with what's happening with a task. Stateful edits to a task status show up as a message in the chat, so you are notified by just following the chat.

Trevor: Whether it's mentioned in the chat or not, if you apply your point to "you should read the talk page first", it's the exact same problem. You have to dig through the talk page to find something that may or may not be relevant.

Scott: I agree. I'm not convinced this is the same problem as real-time chat.

Trevor: To do real time collab, in general, is to increase the granularity of at least one aspect. Unless you increase the granularity of everything else, it'll all fall apart. Important to look at this and solve it holistically. Good idea to look at minimal things, but be careful.

Scott: I really like the idea of associating chat with different pages.

James: Pages or parts of pages?

Scott: Not convinced there yet.

David Chan: When you edit a section, flag whether there is a section on the talk page with the same name?

Scott: Any different topics?
Adam: The highlighting notion, we have similar concerns about watering down the experience. Worry if we have annotations and they're not really focused, people might say derogatory things

Trevor: I don't know if these annotations need to be visible in the read view.

Scott: You can still leave bad comments even if they're only visible in the edit view.

Adam: We anticipate that social highlighting is something we'll want, but similar concerns.

James: If we're going to switch to Parsoid HTML for read views, if you've got an ID we can do a hash URL to link directly to a section. We're going to do it by accident, with just a bit of JS to color things in.

Trevor: There are some really basic mechanisms we could put in place to let people associate talk page sections with parts of the page

Trevor: You'd have to dig through a load of different articles to find something that works.

Scott: In Pau's thing, there was a work list for a WikiProject. But if you're a member, you'd see them there. For discovery, you go to the project and see which pages have active discussions. Trying to discourage "don't you dare editing X" by only making that visible to project members / your friends.

James: Example: Barack Obama's article. The third word is "Obama". The second is "Hussein", and there's a comment that says "Yes, this is is name, and no, don't call him Muslim". Nobody's having an active conversation about whether or not he's Muslim, the comment is there as a warning that there is a *closed* conversation about this.

Trevor: That's different because it's a note. Not part of the talk page, no intention for there to be follow-ups in that place. Gdocs speadsheets has the distinction between comments and notes. We have the same thing, HTML comments are editors notes, maybe resolutions to old discussions, and then we have talk page discussions. Let's not muddy them together, they have different purposes.

Scott: In terms of minimal notation, we could display those comments as separate things.

James: We keep coming up with designs to have a bar on the right-hand side in VE, but this is one of six compelling reasons to do it, we should just do it. I'd really like to kill inline HTML comments in articles as a way of getting users to read the talk pages. Show things to the user in context if you can.

Scott: In some sense, they are. It works for wikitext. If your format is plaintext, that's the closest thing you're going to get to an annotation.

Trevor: We also know those inline comments are difficult for users to parse out, which is why we collapse them in VE.

Scott: In some sense, you're making them not work because you're hiding them.

James: We intentionally didn't implement that, because it would lead to too many problems. There are three different users of talk pages, page level metadata, page level discussions. And this particular sentence needs ideas, does anyone know any?

Scott: Always interested in the third one.

James: That's the one I want to see in the article

Scott: Goes back to wiki culture, which is that mistakes should be very visible otherwise they won't get fixed. The big passive-agressive comments are part of that culture: if people don't see them, they won't be addressed. My personal inclination is to try to not break the page, but in some sense that doesn't seem to be the wiki way. The wiki way is to make contention very visible.

Scott: As a top-level thing, any discussions we haven't covered? Or come to consensus on a couple of big-picture points?

James: Scale. Touched in brief, about current news events. 1000 people tried to edit [[Michael Jackson]] when he died. We can't paint 1000 cursors moving around. Some limit to how many people can practically or technically be involved in a real-time editing session. How do you manage that? Say it's 20. What does the 21st member experience? Are they pushed to an async edit which then conflicts?

Scott: That's what happened in the 1000 editor case anyway.

James: What if an admin can't join? What if it's just 20 admins? Can I DoS editing an article by joining 20 bots into the edit sessions? These questions aren't unsurmountable but we need to choose the outcome carefully.

Scott: My experience with hangouts is interesting in this case. We have a separate reader and writer block. We have several people editing, and lots more people watching. That's an interesting social dynamic. People can keep an eye on what's going on. The other interesting thing is if you do it without existing support, that might not be in our MVP.

Scott: JSFiddle has TogetherJS installed. Come and find me for a demo.

Adam: Timeline? Q4? Beyond?

Scott: The first question I had was suggestions on next steps. For me personally, interested in finishing the TogetherJS demo with a couple of different commit protocols: one where the person who starts it owns it, one with a timeout, one where explicit sign-off is needed. That's an experiment that could be deployed and we could get people to try it and see what works.

James: The mental model for that is old-style network gaming. If no-one clicks "ready" in time, it doesn't happen.

Scott: Another thing I've learned, there might be motivation to do chat separately and get that process started first as opposed to last. So people could prototype real-time chat. I think there's a lot of social issues, figure those out.

Trevor: Setting up a chat relay server in nodejs is trivial.

Scott: I like associating chats with pages.

james: You could start by associating with WikiProject pages, rather than article pages.

Scott: So restrict on namespace :) add a one-click-join

David Chan: Could you use IRC+Etherpad?

Scott: Turns out a lot of people use gdocs then copy stuff back. Other thing was, community implications for preventing harassment and abuse. Any big ideas for that?

Trevor: Learn it when we do it.

Scott: Don't store logs, do have a report abuse button which records logs. Seems like a good first draft model. Same for edit session history to deal with abuses there. Third thing, we think we can do things with the skin we've got?

Trevor: Any system that we build should be embeddable, regardless of the skin.

Scott: Devil's advocate is people who really wanna work like this want to see their friends, FB-style.

Trevir: We don't even want those kind of users. ;)

Scott: If we really wanted to cultivate a new kind of user, we might want a new skin for that.

General notes

  • When should be a revision be saved?
  • Minumum viable product.
  • Chat -first design/implementation
  • Associating chat with specific pages (or parts of pages?)
  • Scale

I wrote up some thoughts on some of the issues mentioned above and RTC in general at User:Yair rand/RTC on-wiki.

(Not sure if I'm posting this in the wrong place. The scope of this task is confusing.)

Wikimedia Developer Summit 2016 ended two weeks ago. This task is still open. If the session in this task took place, please make sure 1) that the session Etherpad notes are linked from this task, 2) that followup tasks for any actions identified have been created and linked from this task, 3) to change the status of this task to "resolved". If this session did not take place, change the task status to "declined". If this task itself has become a well-defined action which is not finished yet, drag and drop this task into the "Work continues after Summit" column on the project workboard. Thank you for your help!

I read through the transcript above (T112984#1923720), and saw this from @gpaumier in the notes:

and there's a paper I wasn't able to read yet ( http://paul.is/pubs/andre-coordination-chi2014.pdf ). But going through the use cases and asking what we need for each might clear up some of these difficult questions.

It was indeed an interesting paper that can give some insight into the problem of scaling up simultaneous editing. They didn't seem to get into large scale collaboration, but did at least find that having a writer/editor split on their creative task (limerick writing) mitigated some of the territoriality risk of synchronous pairwise collaboration. They also found that sequential collaboration (i.e. our status quo) had the strongest results in the limerick writing experiment.

From the transcript, it appears the discussion at WikiDev '16 was really good. Anyone up for summarizing the discussion there?

Zppix moved this task from Unsorted to Working on on the Contributors-Team board.Apr 26 2016, 2:31 PM
Restricted Application added a subscriber: Luke081515. · View Herald TranscriptApr 27 2016, 3:58 PM
gpaumier removed a subscriber: gpaumier.Jul 18 2018, 5:56 PM

Hello! Is there any chance that this will be deployed? Maybe we can start some test on euwiki, if there is appetite for change.

Toniher added a subscriber: Toniher.Fri, Oct 4, 4:12 PM