YAGNI, or how I learned to stop worrying and love the BSD

Memebook, available in the Ubuntu phone storeLast week I published a new app to the Ubuntu Store, which isn’t anything particularly new, but this time I didn’t use my normal license, instead I went permissive. This is something I’ve been wavering on for a while now, and is the result of some developer soul-searching about why I’ve been using the GPL and what it’s done for me.

Free as in mine

In the past I’ve always used the GPL or LGPL, not for philosophical reasons or because I thought software should be free (in the RMS sense), but because I was selfish. I used the GPL because I wanted to make sure nobody built something on top of my work without sharing it back to me. In my mind, using a strong copy-left license ensured I couldn’t be left out of someone else’s success with my project. And in a way it worked, I wasn’t left out, because most people never used, let alone built on, my projects. I was trying to solve a problem I didn’t actually have.

You aren’t gonna need it

YAGNI (You aren’t gonna need it) is a principle of extreme programming that says you shouldn’t add features to a project until you know that it’s actually necessary.  I don’t usually pay much mind to trendy programming methods, but I think this one might be applicable to the way I pick licenses. If my project aren’t being used and extended by others, why am I worried about it happening enough that I want to put restrictions on it? Maybe I don’t need the GPL’s protections afterall.

A new direction

So from now on I’m going to prefer the BSD for new projects, and I’ll work on converting old ones to this license when I’ve been the only contributor. The worst that can happen is that somebody benefits from my code more than me, but that wouldn’t be much different to me than having nobody benefit from it more than me. I won’t actually lose anything. Nor will I be restricting my future options, on the contrary I can always go from a BSD to a GPL, but going the other direction is quite a bit harder once you accept contributions.

This entry was posted in OpenSource, Projects and tagged , , . Bookmark the permalink.

3 Responses to YAGNI, or how I learned to stop worrying and love the BSD

  1. When I first started sharing code I was licensing it under the GPL because, well, that’s the open source license to release stuff under.

    After a long debate with a coworker who hates the GPL, it got me thinking more critically about my choice. I still use the GPL as my go-to license, but I now think through that decision each time, which has lead me in a few cases to use a more permissive license where it makes sense.

    I think it is important that developers of open-source code understand the difference between licenses and how that potentially impact consumers and reusers of our code.

  2. Do you mind if I quote a few of your posts as long as I provide credit and sources back to your weblog? My website is in the very same area of interest as yours and my users would genuinely benefit from a lot of the information you present here. Please let me know if this ok with you. Cheers!

    • Michael Hall says:

      Sure, unless I state otherwise all of the content on this blog is available under the Creative Commons CC-BY-SA licenses, which means you can quote, copy or remix it however you want as long as you give proper attribution and let others do the same with whatever you take.

Comments are closed.