OdeToCode IC Logo

Collaboration in the IDE

Friday, January 30, 2004
The ACM Queue has an interesting article on Building Collaboration into an IDE. The authors have been prototyping a version of Eclipse where IM, source control, screen sharing, and email augment the IDE. The goal is to give you more time to code while you spend less outside the IDE or away from the desk. Another goal is to provide additional context and traceability between code artifacts (source code files) and collaborative artifacts (IMs and emails).

I couldn’t stop thinking of questions and ideas while reading, particularly along the lines of how easy it might be to build this with Longhorn technologies.

This made me think of WinFS:

“For example, metadata that links source code with e-mail needs to be stored somewhere—perhaps with a special header field or with an URL. Where to store collaborative artifacts is another issue: You could try to juggle multiple stores (e.g., one for e-mail, one for source code, one for discussion forums, one for chat transcripts, one for bug tracking, etc.), or you could attempt to consolidate everything into a single store (e.g., the source-control repository).‘

This made me think of Indigo:

“An IDE augmented with collaboration requires some kind of supporting network infrastructure. Designing such an infrastructure raises the interoperability issues mentioned earlier (e.g., support for directory services, standards for messaging, etc.).”

Some things I read I just wish were already in VS.NET, like hovering over a checked-out file will tell you who has the file checked out, instead of just “another user”. It would be nice to put a watch on a file and have the IDE notify me when the other user checks the file in.

Being a Visual Source Safe user, it would also be great if the source control product didn’t feel 8 years old. I know MS is working on updating VSS, but I think there is a lot of catching up to do just to make it a solid and trustworthy product. Then I want all the all the bells and whistles and extensible plug-in support.