Collaboration

The viability of collaborative development has been proven by the broad commercial acceptance of high-profile programs such as Linux, Apache, and Perl, and the well-publicized success of Red Hat, Inc. in turning Linux into a commercial product. A community experience offers standards of technical quality that very little closed software can meet.

Collaborative Development

With the popularity of development of open source, new tools for collaborative development are being created.  Jcorporate provides the infrastructure for enabling the rapidly growing number of community of companies, developers, partners and users of open source and community source software.  Our infrastructure enables our customers to collaborate with our support and development staff; as well as other customers.  From questions asked and answeres, we create a knowledge base of information for other users to utlilize.

Jcorporate is a leading enabler of the open source and community source collaborative development  through Project Portal - our unique global collaborative infrastructure of Web-based technologies and services that turn the process of open source development into a commercially viable platform.  Our Product Portal is a first of its kind bringing together numerous support and collaborative eServices.

Global Collaboration

Project Portal makes it possible for a worldwide community of developers, users, partners and support personnel to access a large pool of hosted project resources. Our infrastructure encourages sharing of information; facilitating ideas and discussion groups; it also offers support; as well as provides a mechanism to initiate new projects proposed by developers or organizations.This exciting model enables the creation of dynamic ideas and development. Here are some of the resources available to each product:

  • Online live Demos
  • Project News and Events
  • Online access to source code, including CVS archives
  • Help, User Documentation, Technical and Java documentation
  • FAQs
  • Contributors Lists, and Information on How to Contribute
  • Listserv Information
  • Project Task List
  • Count for the number of downloads
  • Discussion Forums for the project
  • Automated Notification of project updates
  • Known Bugs Lists,
  • Online HelpDesk for the project
  • Project Case Studies
  • Change History

These resources put control in the community and customers - to learn from the project and to collaborate with others to enhance the project over time.  Users ideas build on one another creating a best of breed software.  

Why does Collaboration Work?

Many industry experts believe open source movement is starting to have a dramatic effect on the conventional software development organizations within the Information Technology (IT) departments of large global organizations. The driving force behind this belief is that as developers, via the web, access, modify, and redistribute the source code for a software project, it can evolve at an incredible pace when compared to conventional proprietary software development. The quality of the code can improve through the efforts of a larger pool of motivated talent. Enhancements can be more rapidly incorporated and redeployed to the user community, resulting in a significant reduction in overhead costs. The feedback loop between user requirements and programmer delivery is then dramatically shortened for faster response to today's accelerated time-to-market imperative.

Rationale: World-class, quickly evolving solution

  • Quicker, best of breed development.
  • The code is open with updates and fixes published regularly.
  • There are more developers looking and working on the common source code, so there is higher quality and more-rapid innovation.
  • There is a central owning organization that sets schedules and priorities that is oriented towards working with the communities' organization's schedules and priorities.
  • A participating organization can reap the benefits of expertise not in its employ.
  • As interest builds in creating related components, those parts can move ahead at their own pace.
  • There is a place for both incremental improvement and reward for invention.
  • Better ability to avoid fragmentation
  • Easy access to source code
  • Mass distribution

Increased Commitment Means Less Risk

Regardless of who the sponsoring company is, there is a risk associated with selecting a proprietary product. Frequently, closed-box technology products pose too great a risk for many organizations because those organizations end up depending on another company for the development, maintenance, and evolution of parts of their own products.  

Since participants in the community have access to the source code and can reasonably expect that their innovations will appear in that source, those participants can see everything there is to see about the technology. By being part of a community of partners, the risk is reduced. Jcorporate creates a context in which commitment is less risk with our community collaborative development which gives members security and control to manage their own needs.

Closer Ties Between Development Groups

Community developers exchange useful information in the form of techniques, know-how, and experience of what works and doesn't. Thus, beneficial information exchange is facilitated by our community forums, and each participating organization benefits.

Since there are more development members pushing up both the innovation and quality, the new marketplace based on the community infrastructure is created more rapidly than it would any other way.

In our community source licensing there is a community of common interests centered around an infrastructure provided by Jcorporate, the developing organization. Organizations and developers are integral and are key to our community, and generally those organizations will have an interest in building components around the infrastructure.

