Work in Progress
This is only a draft, and an incomplete one at that. It has not been approved or agreed to by anyone. Not even me.
Incubation Thing
This is the home page for all things related to what we are currently calling the "incubation thing". It is the formalized process to be used by Pentaho and its community to convert ideas into product. Until a good motif is defined and names and terminology has been agreed upon, I will use "incubation thing" to represent an instance of the process. Check out Proposed Names for Incubation Area for a discussion on possible motifs.
Summary
The purpose for the "incubation thing" is to have a well known and repeatable process for creating software in the Pentaho open source environment. We want to take advantage of the transparency, openness and early and often features of the open source development model and add some process check points. The process should allow us to effectively communicate where the product is in its infancy, how much interest there is, how fast is it moving and what tasks are required to keep it moving forward.
There is really nothing new here. These 5 steps are always used but are usually locked in someone's head. The review at the end of every phase is important to keep the project focused and the people working on it synchronized. During each phase, standard open source development happens.
Requirements
- Provide a mechanism for transparent collaboration between geographically dispersed participants throughout all phases
- Allow each "incubation thing" to specify entry and exit criteria for each phase in a way that makes sense for that "incubation thing".
- The phases of the "incubation thing" must be easily understandable with specific entry and exit criteria
- A "incubation thing" must be well supported in order to remain active
- The status, activity, traction etc. of the each "incubation thing" must be readily available and easy to understand
- An "incubation thing" can be private or public. Pentaho uses the "incubation thing" process internally for management services and strategic partnership opportunities.
- The visibility can change during the "incubation thing". For example - Conception and Seeding can be restricted, then "opened" to the community for the rest of the "incubation thing"
- "incubation thing" can be terminated in any phase due to lack of interest or progress
- There may be different end games: results in new Pentaho open source project, new independent open source project, work gets folded into the Pentaho product, it becomes part of a non Pentaho open source project, it gets trashed, etc.
The "incubation thing"
The following diagram illustrated the steps in a typical development "incubation thing". The bullet points under each phase is only to illustrate the things that could happen during that phase in a typical process. They are not meant to be the rules that absolutely define each phase. Each "incubation thing" that follows this process will define the entry/exit criteria for each step. This should make the process work for the "incubation thing" and not try to shoehorn every "incubation thing" into the same exact steps.
Initiating a new "incubation thing"
It is not Pentaho's goal to have lots and lots of "incubation thing"s in process just for the sake of hosting projects. We do not want to be a mini-SourceForge. Each "incubation thing" that gets started requires Pentaho resources and will have to show a compelling value proposition for Pentaho and the community. To ensure that an "incubation thing" is successful, a high level of commitment through sponsorship is required.
New "incubation thing"s can come from many different places. The common scenarios are:
- Pentaho Product Management (PM) initiates and sponsors the "incubation thing" of a feature or product that is on the Pentaho road map.
- A third party company has a product that fits into the Pentaho suite and wants to contribute it to Pentaho.
- A community member as an idea for a feature, discusses it in the "incubation thing" forum (to be created) and generated enough interest and support to request an "incubation thing" be created.
- The CTO office wants to productize a prototype.
Anyone from the community, Pentaho employees, customers or partners, can sponsor an "incubation thing" as long as they agree to the commitment.
Initiating a new "incubation thing"
Finding a Sponsor
An "incubation thing" sponsor is responsible for moderating discussions, reporting status and moving the "incubation thing" forward. Anyone from the community, Pentaho employees, customers or partners, can sponsor an "incubation thing" as long as they agree to the commitment. Although anyone can be a sponsor, ere are some typical examples.
The sponsor will usually be someone from Pentaho Product Management (PM) for projects that are part of the product road map. For
Typical scenarios for initiating "incubation thing"s and finding sponsorship include:
In some cases, the sponsor is the person with the idea for the incubation
The "incubation thing" forum (to be created) is where the community can initiate discussions, gauge interest and find sponsorship.
Initiating a new "incubation thing"
The project sponsor contacts Community Connection (communityconnection@pentaho.org) with the following information: (This could be a form)
- Identity of the Project Sponsor. Their responsibilities include:
- Communicate status to Community
- Coordinate meetings with working group
- Request resources from Community as needed to support initiative
- A mission-statement like description of the initiative. Examples:
- Create a thin client, HTML based, slicer/dicer for Mondrian that will replace JPivot.
- A name (code name maybe) for the initiative to be used as an easy way to talk about the "incubation thing"
- A list of interested members. There is currently no restriction or requirement for a certain number of participants. It is important to have at least 3 people willing to put their names on the project as members. This group will be referred to as the working group.
- The "incubation thing" forum and thread(s) discussing this idea if applicable.
- Any special requirements.
When the above requirements are met, Pentaho Community will create a new "incubation thing" and coordinate setting up resources required. The "incubation thing" will start in the conception phase and have a collaboration space consisting of:
- Entry in the "Conception Phase" listing in the "incubation thing" space on pentaho.org
- Forum within the "incubation thing" forum space
- Wiki page for documentation, requirements, meeting notes etc
Someone decides that
Before requesting a new "incubation thing" be initiated, the following criteria must be met. The "incubation thing" forum is the place where stakeholders can collaborate on answering these requirements.
- Identify a Pentaho PM Sponsor by name.
- A mission-statement like description of the initiative. Examples:
- Create a thin client, HTML based, slicer/dicer for Mondrian that will replace JPivot.
- A clear and concise end result. Examples:
- This will be a new client tool hosted and supported by Pentaho
- This will become a new feature of the BI Server
- A short name (code name maybe) for the initiative to be used as an easy way to talk about the project
- A list of members. There is currently no restriction or requirement for a certain number of participants. It is important to have at least 3 people willing to put their names on the project as members. This group will be referred to as the working group.
- Identify a leader of the working group. This could initially be the PM sponsor but should become someone else as soon as possible. Responsibilities of the leader:
- Communicate status to Community
- Coordinate meetings with working group
- Request resources from Community as needed to support initiative
- Define the exit criteria for the Conception Phase. Examples:
- Completed Storyboard
- High Level requirements in enough detail to cost out major functionality
- Obtain commitment from someone (engineering, CTO, partner, community member, etc. ) to do a prototype or proof of concept.
- State what the visibility of the project is - completely open or restricted.
When the above criteria have been met, the PM sponsor will Request Pentaho Community to initiate the new "incubation thing".
Implementing a new "incubation thing"
If the above requirements are met, Pentaho Community will create a new "incubation thing" and coordinate setting up resources required. Each "incubation thing" will have the following resources:
- Home page in the "incubation thing" space on pentaho.org
- Forum within the "incubation thing" forum space
- Wiki page for documentation, requirements, meeting notes etc
- Subversion project for source code
What about these things?
- A working group email group for communication
- Some kind of webex access for meetings
- FTP Space for downloads
General statements about the phases
Each of the 5 phases has entry requirements that must be met, goals specific and exit criteria that must be met before it can start.
Each of the 5 phases has specific entry requirements that must be met before it can start. The different phases have different entry requirements but they all have one in common. No phase can start until it's exit criteria has been defined. Exit criteria are the goals that the working group agree must be met during that phase in order to be successful. It is used to keep the participants focused and to provide a way to measure progress and successes. In the event that a process gets "stalled", the exit criteria provide a quick and easy way for someone to see what needs to be done in order to move the process along. This is the most important feature of the "incubation thing". It allows the work during the phases to happen in a free and open way but provides well known and well defined checkpoints during the process.
The tasks that happen during a specific step in the "incubation thing" may be different for each instance and should be determined by the working group. This is in recognition that every instance is unique and we are not trying to shoe horn every "incubation thing" into the same process. That being said, when defining the exit criteria, it is important to match the goals of the phase with the intent of the phase. For example, no one should be coding features during the conception phase.
A phase is not complete until there is a satisfactory review. During the phase review, the working group must agree that the exit requirements ide for that phase have been met and that the entry requirements for the next phase have been met.
During the review process, the working group may determine that the project is not viable or that there is little interest in continuing. In this case the project can be canceled or put on hold.
The working group leader will report the status of the review to Pentaho Community.
Conception Phase
The conception phase is mostly about the communication of ideas: brainstorm requirements, discuss use cases, look for existing software, generate interest, etc. By the end of the conception phase, there should be an initial set of high level requirements with enough detail for someone to generate a prototype or start on seed code.
Entry Requirements
No requirements beyond the Requirements for initiating a new "incubation thing".
Typical Tasks
Pathfinders
This has not been decided on yet -
These are the initial dudes that could participate in "the incubation thing." All the phases are not fully defined which is ok. These pathfinders will help flesh out the process.
Click the link to go to that process: