<?xml version="1.0"?>
<document>

  <properties>
    <author email="jon@latchkey.com">Jon S. Stevens</author>
    <author email="husted@apache.org">Ted Husted</author>
    <author email="jason@zenplex.com">Jason van Zyl</author>
    <title>New Project Proposals</title>
  </properties>

  <body>

    <section name="Subproject Proposals">

      <p>
        Not every software product is suited for life at DB. Before proposing
        a new subproject, it is important to read this document carefully and determine
        whether your product is a good fit.
      </p>

    </section>

    <section name="Criteria">

      <p>
        Here are some best practices that we will expect to find in a successful
        proposal. This is not a checklist, but guidelines to help communicate what
        is expected of a DB subproject.
      </p>

      <p>
        <strong>Meritocracy.</strong> Before submitting a proposal, be sure to study
        the guidelines that
        <a href="guidelines.html">govern DB subprojects</a>.
        These guidelines explain our system of Meritocracy, which is the core
        of the DB Project. If the product developers do not wish to adopt
        this system, then they should
        <strong>not</strong> donate their code
        to the Project, and should look elsewhere for hosting.
      </p>

      <p>
        <strong>Community.</strong> DB is a Project of the
        <a href="http://apache.org">Apache Software Foundation</a>. A prime purpose of
        the ASF is to ensure that the Apache projects continue to exist beyond the
        participation of individual volunteers. Accordingly, a prime criteria required
        of any new subproject is that it already enjoys -- or has a high potential for
        attracting -- an active community of developers and users.
      </p>

      <p>
        Proposals for non-established products have been accepted, most often when
        the proposal was tendered by experienced open source developers, who understand
        what it means to build a community.
      </p>

      <p>
        A design document, developer and user documentation, example code, and a
        working implementation all help to increase the likelihood of acceptance.
        Well-documented products tend to build stronger communities than
        products that rely source code and JavaDocs alone.
      </p>

      <p>
        <strong>Core Developers.</strong> To considered, a product must have
        at least 3 active developers who are already involved with the codebase.
        This is an absolute minimum, and it is helpful for there to more than
        three developers. It is
        <strong>very</strong> helpful for at least one of the
        developers making the proposal to already be active in a DB subproject or
        other open source initiative.
      </p>

      <p>
        At DB, the core developers of a product (the
        <a href="roles.html">Committers</a>) manage the codebases and make the
        day-to-day development decisions. We are only interested in products
        that can guided by their own development communities. DB provides
        the infrastructure, and some essential guidelines, but the Committers
        must take responsibility for developing and releasing their own product.
      </p>

      <p>
        <strong>Alignment with existing Apache subprojects.</strong> Products that
        are already used by existing subprojects make attractive candidates, since
        bringing such a codebase into the Apache fold tends to benefit both
        communities. Products with dependancies on existing Apache products are also
        attractive for the same reason.
      </p>

      <p>
        <strong>Scope.</strong> DB products are generally server-side
        software solutions written for the Java platform. Proposals for products
        outside this venue will have greater difficulty in being accepted.
      </p>

    </section>

    <section name="Warning Signs">

      <p>
        These are anti-patterns that we have found detrimental to the success of
        a proposal. Some of these are lesson learned from the school of
        hard-knocks, others are taken from proposals which have been rejected in
        the past. All will raise a red flag, making it unlikely that a proposal
        will be accepted.
      </p>

      <p>
        <strong>Orphaned products.</strong> Products which have lost their
        corporate sponsor (for whatever reason) do
        <strong>not</strong> make good candidates.
        These products will lack a development community and won't
        have the support needed to succeed under the DB umbrella.
      </p>

      <p>
        For example, we have seen proposals that contain paragraphs like this:
      </p>

      <source>
        FooProduct is currently a production quality product, and in
        fact is being used a live website. It was developed as a
        product by FooCompany, with the intention that we would sell
        it. However, due to various economic factors such as the
        decline in FooProduct's intended market and the
        recent difficulties in obtaining venture capital, we have
        decided that at this time it is not feasible for us to
        continue in that direction.
      </source>


      <p>
        The alleged quality of a product is not the prime criteria. To be
        accepted, we must believe that a product will attract volunteers to
        extend and maintain it over the long term. A product like this,
        arriving with no volunteer developers or open source community, does
        not further
        <a href="index.html#DB Mission">DB's mission</a>, and would
        not be accepted.
      </p>

      <p>
        We generally recommend that an orphaned product start with an
        independent host, and consider making a proposal after it has started
        to build a community.
      </p>

      <p>
        <strong>Inexperience with open source.</strong> We often receive
        proposals that start with "We will open our software if you
        choose to accept it." This is the wrong way to approach the proposal
        process. A closed source project does not have an open community, and
        so we have no way to tell if the developers can work in an open source
        environment. Products that have lived on their own and have started
        to develop their own community, have a much better chance of being
        accepted.
      </p>

      <p>
        If the product's developers have not worked with open source before,
        it is recommended that they spend some time contributing to an existing
        open source project before trying to manage one of their own. Since
        DB subprojects are managed by their own Committers, it is
        important that a new product supported by people who understand
        how open source works.
      </p>

      <p>
        <strong>Homogenous developers.</strong> Apache communities attract
        developers with diverse backgrounds. Products with a tightly-knit
        team of developers may have difficulty shepherding new developers
        into the fold. It is vital that we believe the developers will
        discuss development issues openly with the community, and
        <strong>not</strong> make decisions behind closed doors. We are
        especially wary of products with developers who all share a
        common employer or geographic location.
      </p>

      <p>
        <strong>Reliance on salaried developers.</strong> DB has strong ties
        to the business community. Many of our developers are encouraged by their
        employers to work open source projects as part of their regular job.
        We feel that this is a Good Thing, and corporations should be entitled to
        contribute to open source, same as anyone else. However, we are wary of
        products which rely strongly on developers who only work on open source
        products when they are paid to do so. A product at DB must continue
        to exist beyond the participation of individual volunteers. We believe the
        best indicator of success is when developers volunteer their own time to
        work open source projects.
      </p>

      <p>
        <strong>No ties to other Apache products</strong>. Products
        <strong>without</strong> a tie to any existing Apache product, and that have
        strong dependencies on alternatives to Apache products, do not make good
        candidates. Many Apache products are related through common licenses,
        technologies, and through their volunteers. Products without licensing,
        technology, or volunteers in common will have trouble attracting a
        strong community.
      </p>

      <p>
        <strong>A fascination with the Apache brand.</strong> The
        <a href="http://www.apache.org/licenses/">Apache Software License</a> is quite
        liberal and allows for the code to used in commercial products. This
        can induce people to donate a commercial codebase to the ASF, allow it
        developed as open source for a time, and then convert it back to
        commercial use. While this would legal under the Apache Software
        License, we are wary of proposals that seem to be more interested in
        exposure than community.
      </p>

    </section>

    <section name="Subproject Alternatives">

      <p>
      </p>

    </section>

    <section name="Who Decides">

      <p>
        Final acceptance is based the rules defined in the
        <a
          href="management.html">Project Management Committee Bylaws</a> which
        state that "Creation of a new subproject requires approval by 3/4 vote
        of the PMC." The proposal for a new subproject must submitted to the
        DB General
        <a href="mail.html">mailing list</a>, where the PMC
        conducts business. All discussion regarding the proposal will occur
        the General list, including the final vote.
      </p>

    </section>
  </body>
</document>
