Group Wikis

From OLPC
Jump to: navigation, search

This is a Google Summer of Code 2008 proposal, any and all feedback is greatly appreciated!

About

I would like to implement a feature which would allow groups to be able to quickly and easily create wiki-style pages for the facilitation of collaborative work. A group, in this sense, could be: an entire class, several students working on a project, teachers planning the curriculum, friends collaborating outside the classroom, etc.This idea is in a way very similar to the Bulletin Board, the difference is that users of a Group Wiki interact through wiki pages (most likely via MikMik) rather than a contextual chatting interface. I should note that Group Wikis are not intended to be a replacement for the Bulletin Board idea, there are appropriate times for both.

Use Case

Four students, Ally, Bill, Chris, and Dana, are working on their science fair project about ocean waves. Ally starts the group and invites the other students, she also types up a short description of the project and a time line showing when things need to be finished. Bill gets on the wiki and notices that Ally forgot to mention that a draft of their paper is due next Wednesday, so he adds it to the time line and also posts a link to a great website he found. Over the next few days the students share their notes and resources through the wiki and discuss what information should go into the paper. Chris and Dana, who have agreed to create the poster, add pictures of waves which everyone comments on to decide which should be used. Ally and Bill, who wrote a draft of the paper in a shared write activity, add it to the wiki for the others to see. They're able to fix mistakes and add new information right on the wiki page, if they decide they don't like a change that was made they can revert to an earlier version using the wiki's history.

Why Wikis

One might imagine that the functionality I'm describing could be implemented with traditional bulletin boards, or with something like contextual chatting interfaces, so why bother with the overhead of wikis?

Why not traditional forum-style threads?

There are a few things wrong with using forums for collaboration. For one, forums are organized temporally, so to get a good idea of what's being discussed you have to read every post from the start of the thread to the end. Also, collaboration is not just discussion, students will want to do things like draw up lists of goals which can be modified over time This is trivial with a wiki, but really doesn't work with forums.

Why not a contextual chatting interface like the Bulletin Board?

Contextual chatting is very nice for quick notes, and for working in real time with others, but they're very limited in a number of ways. For example, it's not obvious how one should display more information than can fit on a single screen, this could be a problem for long projects with complex goals which need to be described at length. Also, they lack the versatility of wikis for dealing with changing content (such as, again, a list of goals). Lastly, because wikis are capable of doing version control, they're much better suited for dealing with individuals who have sporadic connectivity.

While wikis are less intuitive than the other options, they provide of level of control and scalability which is far superior to both. Plus, there are a number of wiki applications already available, such as MikMik and MediaWiki. Given this, as well as the fact that wikis are becoming more and more common on the internet, we can likely assume that students and teachers will familiarize themselves with the wiki format and that the comparatively steep learning curve of wikis will be counteracted by their prevalence.

Implementation

An earlier version of this proposal discussed integrating the wiki feature into the group view screen, those sections have been moved to the discussion page.

Ideally this feature would be integrated directly into the group view screen, unfortunately this is not possible as Groups have not yet been implemented and may not be for some time. However, there are several other ways in which this could be implemented. The most viable, I believe, is to extend MikMik to include a simple, yet intuitive, group management system. If the MikMik developers do not want this functionality, a separate activity could be built with the sole purpose of managing groups.

Creating a Group

A “Groups” namespace could be created where all of the Group pages are held. To start a group you simply create a page within that namespace -- tools should be created to make this process as simple as possible.

Group Membership

The creator of a group should be added to it automatically. Other users should be able to join a group in one of two ways
Case 1: When a user browses to a page in the group namespace they should be presented with the option of joining that group. A button in the activity's toolbar would be appropriate. This button should always be present, but should be disabled when a users is not on a page in the Groups namespace.
Case 2: Users should be able to join a group by invitation. Ideally this would be done with notifications, but the creator of a group could also just share her/his activity and invite others to it through the neighborhood screen.

Managing Groups

There should be a screen, very similar in appearance to the Journal, which lists the groups one belongs to and has options for viewing group pages, removing yourself from a group, marking a group as a favorite, and inviting new members to the group.

Misc. Challenges / Implementation questions

  • We'll want to delete unused group pages after a while so as to prevent bloat and namespace crowding, how do we determine when to delete a page? Should a group be deleted if it has no members?
  • Should there be a way to make groups invite only? Might this be detrimental to the read-write culture which wikis inspire?

Schedule

Date Goal
April 21 - May 26 Get better acquainted with the community and the software. During this period I'll familiarize myself with the code base, and determine exactly how to go about implementing Group Wikis. Towards the end of this period I will draft up a comprehensive time line for the remainder of the project.
May 26 Programming begins, Time line posted here.
Mid-Late June The namespace for groups should be created and the MikMik toolbar should have a "Join this Group" button which is aware of the page the user is on. Work on the groups list begins
Mid July Groups list should be nearing completion
August 6 All features that will be present in the final version should be in place by this point.
Aug. 6 - 18 Testing and bug fixing.