|
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.
- 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).
- 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.
- 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:
- 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.
- Newcomers forum which is accessible once
you have logged in and is intended to help people new to the project.
- 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.
|