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.
...check out SemWebCentral, which is a GForge installation hosting a fair number of Semantic Web-related projects. There's even an OWL mode for Emacs!
And there are also some tutorials and such-like.
The Army reading list
...who absolutely positively -HATES- the idea of 'paired programming'? While I wholeheartedly agree with having lots of meetings and discussions during the design phase (requirements, functional spec, detailed design) and during the review phase (post mortem, code reviews) I feel that having two coders on one computer is extremely wasteful and unbelievably stressful.
When I'm in the 'zone' I can't talk with somebody else, I can't verbalize why I'm writing a code fragment the way I am writing it without getting yanked out of it. If the design is done well, and programmers are fairly equally competent, pairing two of them is going to probably be LESS productive than having only ONE, let alone two.
The only time I can see paired programming being useful would be in a tutoring way, where coder A that has lots of experience with the codebase is paired with coder B that has never seen it, but this is more for getting coder B up to speed rather than to improve productivity and code quality
-- BSD or Bust
I have made a Collaborative Tools
which i call eigenpolls
Check it out.
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
This is one of the most important things in creating any product. I have seen in software and engineering, programs and products created that were technically really cool but didn't fulfil what the "people" wanted.
Creating applications that are people-centric are key. They can make or break a product. I use an app that has a few bigt bugs but it was designed to be people-centric so I still love it. It was coded horribly, has crashed for some dumb reasons but how it was designed is great. (A note, I am working with the author to iron out those bugs)
Evolution or ID?
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.
MediaWiki in particular implements many ideas that were already envisioned by Ted Nelson and Doug Engelbart. It does show backlinks, but perhaps more importantly, it also allows dynamic inclusion of any page in the current development version. For example, you could have a header and footer in your documentation that is the same for every page. What's more, you can add parameters to these templates to dynamically search and replace patterns of text in the template before transcluding it. This will allow us to replace the currently statically hacked Wikipedia infoboxes with dynamically included and parametrized templates, for example. One long term feature that might be worth hacking on top of this would be transclusion of labeled sections from another page, or interwiki transclusion.
Check out the current feature list and the development roadmap. Subscribe to wikitech-l to help us in improving the software. In true wiki spirit, we are fairly liberal at handing out CVS access (over 40 developers with CVS access at present), so please do ask if you want to work on a larger project.
There are many other wiki engines that are worth working on, such as TWiki and MoinMoin. Their main deficiency, in my opinion, is that they do rely primarily on the traditional wiki link pattern of CamelCase, which is nice for geeks but very ugly for everyone else, and also useless for search engines. MediaWiki uses [[free links]] instead, which are harder to type, but look just like normal links to the reader. Still, working on any other wiki engine is a lot better than starting yet another one.
A collaborative tool which is badly needed is a free software clone of SubEthaEdit. Combine wikis with real-time editing and the fun really begins. I imagine something like that might be hackable on top of a powerful graphical editor like Kate. For now WebDAV-support for MediaWiki would also be very cool, as Kate/KDE already supports editing WebDAV resources. So many worthwhile hacks, so little time.
This is an area where open source coders can make a big difference while corporations are still bewildered by the fact that open wikis can produce useful content. So please, let's work together on these tools.
Buzzsaw is an amazing piece of software that many companies in the A/E industry use. It's not free, but if you're rolling you own it's a good place to get some ideas.
Autodesk Buzzsaw
Doing everything via a share would require a massive amount of permission adjustments that users just can't handle easily. Not to mention, file systems are only useful when two users are on the same network. An internet filesystem is simply not practicle enough to use on a daily basis. This may be one place where Internet2 might show us what's possible.
Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose.
My company's products specialize in the semantic web and ontologies. They were born out of a project at University of Manchester in England.
This guy is way out there
...reading this very article over breakfast and I was thinking: why something like this is not discussed on Slashdot instead of the recent crap!
The average user needs to be able to create the docs and the tools need to do the colaboration. It has to happen way before the the save-as menu option. It also needs to happen with out the users even knowing it is happening.
I also think that the whole "document as a file" scheme needs to go away. The printed copy needs to have watermarked inside it the version and date it was created / printed. But the document is an ever changing entity that should be accessable and modified but not saved as a file. As soon as someone has a portable, editable file, the whole system is broken. Just like the floppy breaks the network.
CVS et al. needs to be done at some level so that the user never even knows it is happening. I believe that the whole co-laboration methods that we have currently are great for programers and techies but the average user is still shaking their heads in confusion. Just like what the average user is thinking about public key encryption.
I just found out about this software yesterday on Slashdot. No one has mentioned it yet. It looks like some excellent software built with standards and interoperability in mind. Unfortunately with products like Microsofts Sharepoint focusing on... well... Microsofts bottom line interoperability may not be something easy to achieve.
"Take that Lisa's beliefs!" - Homer Simpson
I am now working on an OSS project with a lot of these ideas in mind.
Discourse District
A dynamic repository for community writings, a mirror, mapping the writing community.
(the link above points to an abstract, the link to the system is at the bottom)
basically it is a wiki adaptation with touchgraph interface, that is meant to be a community utilized concept map.
Born out of a need to define the Complexity community, its scope, and the fact that no one person could define it , since everybody else would disagree.
This way the community would be defined by anyone adding their activities, and a graphical map would be a new form of definition
That number again '0'(Chief Wiggham)
I am new to this and would appreciate your comments on
1. Concepts
2. UI
3. publication
4. that stupid IE6 SP0 bug on calling an applet from the contatining page and getting the width...
-- Avishalom is usually vish
This manifesto is a good one, particularly if you aren't as a familiar with Doug Engelbart as you should be.
So...if you're familiar with Doug Engelbart, the manifesto is not good?
Is that right? I have to dig deep for my 9th grade geometry skills.
If not familiar, then good. So it follows that if not good, then familiar. Hmmm, I guess I didn't get it right. Still, the sentence is an odd one.
I am sure "collaborative software" as a topic has been discussed much on /. but is there a good way to get to these related forums for people who just visited this one?
This would be an enhancement along the spirit of the article being discussed.
I've been working on a tool for a while which may be of interest in this discussion. The site is at www.forcomment.com.
The concept is that a single user tends to create a document (or part of one) and usually then e-mails it out to others for comment. I allow the user to upload the document to our site, convert it from native format to HTML (where needed), invite those required to comment, and allow discussions to happen at the sentence level in the document. It should also work from all browsers. It is being used successfully by several UK universities now for Europe-wide projects.
I've come across other ways of doing this before, but they all seem to be embedded into proprietary document formats or editors, so requiring that all parties collaborating have the same editing software.
Once I got over the "neato" factor of touchgraph, I found myself wondering "how on earth could anyone really find this useful?"
It pops and jiggles around, thus being incredibly distracting. Aside from not being much of a help to the typical ADD-R afflicted geek type, it wastes a lot of time and space doing so until it "settles" down.
It has no history. No way to go "back". No way to reference the history, with even a list, let alone a tree.
It has no spatial organization (other than essentially "random"). You spend a lot of time hunting down anything interesting. If one could draw on the background and pin down nodes so they never ever moved, that would be interesting. Not sure that would help much.
I'm sure the true believers will come popping out of the woodwork saying how this toy somehow aligns with your mental chakras and makes you instantly more productive, but I just cannot buy it. I prefer interfaces that don't jiggle like jello, and I think so does almost everyone else.
I've finally had it: until slashdot gets article moderation, I am not coming back.
Hey, I know that name.
He should've gotten a C programmer to collaborate with him on cgihtml.a... because he obviously can't write stable code all by himself.
Do daemons dream of electric sleep()?
The semantic web is a disaster. Designing and enforcing semantics is a job for a computer. But these dolts at the semantic web project believe everyone should be involved in enforcing semantics. Even people who can't define semantics. (Semantics are patterns of knowledge linking the syntatic layer of a langugage to the conceptual layer). Everyone in the AI community thinks it is a waste of time.
I thoroughly enjoyed the article, and felt it hit the nail on the head on a number of issues. It's very useful to step back and look at the big picture and try to imagine where we are heading. This is truly Stuff that Matters.
/. readers. While a story about the latest Microsoft faux pas might generate 600 or more comments, an article as articulate and thought-provoking as this has drawn, at time of writing, a paltry 40 or so. Seems we don't want to collaborate on collaboration.
That said, I feel disappointed at the apparent lack of interest among
My thanks to those of you that RTFA and take the time to compose your thoughts and share them with others. You are the ones who make putting up with all the "frist post"-ers worthwhile.
- Print this article and comments
- Mark up the paper with a pencil, crayon, yellow highlighter, etc.
- ponder how anyone else is going to see an internet accessible copy of your markup layer.
You can markup a copy of the document, but you can't do something as trivial as "link to characters 314-395 of document URL://whatever". If you want markup, you have to have write access to the document, you can't include it by reference, OR you have to copy the whole document. Then you have to merge your markup into the document, you can't keep it separate.We've got machines that process billions of instructions per second, but we can't get a snippet of a web page to link? What a crock!
--Mike--