When to release your source code?

Open Source CityThis time last year, I was in full editing mode for my book, The foundation for an open source city. I was also in the middle of my IndieGogo crowdfunding campaign to raise awareness for my project. But there was one debate still going on in my head that I wasn’t sure how to answer. And to be honest, I’m not sure if I answered it correctly, but I made my decision.

I was going back and forth on when to release the source code (an editable manuscript) to my book. My decision was to launch the book in April, both the hard copy and eCopy, and release the source code in September. I wanted to give the book “time on the market” in order to recoup some of the costs that went into making the book. And believe me, there isn’t much money to make here. The margins are better on the eBooks and not so great on the physical book.

I did, however, provide the source code to individuals who requested it during the grace period described above. And there were some benefits to that. I had two individuals contact me to ask permission to translate my book into Spanish and French. I’m happy to announce that the Spanish version is now available on Lulu.

Image credits: Opensource.com, perpetualplum via Flickr

Image credits: Opensource.com, perpetualplum via Flickr

And this is the power of Creative Commons—a set of licenses that grant copyright permissions for creative works like my book project. I choose to publish the book under a Creative Commons BY-SA 3.0 license for a few reasons. This particular license means that anyone can share the work—copy and redistribute the material in any medium or format and they can adapt the work—remix, transform, and build upon the material for any purpose, even commercially. Although there is a non-commercial version, I didn’t want to restrict anyone, say, translating the book, from making a little money for their effort.

So what does BY-SA mean? In order to share or modify the work, there are a few restrictions. From the license itself that require you to attribute the author and use the same license:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.

In our translation example, they must attribute the work to me, because I own the copyright for the book. And they must release the work under the same license. If you’ve had a chance to go through my book, you’ll notice that I was able to incorporate other work into my book. I did this in a way that gave the original author credit for their work and documented the appropriate copyrights with attributions.

Back to the original question about releasing the source code. If this was software or code, there is no question in my mind that I would have released the source code simultaneously with the project. But the fact that this was a book project is what made me hesitate. My justification was to give the original work time on the market with the intention of providing the source code at a later time or if requested.

In retrospect, I don’t think it really mattered. If someone wanted a free copy, they would just wait. But why make them wait? If I released the source code when the book launched, it most likely would have helped with promotion, created more fans, and helped the story spread faster. Which would have been more in-line with my goals of sharing this story as a resource to inspire other change agents in government and serve as a case study to bring more open source to other cities.

When I finally did release the source code on the books website, I also decided to add it to GitHub. Which presented a challenge, because I was not familiar with Git. Thankfully, GitHub had some great documentation on how to get started and I was eventually able to successfully commit the book files and image files to my GitHub repository.

Leave a Reply

Your email address will not be published. Required fields are marked *