Customer Members

Types of member customers which contribute to the forum.

  • Enterprise IT Members:
    Non-commercial application (in-house developers) using Jcorporate components for their organization's own internal use.  Enable companies to meet goals faster with less effort. 
  • Independent Developers:
    These community co-developers are key participants capable and interested in advancing the product, contributing code, comments, discussion, etc. as well as being an active user of the product. 
  • Commercial Software Members:
    Independent software vendors and system integrators, consultants which use the Jcorporate projects as components of their application product development and/or service solution. 
  • Service Provider Members:
    Deliver service over the internet and include Internet Service Providers (ISPs), Application Service Providers (ASPs), Portals and Web Application Developers, who deliver content and services across the Web.
  • Jcorporate Developers:
    Our developers actively support and advance the product, as well as acting as strong advocates, promoting the product, helping users, mediating listservs etc.

Contributors

The collaborative model is based on "network economics" - that is, the benefits that accrue to users (customers) increase as the number of customers increases. Each person working on it tends to have a particular area of interest, or perhaps a few areas. Development is done those inspired or needing a feature; people propose changes they want to make generally via the task list or forums, the changes are discussed, refined, and implemented.

The projects benefit from all contributions whether its from a contributor who submits one item and is then never heard from again, or from the work contributed by major and core developers who put in hundreds of hours per year on the project.  Contributions can be as simple as a documentation suggestion.

There are several levels of participation in the project:

  • Lead developer on the project guides the overal direction of the projects and ensures that projects enhancements in one products are integrated throughout.
  • Core Developers are the technical directors of the project and have direct access (called CVS write or commit access) to the project source repository.
  • Major Contributors are users make regular contributions and also have CVS write access to a project.
  • Contributors are people who participate in the mailing lists and make suggestions or occasional contributions.
The more you do, the more you're allowed to do. Access to each successive level of participation is controlled by the opinions of your peers. The more you submit, and the more your submissions are considered to be of value, the more 'merit' you acquire. Accumulate enough merit and you'll be admitted to the next level of participation. Almost all such decisions are made by the core team.
All contributions to projects are welcome! Developers find that their involvement grows rapidly, along with their level of activity in the project.

Contributor Incentives

Not only does Jcorporate have sufficient motivation to invent and innovate but for participating community members there are incentives to invent in the marketplace and protections for those inventions within the community. We offer a community tuned to encourage, give credit and safeguard innovation and invention. 

  1. Credit for Contributions
    Although Jcorporate has copyright on its own components and modifications made by members, credit in the source code is made to the contributor; and integrating components may contain the copyright of the contributing members. Also contributing members are promoted on site via the Contributors Page, if they wish to be mentioned (privacy policy).
  2. Financial Incentives
    One of the ways we are unique is that we have promotions on open source and financially compensate contributors on revenue earned on commercial projects.
  3. Membership Synergy
    We are prepared to list all open source projects and commercial source products which work with our components.  We want to assist members in the promoting their components which are built upon Jcorporate components.

Project Forums

Since this form of development is so highly distributed, with much of the work being done globally, much as the collaboration is done via online discussion forums. There are mailing lists and forums dedicated to each project and it is reasonable to allow at least 24 hours to pass before assuming any sort of consensus. In addition to the main discussion list and forums, there are other eServices which exist to keep people apprised of updates as they happen; such as the submission of problem reports or notifications of changes made to the source repositories.

There are a number of discussion forums associated with each project:
  1. Technical forum which is accessible once you have logged in. The list is definitely for serious technical discussion and is not intended for newcomers seeking consulting help.
  2. Newcomers forum which is accessible once you have logged in and is intended to help people new to the project.
  3. Core forum which is intended for discussions about the project by the core team and major contributors.

Tracking Bugs

Bug tracking takes place via an online eHelpDesk system. As new reports come in, or existing ones are updated, the information is posted online.  Every HelpDesk item is logged into a "category", and an "owner" is specified for each category - typically one of the Core Developers for the project. The owner is automatically notified via email whenever new requests are added, so that they can keep the item up to date with progress.  A project team owner then addresses the request, usually making a change or replying with a clarification or resolution to the problem. This resolution is automatically emailed back to the originator of the request, as well as being logged in the knowledge base for the project as a whole.

