Much work in the field of Computer Supported Collaborative Working (CSCW) has started from a detailed set of usability requirements, and attempted to engineer a system to support these requirements. In single user systems, this works well, but for near-synchronous shared tools, there is a real danger that this result in systems that do not perform well in real-world networks.
We have started with a high-level set of usage and performance requirements, and worked through a solution that satisfies these high-level requirements. Such a solution imposes a tight set of constraints on the operations that can be performed on the data set. In designing wb, it appears that Van Jacobson also pursued this design path, although as the high-level requirements were slightly different, their resulting constraint set is different. There is, of course, a danger that in pursuing this type of path, the resultant system performs well but does not properly support any required task. It is dangerous to attempt to draw general conclusions from a small number of examples, but we believe that both nte and wb have resulted in systems that support the users' tasks well. Furthermore, we believe that engineering a CSCW tool around a set of constraints that ensure good performance is likely to result in a tool that is more likely to be used.
Having said this, it is vital that detailed usability requirements are given a great deal of attention when working within our constraint set. The detailed requirements we used to design nte include:
Next: Asynchronous Events - informing Up: Shared Applications in the Previous: Summary of Inconsistency Avoidance Jon CROWCROFT