The Importance of Collaborative Development
Eugene Eric Kim writes: "A few months ago, I wrote an essay entitled, "A Manifesto for
Collaborative Tools," outlining a vision for how we can and should be
making collaborative tools more interoperable. The article was
published in the May issue of Dr. Dobb's Journal and is now available
on the web." This manifesto is a good one, particularly if you aren't as a familiar with Doug Engelbart as you should be. There's also some interesting links to learn more about the Semantic Web, and social networks, well worth checking out as well.
I don't know about your workplace environment, but my company has locked down shares and peering due to the fact that this an infection vector.
I think peering/collaboration is the way to go, but this is becoming increasingly difficult thanks to the lax default permissions that was inside windows (yeah I'm not a windows admin, and the default share was always set at world full access). The knee jerk reaction was to disallow *all* peer/sharing.
I'll probably get ripped and modded to hell for this but I was looking forward to the "hive" type setups that MS was proposing for peering(for work this would be a godsend, I wouldn't do this at home tho). My concern was their security model.
Just how in the hell can this be done when virii explicitly target this functionality? CVS / Subversion is not an answer for business/end users...
B
Having more than one person on a project helps
a whole lot. Especially when you have people
with different skills that are all good coders.
I'm working on a "hobby" project right now, where
we have 1 person that does alot of the major coding
because he is really good with the catagory the
software falls into. Another person codes the
UIs, and I do alot of other work, planning and
support (I coded the network classes for our
project, for example). Things are working quite
well, it's been really nice.
Is there actually any proposal as to how this is done?
The manifesto makes grand claims about unifying our collaborative language, but totally understates how difficult this is. The problem usually is that we just do not have a solid model of what can and cannot be done, and we likely never will.
The author pointed at SQL as an incredibly important standard for how data is handled. However, relational databases are relatively simple. We know most everything they can do, so we can define it. And, even, with that, databases are not entirely standard. Most databases have their own little features, often not in the standard.
Look at another good example: filesystem structure. Despite how well defined the Filesystem Hierarchy Standard is, distros still tend to be non-compliant. It's an incredibly simple system, and we can't even reliably follow it. Is aiming at standardized interfaces between collaborative applications truly reasonable?
Hopefully, a few things can be standardized, as they are recognized as being universally useful. Some basically are. For example, e-mail is e-mail. There's not too much more to it. Maybe we can slowly define those things which we understand and see the importance for, but moving much beyond that is likely infeasible.
By having a set of Markup layers, gets much easier to see and manage comments, etc. Ideally, you should be able to simply toggle each layer of markup on and off, just like a mutli-layer image in PhotoShop or Paint Shop Pro.
Some day we'll get real Hypertext, but we're defintely not there yet, and XML isn't it either.
--Mike--