Apereo Incubation Process
Apereo Incubation Process
Section 1. Incubation - Rationale and Background
- An incubation process plays a significant part in the formative stages of the path from innovation to sustainability for a software project or community. It supports a critical part of the software and community lifecycle, bringing the experience of those who have travelled the path before – successfully or unsuccessfully – to bear for the benefit of the new project, and the Apereo community as a whole. Some of the collective experience the incubation process channels is relatively hard-edged; the need for a consistent inbound and outbound licensing regime, for instance. Other areas, such as the development of sustaining communities around software artifacts, reflect specific experiences in specific contexts, and are far more difficult to codify. This is why incubation is, at core, concerned with scaffolding a systematic mentoring process, rather than simply laying down a set of "rules" to follow. The process is two-way: in addition to the benefits for the software or other community in question, it should add to the collective experience of the Apereo community as a whole in clearly understood and documented ways wherever possible.
- The experience Apereo marshals and seeks to extend represents the needs of education in a number of countries, and in particular represents a range of experiences within higher education; teacher, researcher, software developer, learning technologist or those engaged in institutional management or leadership.
- The objective of the incubation process is not to guarantee sustainability, but to ensure that a number of criteria determined by collective experience are met at a formative stage of development - before a project or community is approved as a endorsed Apereo project. The incubation process serves as an entry point for a project or community seeking to become part of Apereo.
- Sustainability is not an abstraction, but a facet of the software or community lifecycle. A project that does not progress from incubation to operate as an endorsed Apereo project should not be considered a failure. There are a variety of reasons why this might happen, ranging from technical feasibility to lack of broader community interest. The process is designed to identify such issues and test the viability of a project from a number of perspectives at an early stage of its development. This outcome of the process acts to mitigate against an extended investment of resources by institutions or individuals where this is inadvisable. This, in itself, represents a significant benefit of incubation.
- Apereo is an organization of institutional and other members that seek to “collaborate to foster, develop, and sustain open technologies and innovation to support learning, teaching, and research”. Full participation in the community brings a series of tangible benefits for a nascent project, ranging from access to the experience of others working in similar fields as mentors, through to Intellectual Property Rights (IPR) management, technical expertise, licensing, legal, meeting, and communications infrastructure.
- Participation also provides access to a range of potential global adopters and contributors, and to the outreach resources of the Foundation itself, with, for example, conferences and events spread across eight countries on four continents. Fundamentally, participation allows a project or community to become part of a larger network, and gain the benefits of network effects. This network is not confined to membership of the Apereo Foundation. We seek to build reciprocal relationships with other similar organizations. This is at the heart of our growing relationship with the ESUP-Portail consortium in France, and our developing regional foci in Japan, South Africa, and Europe. We intend Apereo to become a more powerful voice for international collaboration in education, supported by a culture of contribution.
- A supportive incubation process, instilling and refining our core values, in addition to developing practical sustainable solutions, is a formative stage of developing that culture.
- Incubation Proposal:
- A community member or members submit an Incubation Proposal to the Incubation Working Group (IWG). Incubation Proposals are tracked appropriately in a manner that is both transparent and auditable. The IWG will reach a preliminary determination as to whether a candidate proposal will proceed to Incubating Project, Unsponsored Contribution, or Incubation Declined, and outline the reasons for this choice to the Apereo Board. The board will approve this, or seek further clarification, the objective of which is to create consensus between working group and board. The Incubation Proposal may be for a new project to be developed under the auspices of Apereo or may be an existing project or community seeking Apereo recognition.
- Members of any body considering an incubation request will be bound by the Apereo Foundation Conflict of Interest policy. This can be found in the Apereo bylaws at http://www.apereo.org/content/bylaws.
- Approval: When a project is approved, and in consultation with the authors of the Incubation Proposal, the IWG:
- Assigns a Mentor
- Establishes an approximate Incubation Timeline.
- Progress: The incubating project works with a mentor or mentors to record progress against the criteria set to exit incubation as an Apereo Endorsed project (see section four of this document for exit criteria). The Mentor reports progress to the IWG at least once per quarter, or against milestones set on the Incubation Timeline.
- Review: IWG reviews incubating projects quarterly, or according to pre-determined points on the agreed Incubation Timeline, and determines whether to recommend the project for sponsorship continue incubation or terminate incubation. These judgments will be based on the exit-criteria outlined in Section Four of this document. Such decisions will be arrived at consensually with the board.
This process describes how an Incubation Candidate or other Incubation Proposal would progress from submission to full acceptance as an Apereo Project.
- Proposal Submission: A community member or members may submit an Incubation Proposal to the IWG. Incubation Proposals are tracked appropriately in a manner that is both transparent and auditable. The IWG will reach a preliminary determination as to whether a candidate proposal will proceed to “Incubating Project”, “Unsponsored Contribution”, or to decline the incubation proposal, and outline the reasons for this choice to the Apereo Board. The board will approve this, or seek further clarification, the objective of which is to create consensus between working group and board. The Incubation Proposal may be for a new project or community to be developed under the auspices of Apereo or may be an existing external project or community seeking Apereo recognition. Members of any body considering an incubation request will be bound by the Apereo Foundation Conflict of Interest policy.
- Proposal Content: A proposal for admission to incubation is made to the IWG via at incubation[at]apereo.org[dot] This should contain the basic information listed in (a) to (j) below. A proposal that relates to an existing Software Community is passed directly to the relevant Project Governance structure upon receipt by the IWG for consideration. The Chair of the IWG and Lead/Chair of the appropriate Software Community agree a means to progress the proposal as soon as is practicable.
- The proposal would be expected to be less than 2 pages in length.
- A proposal must contain:
- A proposed name for the project, together with a brief explanation of why the project wishes to enter Apereo incubation, and how the project would benefit higher education.
- A short preface for the mailing lists, for use if the Project or Community is accepted
- A proposed Project Lead or Community Chair, with contact information
- Two or more organizational recommendations from representatives of members of the Apereo Foundation.
- A list of the initial contributors for the Project or Community
- An overview of the aims of the Project or Community
- A technology overview if known
- An overview of any current user base or user community
- An overview of how the Project or Community relates to other parts of Apereo, if appropriate
- A pointer to any current information (for example, an existing Web page) for the project
- Submission Review
- New Projects and Communities: The IWG and the Apereo Board must agree on proposals for a new Project or Community, or the acceptance of an existing project or community as an Apereo incubating project. The IWG will review a proposal and any resource implications, particularly in terms of available mentors, and make a recommendation to the Board. The Board may choose to approve this by email, request further information, or recommend discussion at the next Board meeting.
- Consensus: The objective of each of these steps is to create consensus between the bodies concerned - project or community seeking entry to incubation, Incubation Working Group and Foundation Board, - around agreed actions that are best for the future of the specific project or community and the foundation itself. Should consensus not be reached, conflicthttps://www.uspto.gov/trademarks-application-process/search-trademark-da... resolution may be initiated (see 3.K below).
- Acceptance as an Incubating Project or Community: Once it has been accepted for incubation, a project or community may use the following Apereo technical resources:
- SVN for version control
- JIRA for bug tracking
- Confluence as wiki space
- Mailing lists
- Web Presence
- This list is intended to be minimal and indicative rather than exhaustive. Projects with more specific needs may raise them with the Foundation Executive Director.
- Post Acceptance and Foundation Next Steps: Once a project has been accepted for incubation, the following actions take place
- The project officially becomes an “Incubating Project” or “Incubating Community” under the auspices of Apereo.
- The IWG nominates two Mentors for the project. The Mentors act as a bridge between the IWG and the project. In conjunction with the incubating project or community the Mentors establish an Incubation Timeline and ensures that the project or community understands the exit criteria (see section five of this document). The timeline should be agreed with the IWG.
- The IWG assists the incubating project in the initial start-up to use the Apereo resources described above, if appropriate. These resources should be set up in Apereo infrastructure unless the Incubating Project or Community and IWG decides otherwise. Members of the IWG will create resources (svn, jira, wiki etc.) and access as required.
- The IWG assists the incubating project in performing appropriate licensing, contribution, trademark, and other legal arrangements.
- The IWG adds the project to the incubating projects space on www.apereo.org
- Post Acceptance – Project or Community Next Steps: A Newly Incubating Project or Community then performs the following actions
- Indicate that the project is in incubation (though not yet fully endorsed/supported by Apereo).
- Display the Apereo incubating project logo to indicate affiliation.
- Use Apereo infrastructure for development and collaboration unless an alternate infrastructure is agreed by IWG to be more appropriate.
- Incubating projects and communities are encouraged to participate in Apereo conferences and other events. Time will be reserved in the principle conference schedule for “meet the incubators” session/s.
- Periodic Review: Projects in incubation will undergo periodic reviews by the IWG as determined by the project incubation timeline that may have one of the following outcomes
- The project will be recommended to the board or appropriate community governance structure as a fully endorsed Apereo project or community.
- The project will remain in Incubation.
- The project will be asked to become an Unsponsored Contribution due to lack of viable community.
- The project will be asked to retire due to lack of progress. or the project discontinues its association with Apereo (by self-sponsoring or migrating elsewhere).
- Promotion to full-fledged product
- The project may be promoted to Endorsed Project or Software Community when it meets legal, governance, community, alignment and synergy together with the Infrastructure requirements outlined in section five of this document. When these requirements are met the IWG will recommend to the board that the project be promoted to Endorsed Project status. Endorsement of a project requires a positive vote of the Apereo Board.
- Termination of Project, Software Community Endorsement: Either the Apereo Foundation Board or Incubation Working Group may terminate recognition according to the following conditions
- The IWG may vote to recommend termination of endorsement to the Apereo Board, which should discuss and vote on the issue at its next meeting. The Board is bound by Apereo bylaw to require a two-thirds majority vote in favor of termination.
- The Apereo Board may vote to recommend termination of endorsement to the IWG, which should discuss and vote on the issue at its next meeting. The Board is bound by Apereo bylaw to require a two-thirds majority vote in favor of termination.
- The Project Governance structure may vote to terminate recognition.
- Once one of the above in voting procedures is completed, termination is effective at the second scheduled meeting of the Board or Committee that did not execute the vote, or in 90 days, whichever comes first. If the termination of endorsement vote is rescinded, termination is no longer effective.
- It is expected that an effort will be made to resolve any issues related to the sponsorship termination prior to the procedures being put in effect.
- Conflict Resolution:
The objective of the incubation process is to provide a supportive and transparent environment for nurturing new projects and communities. It is built around the development of consensus between appropriate bodies within Apereo: Board, Incubation Working Group, and, where necessary, governance bodies of existing software and other communities. Consensus will normally be created by communication and negotiation. Where this fails, mediation by institutional representatives external to the case in point will be solicited.
The minimum requirements that a project must meet to exit the state of incubation are set out below. Incubating projects and communities should be work on fulfilling these requirements throughout the incubation process.
- All source code, project materials, and other distribution elements should be properly licensed with an approved outbound license. See “Apereo Licensing Policy” https://www.apereo.org/licensing, as well as the requirements of the specific outbound license, for further details.
- Appropriate licensing/copyright assertions and other notices, included in the overall distribution, codebase, and individual source code headers should be in place. Details are in “Implementing the Apereo Licensing Policy”, as well as the specific outbound license. No license-incompatible 3rd party dependencies, and no unlicensed code/dependencies should be included or redistributed anywhere in the code base.
- Appropriate Contributor Agreements should be on file, including: Individual Contributor License Agreements (ICLAs) for all active/former contributors, Corporate Contributor License Agreements (CCLAs) for all employers with employees contributing, and Software License Grant Agreements (SGLAs) for any significant pre-existing bodies of work being contributed to the project.
- The project or community name should be checked for trademark issues. The Incubation Working Group will check project name against US patent and trademark. Descriptive names such as Calendar Portlet do not need to be checked. Following is the link for doing a trademark search with the US Patent and Trademark Office: https://www.uspto.gov/trademarks-application-process/search-trademark-da...
Demonstrate an active and diverse development or participant community. The Incubation Working Group will take a range of factors into account in judging progress in this area, including;
- The level of community involvement, including: What is the number of participants? What level of participation is there? What activities do participants undertake or what artifacts have they created?)
- The organization of the community, including: What roles are in place? Who occupies those roles? How do those roles interact among one another and with the community?
- The operation of the community, including: What activities/events/artifacts are created/managed by the project to foster participation and development? How are decisions made?
A project governance structure should be created to oversee the project. Examples of open source software governance models are available from:
- Standard voting practices have been adopted.
A non-binding example can be found at: https://wiki.jasig.org/display/INCU/Jasig+Project+Voting+and+Decision+Ma...
- The project has adopted a conflict resolution policy.
An example is offered in this process (see Section 4.K above).
- Release plans are developed and executed in public by the committers.
- At least one release has occurred during the Incubation process.
- Alignment & Synergy.
The Incubating Project should consider the use of other Apereo software where appropriate, and develop synergistic relationship with other Apereo projects wherever mutually beneficial. Evidence of consideration or adoption should be noted.
Items 1 to 4 below should be in place for software projects and communities.
- A software versioning and revision system is in place.
- An issue tracking system is in place.
- Mailing lists or other clear communications channels have been created and publicised.
- Future plans, directions and objectives are articulated in a readily accessible format.
- Project website is current, and contains instructions for installation and configuration.
Incubation Candidate - An Incubation Candidate is a project or community that wishes to apply for entry to the Incubation Process, but that may or may not meet all the criteria for admission.
Endorsed Project or Software Community - Offical Apereo project with an appropriate governance structure and supported by a community of users and developers. A software related project with more than one major release would normally be considered a software community.
Incubation Process - The Apereo Incubation Process is the process whereby open source software projects and communities are proposed, incubated, evaluated, progressed, and become full-fledged Apereo endorsed projects and communities as appropriate. Software that relates to an existing project should normally be transferred to the existing project governance structure for incubation and governance.
Incubation Proposal -A proposal to allow a project or community to enter the incubation process as an incubating project. Such proposals will contain the names of two Organizational Sponsors that are Apereo Foundation members
Organizational Recommendations - In order for a project or community to enter incubation, it must have expressions of support for entry from two organisations which are members of the Apereo Foundation in good standing. No financial sponsorship or other resource is implied by such nomination. The nominated organizational representatives of the member organization should make such recommendations.
Incubation Timeline - An approximate duration for the incubation process, established with the incubating project by negotiation when it enters the incubation process. This is intended to be a realistic and conservative “guiding statement”, setting expectations of project, incubation working group, board and broader community (including potential adopters) appropriately.
Incubation Working Group (IWG) - The Incubation Working Group (IWG) oversees the incubation process. The IWG is also responsible for periodic review of unsponsored Contributions. The Incubation Working Group consists of volunteers solicited from the Apereo community and approved by the Apereo Board. As with all groups operating under the auspices of Apereo, the Working Group is bound by Apereo by-laws. The Executive Director is an ex-officio, non-voting member of the group. Members of the IWG are expected to serve as mentors once they achieve the needed qualification of at least two years experience of participation in a software community. The IWG will play a central formative and coordinating role in the development of the Apereo Mentor Program. The IWG is responsible for:
Assisting proposed projects in conforming to Apereo guidelines;
Assigning a Project Mentor, a member of the Apereo community assigned to help the Incubated Project reach acceptance;
Evaluating progress of the Incubated Project on a regular quarterly basis and recommending graduation to an endorsed project, continued support, or retirement, according to established criteria
Project Lead - Individual making to incubation request. The IWG will work with this person to complete the tasks to exit incubation and become an Endorsed Project.
Mentor - The Mentor is a particular person assigned by the Incubation Working Group to guide a candidate project through incubation. Mentors will normally have at least two years experience of participation in an endorsed software community. This need not necessarily be an Apereo endorsed community. Mentors participate in the Apereo Mentor Program. This program provides opportunities for training, monthly discussion of common issues and other opportunities to develop the skills required of mentors.
Board - The Apereo Board provides strategic leadership for Apereo, and is elected by representatives of Apereo member organisations. It oversees and supports the IWG and the process they execute. The board provides strategic guidance for the IWG, and is the overall custodian of foundation resources. The IWG provides additional strands of community and technical input for the board, particularly around the health of incubating and endorsed projects. Alignment and consensus between these two groups is an important component of the incubation process. Regular public and bi-directional communication is essential to creating and maintaining this consensus.
Unsponsored Contribution - In some cases, software may be contributed without being made by a sponsoring project. Such a contribution may exist indefinitely without becoming an Endorsed Project. Periodic review of unsponsored contributions is the responsibility of the Incubation WG. Software related to an Endorsed Project also may end up in as an Unsponsored Contribution when the Project governance structure decides it is not a viable component.