Thursday, June 6, 2013

The Cost of Free Software.... and Non-free

There is continual debate (and unfortunately confusion) about the cost, use and value of "free" software. I am hoping to clear up a few things with this post.

First, we should define:
Free Software is Free Open Source Software (FOSS). This software is free of cost to use. It also has free access to the source code which allows you to make changes to the software and allows you to distribute these changes to anyone for them to also use the software.
A program is free software if the program's users have the four essential freedoms:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Non-Free Software places restrictions on one or more of the four freedoms. There might be restrictions on where and when you can run the software. The source code might not be available for examination and changes. You might not be able to distribute copies of the software. Someone else controls the software.

It's not (just) about the cost.
Yes, free software is free in that you don't have to pay for the software. However, many people fail to look beyond cost to the other values of free software. Most people don't think that they will ever need the source code to modify the software. But... most people at some point will think that it would be nice if the software did something new or different. Free software allows anyone to make changes to the software and to distribute these changes. Once a free software project reaches a certain point where it becomes useful, there is usually a community of developers and users who exchange ideas on how to improve the software and incorporate those ideas into new versions of the software.
Most people don't consider that they will spend a lot of time working with software to learn how to use it and in entering data. What happens if non-free software stops working or the company supporting it goes out of business or stops responding to questions and suggestions from users? The users' investment in time in learning the software and entering data will be wasted. Their data may also be inaccessible.
What happens if the data one is collecting is confidential and must be stored on computers under the direct control of your organization? Some software uses cloud servers. Some non-free software does not give you the option of running your own cloud server. You may not be able to use this software if your data must be under your direct control.

What about the cost of free software?
Free software is free. This means that it doesn't cost money to use it.
However, we all know that the cost of implementing a software system includes more than the cost of the software itself.  There is the cost of the hardware to run the software, the cost of training, the cost of support and maintenance.

Let's look at the total cost of implementing software. This is sometimes called "total cost of ownership" or TCO. We'll use the example of software which allows users to collect data using a mobile device. This is a common function in most development organizations. This is also a common configuration for modern software which is usually composed of two components: a client piece which is installed on a PC or mobile device and a server piece which holds the data.

Fortunately, we have a lot of choices for mobile data collection software. There is a good comparison of 24 different mobile data collection software systems at Humanitarian Nomad.
I'll compare the cost and the advantages of three different data collection platforms. Two of these are in the Humanitarian Nomad data set and the third is not. I've chosen these systems for comparison primarily because I am familiar with them.
These systems are:

  • Open Data Kit (ODK) which is a set of software applications (one for the the mobile device and one for the data collection server. You can set up your own server or use Formhub as a public server to collect and analyze your data.
  • Magpi (formerly EpiSurveyor) which is a software application which runs on mobile devices to collect data. You must use the data collection server provided by Magpi. There is no option to set up your own.
  • DHIS2 (District Health Information System) software is much more comprehensive than the two options above in that it is designed to collect data from multiple sites and aggregate this data up through many levels of an organization. It also includes a set of sophisticated analysis tools (including mapping). It is free software which runs on a server and is accessed through a web browser. Mobile data collection can be through a mobile device web browser or through a mobile java client.

I won't try to do a full TCO comparison but will look at the most common costs and in particular look at where these costs differ with these three systems. Namely software cost and server cost. All of these systems allow data collection on mobile devices such as phones and tablets. All of them send their data to a server for aggregation and analysis.




ODK ODK Formhub Magpi DHIS2
Software cost Free Free $0.20-$0.25 per form submitted Free
Server hardware cost Self* Free Self*
Per use cost Free Free (Free for 500 forms/mo.) Free
Free software Yes Yes No Yes
User-controlled Server Yes No No Yes

The server cost is one of the differences here. If you use ODK and Formhub, there is no cost for the software or the server. If you use Magpi, the software and server are provided as part of their service. It is free for limited use (20 forms, 100 questions, 500 forms/month) but more than that cost $0.20 to $0.25 per form submitted. You must "pre-purchase" blocks of forms for $5,000 or $10,000. There is no option to set up your own server so if you have confidential data that must be under your direct control (either by law or by your organization's policy), you cannot do this with Magpi.
*The cost to set up a server for ODK or DHIS2 will vary depending on the skills and resources of your organization. The server hardware itself can cost anywhere from a few hundred dollars to several thousand dollars, depending on capacity. There is also the option of hosting the server on a cloud service where you rent the server by the month which usually costs about $100 a month.
The server software for both ODK and DHIS2 is free and if your organization has IT skills, you can install the server software yourself. If not, you will need to hire someone. I am not highly technically skilled and I have set up servers for both ODK and DHIS2 and it took me about a day (including some head scratching time). If you have to pay someone, figure a days work (although I have seen skilled people set these servers up in just a few hours). This can be done remotely for either a cloud server or a server on your site so there is no need for travel. Most software is updated periodically and it is wise to keep your software current. This can be done in a few hours a few times a year.

So, yes, free software is indeed less expensive to implement. It also gives you more options for configuration, use and features. Most importantly, it gives you the assurance that you (and you only) control your data and your software so that you are not suffering at the whim of another organization which may have different priorities.

I hope this discussion has shed some light on the subject of the cost of free software. There are many other costs including training and there are, of course, differences in features between software choices. All of these should be evaluated carefully.



No comments:

Post a Comment