I attended a colloquium at BYU's CS department today by Saul Greenberg from the University of Calgary on "Enhancing Interactivity with Groupware Toolkits."
Saul starts off talking about the foresight of Doug Englebart who in 1968 started thinking about how to use computers to augment human intellect. He came up with three ideas that will seem obvious to anyone in the 21st century:
Saul points out that Desktop tools and hypertext have become mainstream, but groupware tools are unimaginative and unreliable. Groupware has had little impact: poor deployment, risky venture, little effect beyond IM, early adopters, and few products.
What went wrong?
Building groupware requires using low level tools and building programs from the ground up. Groupware systems are difficult to prototype. As a result programmers avoid groupware programming and the designs that do occur are overly simplistic.
Saul talks about the technology maturity theories of Brian Gaines (see section 3 of Learning Models for Forecasting the Future of Information Technology) who said that technologies naturally progress through a series of stages:
- Replication - new ideas, evolve
- Empiricissm - draw lessons from patterns
- Theory - understand what rules mean
Because tools for groupware are so low lever, we throttle the replication stage and see little development beyond that.
Tools influence design directions and so Saul's thesis is that we need to give programmers good tools and building blocks in order to foster replication and gain the experience necessary to gather empirical data and move down the road.
This echoes with thoughts I've been having lately about open vs. closed systems. One of the real strengths of open source software is that it creates toolkits that are shared and used freely from project to project. I've got a long article on open and closed system brewing in the back of my mind.
Saul discusses the explosion of groupware applications in his own lab as they've strengthened their toolkit. There are three or four commercial quality applications that have been spun out. The example code for video sharing, for example, is very short. Unfortunately its all in C#.
One of the applications that Saul says they use frequently is called the "notification collage" which reminds me a little of Etherpeg, except where Etherpeg just grabs JPEGs over the network and builds a collage from them, the notification collage provides users with an easy way to share snapshots of what their working on in a kind of collage like bulletin board that fosters group awareness of what others are working on and doing at the moment.
So, don't just build prototypes, build good, well-documented toolkits with examples and tutorials and then disseminate them within our community. Saul points out that Computer Science is not very welcoming of engineering projects. We need more conferences that accept engineering efforts, including toolkits as viable research efforts.