- Why Is the Code Being Released?
- Is Existing Code Ready to Be Released?
- Who Will Own the Code?
- What Will You Allow to Be Done with Your Code?
- Under What License Will It Be Released?
- What and How Will You Communicate About Your Code?
- How and When Will the Code Be Made Available to the Public?
In addition to working as a part of the Ubuntu software community and my work as an author of Ubuntu Unleashed and The Official Ubuntu Book, I work in a software project. This project is in the process of releasing programming code that has been written entirely in-house. This is code that no one has seen or been able to access outside of those working here, but we want to open it up to a wider community. To make the process as smooth and clear as possible for all involved, we realized that several questions need to be addressed before we release our software using an open source license. This article highlights several of these questions and will provide a good foundation for others who want to move their code from closed to open source.
I did not invent this process and am not the first to ask these questions. The questions are the result of struggling through a process that involved some trial and error and a lot of good advice. I must acknowledge upfront articles, books, and personal email conversations from which I benefited, especially from Andy Oram, Karl Fogel, and Bruce Perens.
Why Is the Code Being Released?
This is a philosophical question, but also fundamental to every other question. Are you releasing code in order to invite others to participate in a collaborative process, or is it being released solely for the sake of transparency, so that others who may run the program know what it contains? The answers here will inform every decision that follows, so think this through carefully.
You want to determine at the very beginning whether it is your desire to lead a community around the code, or whether you just want to let others use what you have written as you move on. Will you maintain this code in the long term or are you simply setting it free for others to use, maintain, and build upon?