General Principles of Incubation

From OSGeo
Jump to navigation Jump to search

This document is meant to be a guide to the incubation process in general. The goal is to introduce you to the concept of incubation in open source and how we do it here at OSGeo.org. It is currently a work in progress.

Introduction

Open Source (OS) is often associated with anarchy or certain rights to do as you please. However, software is complex, hard to manage, and most software projects are prone to total failure or riddled with debilitating bugs. The story is true in OS as well as proprietarily produced software. The simplistic view is that software is software. The primary difference between OS and proprietary software is that in OS, we can all see the code and in some cases see the process of code creation.

The key to success for software is elusive. There is no silver bullet. However, we can say that there are a few things that can contribute to success:

  • Some type of leadership and/or decision process
  • A process for changes to the code
  • Documentation (design and end-user docs)

Software is useless without end-users, so we want to ensure that the project targets the end-user. This also helps by reducing the time that the project developers have to spend on support. Here are a few things important to end-users:

  • End-user documentation
  • user email lists for supporting user questions
  • Issue Management (on OSGeo we user Project Tracker)
  • Home page and content (including documentation)
  • Simple to use downloads with automated installation

The OSGeo Foundation has a few things that need to be done:

  • Intellectual Property verification of ownership and choice of OS license
  • Contact with owners of the project
  • A review of the merits of the project and if it is worthy of hosting at OSGeo.org
  • Ensuring that the project is healthy

Intellectual Property verification is required for due diligence. It helps us all ensure the code is truly open source and that the licenses have been applied directly. The foundation is a legal entity and should cover its self. The license is also imortant as we must ensure that the open source license you are using is compatible with the foundation.

Incubation is aimed at getting the above items to be done in some manner. The actual processes, content, and organization of the OS project is less important in this process as the actual execution and verification that these things are done. Incubation is meant to ensure that the project is ready and will succeed within the bounds of the foundation and that the foundation can help the project succeed.

Projects should document how they manage themselves

Contributors are the scarce resource and successful projects court and encourage them

Projects are encouraged to adopt open standards and collaborate with other OSGeo projects

  1. Projects should maintain developer and user documentation
  2. Projects should maintain a source code management system - svn or cvs

preferred

  1. Projects should maintain a discrepancy tracking system
  2. Projects should maintain project mailing lists
  3. Projects should actively promote their participation in OSGeo
  4. Projects are responsible for reviewing and controlling their code

bases to insure the integrity of the open source baselines

  1. Projects are encouraged to adopt OSGeo look and feel, branding, logos

on their project sites

  1. Projects are encouraged to participate in OSGeo standardization

efforts to present a common interface for OSGeo visitors and members

The OSGeo will in turn attempt to make available the best of breed open source collaborative tools and resources to support those efforts, if we offer better tools and resources projects will naturally migrate to the better implementations.

I'm sure I've missed several important points, the main point being that we lead vs control.

New projects compete for our approval with the same guidelines - hopefully they will be included based on their perceived value to the OSGeo overall goals and objectives.


Mark Lucas' thoughts on incubation