Collaborative Software is sometimes called Social Software, but arguably CS suggests work and Social Software suggests play and community. Social software is party-lines, chat, forums, photo swapping, six-degrees-of-separation, and not a cause of angst for me. Collaborative software is people working on the same project at the same time. The grand concept design challenges for any CS are therefore:
- Allow simultaneous work without unproductive interference
- Handle disputes about authority and judgment
- Handle “ownership” of a task
- Handle steering or allocating of tasks
- Keep track of contributions and credits
The corporate world has known CS for a long time in the form of groupware applications. As far as I can tell, these consist of internal email (“memos”), shared calendars, shared contacts and sometimes “drawing boards” and document versioning systems. The new groupware applications tend to be served from a web site and emphasize design concept #3, hardcoding concepts like “tasks” and time/resources (e.g, dotProject ).
(These are creepy, especially in the context of free software and online communities, because business management theory analyzes a “project” (I speak Corporate, can’t you tell?) into tasks and resources, and deals with conflicts based on a hydraulic model of “flow”. Resources are people and office equipment (e.g., printers), and have dependencies on each other that can lead to “resource conflicts”. For instance, Resource A (“Bob”) might need to use Resource B (“HP Printer”), but Resource C (“Mary”) is already using B, leading to suboptimal utilization of A. No matter.)
The Sourceforge open source project is perhaps the most socially significant collaborative software other than wiki. Sourceforge is built around CVS (Commit/Content Versioning System, perhaps?), a linux app that tracks incremental additions to a code base. It adds forums, task-management and internal documentation. Sourceforge is the central CVS repository used by thousands of open source (and commercial) projects.