Free as in Puppy

Open Source software is incredibly popular, and for good reasons.

Using open source can also help to reduce risk. Many of the most popular open-source projects have more than one contributor: this helps to spread the risk of a single individual or even a single organization disappearing and leaving the users of the product stranded.

The development speed of open source generally out-paces that of proprietary software as well, providing new value and new features faster than its commercial counterparts.

Open source also provides the possibility of customization. If the source is available, nothing stops you, at least in theory, from making your own alterations and extensions as needed for your unique situation. While the truth of the matter is that this is quite rare, the fact that it is possible is still attractive.

Even in the relatively unlikely event that all contributors to a particular open-source project were to abandon it, the source is, by definition, still available to you. There is again nothing stopping you, at least in theory, from building and maintaining the software you need in perpetuity. This option does not exist with proprietary software, at least not without special arrangements, such as source escrow and so forth.

Open source of course also implies free, at least financially. While there is a significant difference between “free software”, in the “Libre” sense, and the larger category of open source (which may or may not be “free” in that sense), they both share the attribute of zero upfront cost.

The opportunity exists for organizations to use open-source software to make a profit, and many do. So many in fact that it has raised concern that the developers and contributors to popular open-source software are being taken advantage of.

The situation is not as rosy for the users of open-source as these facts might lead us to believe, however. There are, in fact, significant costs of different types involved in finding, acquiring and using open-source - they are just not as obvious as they are with commercial software.

Bear with me for a moment while I use an analogy to demonstrate: Besides being involved in the software business, I am also, like millions of others, a dog owner [or owned by a dog, as you prefer].

In my case, my dogs are the breed called “German Shepherd Dog” [yes the word dog is part of the breed’s name, see recursion].

When my wife and I first decided that we were ready to have a dog in our life, we began researching. We did a lot of reading online, bought a couple of books, and talked to as many people as we can find that had dogs like the types of dogs that we were looking for. A good friend of ours happened to be a volunteer at the local animal shelter, so we had lots of opportunity for research.

Once we had narrowed down what we were looking for, we began the job of finding a breeder. Again, a lot of our input was from friends who’d gone this way before us, and had lots of invaluable advice for us. When we finally made our decision, we were lucky enough to have the pick of the litter. As we were specifically looking for a male, this narrowed the field a bit. In our particular litter, there were two males however and we made the terrible mistake of meeting both of them.

As I’m sure you can guess by now, we now have two dogs. Brothers, from the same litter. Most German Shepherd owners will be shaking their heads by now as this is a mistake, but we didn’t know that at the time.

So now we found ourselves in the middle of Nebraska with two young pups and a 2000 mile car journey ahead of us. We needed kennels, leashes, bowls, mats, all manner of absorbent articles for reasons I won’t go into, and of course food. German Shepherds as a breed have a number of common medical difficulties, so we were very careful when making our selection to avoid these known problems. Even with this, of course, there are the occasional visits to the vet that are unanticipated, along with regular vaccinations and checkups.

Returning to the issue of two males from the same litter, it turned out it was necessary for us to keep them mostly separated when we were not present. This had, as you can imagine, a ripple effect. Our home used to have a dining room: now it has a kennel room.

We also spent a fair bit of time and money on training, and all learning just how high of a quality of toy it takes to withstand the jaws of a young German shepherd.

It’s now seven years later, and all of these initial difficulties can be looked upon with something approaching nostalgia, finally.

So, you may be asking yourself, what on earth does this all have to do with open-source software?

There are some unexpected similarities, if you consider the entire journey with an open source library or tool.

First, there is selection: you do your research, you decide what you want and need, and you start to narrow down your choices. This, in and of itself, is a cost.

After an appropriate amount of deliberation, you make your choice and take action. The cost here is relatively small: just your time to download a few bites: this is the free puppy. Now that you have made your choice, of course, there is opportunity cost - all other choices are now excluded, for better or worse.

Now the fun, and the costs, begin in earnest.

Just as with our new family members, the learning curve is steep, and time-consuming. In our case, our two new Shepherd pups had to learn to live with a house full of cats. In your case rambunctious new open source library needs to learn to live with a house full of stately legacy systems, perhaps. Much hissing and a few scratches may ensue.

While you may not need to take your new library for walks twice a day, you will need your team to learn how to use it effectively, or risk getting bitten accidentally.

While you can choose as healthy of a library as possible, it is difficult to tell what kind of work might be required until your library is housebroken. There are likely to be a few accidents and ruined carpets.

If you have chosen well, the original open-source project will continue developing, and the food you must supply for your new family member is in the form of frequent updates, even if the updates are completely smooth, there is still time spent to plan and execute them, not to mention the time for your team to understand what’s changed and what’s available in the new version.

Much as with canine family members, simply changing your mind part way through the process would be very painful. You eventually become very comfortable together, and a change would be traumatic for all involved.

While you may have gotten the original “puppy” for “free”, your total cost of ownership is now a long way from zero.

While you may be as delighted with your choice as we are with ours, it is important not to conflate open-source with being free inappropriately. Open-source, like puppies, is the beginning of a long and hopefully rewarding journey but it is anything but zero cost.

This is the simple equation of Total Cost of Ownership (TOC), of course, as is well known by everyone in the software business.

The odd part of TCO with Open-Source, though, is that all of the cost is in the indirect items - the software itself, per se, is not where the money goes. It in all the things that are not obvious or apparent: the vet bills, the care and feeding, and the training.

You may also want to think about professional dog walkers and/or doggie day care before you choose - for open source, these would be the option of commercial support.

Make sure you think about this ahead of time, before you begin your life with that new family member!