Source Control

Let's discuss how the source code itself is managed. Source is stored in a repository managed by the CVS software tool, which supports asynchronous distributed development very well. CVS is based on the underlying RCS (revision control system) software, but you don't need to know RCS in order to use CVS.

Like other source control systems, CVS maintains a history, so you can get a copy of a file as it existed on a particular date or as of a specific release, as well as see what all the changes have been, when they were made, by whom, and why. The ability to actually make changes is reserved to the members of the core developer group and major contributors. For more information about CVS itself, see the pages at http://www.cyclic.com.

CVS access can be via a variety of clients - either a command-line driven client, favored by many developers, or via graphical client/server programs that make the process of source code control more visual. We have also added jCVS, a web-based means of browsing the CVS archives for projects that don't need any client software beyond a web browser.

Making Decisions

In each development project there is a core group that manages changes made by a number of peers working independently, as some sort of coordination is necessary. Otherwise the potential exists for people to keep making conflicting changes or otherwise interfere with each other.

Whether to incorporate releases which are defect fixes is generally not hard to decide. Updates include details on the fix in the changes file, why it was necessary, and the fix itself.  Changes are generally discussed on the listserv or forums for any design input and issues garnering general feedback. Decisions are made mostly through consensus drawn from email and forum discussions.  Then one or more contributors  would work out the details, test it, and submit it in the form of a 'patch' to the mailing list. The lead developer then applies the changes to the code repository and the changes are reflected in a "Release early, release often" via early access versions and via the CVS. Other developers would then apply the new releases to their own systems and test the result, and then either suggest alterations or approve it as supplied before being release in a full release.

The main advantage to this commit-then-review process is that it tends to speed up development - individuals don't 'hang fire' waiting for changes to be approved; they commit them and then move on. It does need though increased vigilance on the part of the development team to ensure that the changes being made are, in fact, good and won't lead to problems later on. This development process is not static. It continues to evolve.

Ready for Release

New releases of a project are made available when there's consensus among the developers that it's "ready." Of course, sometimes new releases may come out in short order if a major problem was discovered in the just-released code. The core developers and lead developer has the responsibility for getting agreement on the release schedule, monitoring new commits which get made to fit the scheme of things, and building the release.   During this time the code is frozen with no new functionality being added. Problems found with an early release (ea) get incorporated into CVS, and depending on that process will determine when a new full release is announced. The announcement is first made on the project list servs and forums. Twenty-four hours later, the new release is announced on various mailing lists and Usenet newsgroups. People then start working on the code as usual, adding new features, and building up toward the next release.  This new code is maintained in the CVS archive.

We regularly update the components with fixes and enhancements. We recommend your updating the product regularly.  As a listserv member you get update notices of minor updates; and can contribute your ideas and comments on the focus of the group  - a good reason to join.  As a member of the listserv, you are also welcome to access the CVS archives for the most current release.

An Evolving Process

The development process is not static. It continues to evolve. No process is perfect, and the methodology Jcorporate projects use is no exception. We have specifically designed the product to allow an extensible framework to discourage fragmentation.   If you need to make modifications to the product that cannot be incorporated back into the core product...then please make it at the extensible level so that you can continue to benefit from updates.  Preventing fragmentation while advancing the product by incorporating enhancements should be the intent of the community members.  We realize that the collaborative approach recognizes that the primary value of a piece of software is the expertise represented by the people who developed it. We have an excellent expert team heading our projects. Our commitment is to providing a high level of service and hearing your feedback and suggestions, in the interest of avoiding software version deviations.
.
Join our development team as a contributor. Acceptance as a contributor is a sort of credential recognized in the broader open-source community. Being known as a "Jcorporate contributor" is a good thing.

Top of Page


Home | Products | Services | Partners | Customers | About Us | Login | Forums | Contact Us

Copyright © 2001 Jcorporate Ltd. All rights reserved. Copyright Privacy

Last Modified: 21-Aug-2003