Slashdot Mirror


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.

24 of 61 comments (clear)

  1. If you're interested in Semantic Web software... by tcopeland · · Score: 5, Informative

    ...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.

  2. Am I the only one... by Face+the+Facts · · Score: 2, Offtopic

    ...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
    1. Re:Am I the only one... by millahtime · · Score: 2, Insightful

      "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."

      Did I miss in the article where they said 2 coders on the same computer??? When they talk about colaboration they don't say 2 conders on a computer or people looking over your shoulder.

    2. Re:Am I the only one... by WeeBull · · Score: 5, Insightful
      I agree with your sentiments, but in my experience there's at least one more scenario where pair programming is benefitial - where neither coder A or coder B have any experience with the codebase in question. In cases like that, I've found it incredibly valuable to have someone to talk to and bounce ideas and suggestions off of while trying to figure out exactly what (nevermind how? or why?) a particular piece of code or sub-system does.

      Oh - and you're way off topic, btw. RTFA =)

    3. Re:Am I the only one... by tfinniga · · Score: 2, Interesting
      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.

      In my experience, if I'm paired with someone good, and either one of us is in the zone, neither of us speaks. It's just a matter of being polite - when I'm not at the wheel I have time to read the code, and try not to talk unless the other programmer is moving on with something obviously unfinished or flawed. It's like a constant code review, but it's a lot more interesting to read the code as it's written.

      --
      Powered by Web3.5 RC 2
    4. Re:Am I the only one... by bexmex · · Score: 2, Insightful

      (Score:0, Troll)

      Im going to have to agree... this article seemed like yet another big fluffy acedemic rant about what's wrong with computer software these days, without giving ANY practical new ideas.

      I mean, look at his roadmap at the end: Be people-centric? Collaborate? Use standards? Keep improving? Is that supposed to be profound? I doubt its even correct!

      Its neither necessary nor sufficient for developers to do any of the above and make great software. Is 'C' people-centric? How much GREAT software was written by one or two people? How many open standards are poorly written and SHOULD be ignored? If we all listened to this guy, the web would NEVER have gotten off the ground - we be stuck in collaboration meetings in VRML-land, discussing how to improve our people-centricness.

      I started out interested in the article... thinking I'd get something along the lines of 'what would Engelbart do?' But no... it just turned out to be yet another Johnny-Come-Lately praising Blogs, Wikis, and Google, and without anything original to add. Yet another ivory tower HACK trying to justify his mongo paycheck.

      I KNOW this one will get moderated as a TROLL, but I dont care. These kinds of people really cheese me off...

    5. Re:Am I the only one... by wtrmute · · Score: 2, Interesting

      You're certainly not the only one. I'm not one of those, though -- I often find it useful to speak aloud about what I am doing to help me understand a problem better. The thing is that not everyone can structure their thought process well enough to expose it completely throughout -- people have to understand you can't do it, but you have to understand that some can, too. And when they can, it's a great tool, certainly.

      However, if you pair up two coders who don't have an about equal level of skill, then you're wasting potential -- it becomes a tutoring session, but the both cannot come fully into their own, because one is straining to understand the model while the other is held down to trying to chew everything down for the first.

      I fail to see, though, where paired programming comes into the discussion? I couldn't see any mention of it in the article...

  3. Eigenpolls by AeiwiMaster · · Score: 3, Informative

    I have made a Collaborative Tools
    which i call eigenpolls

    Check it out.

  4. Collaborative Work vis a vis locked down by beacher · · Score: 5, Interesting

    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

  5. people-centric by millahtime · · Score: 3, Insightful

    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)

  6. comments by Hangin10 · · Score: 3, Interesting

    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.

  7. That's All Fine and Good, But... by Jameth · · Score: 4, Interesting

    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.

    1. Re:That's All Fine and Good, But... by AndroidCat · · Score: 2, Insightful
      However, relational databases are relatively simple.

      But that's the whole point--Now it's simple. When I'm doing something that needs a relational database, I don't have to re-invent one. There might be fiddly details with plumbing and which one to use, but during design, I can draw a relational database box on the whiteboard without worrying too much about what's inside it. If I want to connect a bunch of tables, select what I want, sort them a particular way, it's there.

      --
      One line blog. I hear that they're called Twitters now.
    2. Re:That's All Fine and Good, But... by VisorGuy · · Score: 2, Informative

      The proposal is at the end of the article, in the "Roadmap for the Future" section...
      I question whether you made it that far before deciding to rant.

      To Summarize:

      • Be people-centric
      • Be willing to collaborate
      • Create shared language - most important and difficult IMHO
      • Keep improving
      --
      This user account is inactive account replaced by the PDA
  8. Help us to improve MediaWiki by Eloquence · · Score: 5, Informative
    MediaWiki is the open source software running Wikipedia, Wikibooks, Disinfopedia, the MozillaZine Knowledgebase, and many other wikis. Eugene is correct in noting that we need to work together in improving our collaborative tools. Wiki technology is one of them. Use it for your open source software documentation. Add a link to your documentation wiki to the software's "Help" menu, so that your users are encouraged to fill the gaps.

    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.

    1. Re:Help us to improve MediaWiki by Jameth · · Score: 4, Insightful

      What I don't get is why the open source groupware projects aren't integrating wikis. It has been solidly proven that wikis can be powerful in certain situations. And, in a collaborative environment, there is virtually no alternative solution for what a wiki provides.

      Also, if a good groupware system integrated an editor into the client and supported a slightly more extensive set of tags, this could result in easy to edit, good-looking documents made collaboratively.

      Why are so many open source projects so densely certain that they must imitate proprietary crap?

  9. File Systems by akaina · · Score: 3, Informative

    A number of applications (both commercial and open source) claim to solve the document-sharing problem, and yet, the predominant method for sharing files is to email them back and forth. This is the computational equivalent of sneakernet. If the tools that purport to solve this problem are good, why aren't we using them?


    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.
  10. This morning I was... by BigGerman · · Score: 3, Funny

    ...reading this very article over breakfast and I was thinking: why something like this is not discussed on Slashdot instead of the recent crap!

  11. Document Creation Tools Need To Be Fixed by theManInTheYellowHat · · Score: 5, Insightful

    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.

  12. What about Plone by !ucif3r · · Score: 2

    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
  13. me too,(at the risk of /.ing myself) by Avishalom · · Score: 3, Informative

    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...

  14. similar discussions on /. by wjzhu · · Score: 2, Insightful

    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.

  15. Another collaboration tool by jon514 · · Score: 2, Interesting

    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.

    1. Re:Another collaboration tool by ka9dgx · · Score: 3, Interesting
      It appears to be different from a Wiki in that comments are a separate layer from the base document. One of my big complaints about HTML is that it doesn't allow MarkUp, it just forces you to merge tags into an existing document instead.

      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--