2008-11-10

Free as in beer, but what about the liver transplant?

When it comes to business, it's all about cost. Software is certainly no exception. From a business point of view, what does free software mean? If it's just free, and i'll maintain the simile of free beer, why isn't every art department using Blender or Gimp? Clearly because in their eyes, the actual cost of using free software is more than purchasing Photoshop or Max/Maya/XSI. So what are the pro's and con's of free software, and how do we calculate the actual cost of software ( off the shelf or from the web ).

What often isn't counted in the calculation of software costs is support. Big commercial companies love to slander open-source community projects in this regard, especially when it comes to operating systems and database servers. Their main point is, if it breaks, who's gonna fix it? And it's an important point, how does a large business justify getting software when there isn't a way of making sure that when it does break on them, that there is someone to shout at. And in my experience, commercial support doesn't get things fixed quickly.

In the open source and free software ( as in beer ) world, there are many options. You ( as a business ) can go it alone, just download free software and if it doesn't work, try another alternative or submit bug reports. These often have slow turn around time, and none of the management pressure is lifted since there really isn't anyone to shout at for the buggy program, it is after all free. You can buy paid support from a free software vendor, for example Canonical or Novell. This is normally expensive, and often the cost doesn't justify migrating to a new platform ( all the training costs because most end users actually need to be told by a $200 per hour professional that the menu looks different ). Or you can branch. If the software is under an open source permissive license such as GPL, LGPL, MIT, BSD, or many other licenses, you can modify the source and use the new product. It really surprises me that more companies don't opt for this. Maybe the fear of actually having to work on it is high, but hiring a freelancer is really easy to do these days, and giving them a week to fix a software bug is definitely viable.

Deciding which of these options depends on the software that we're talking about. For something like Wine, i'd be more likely to pay CodeWeavers to add support for <insert app name>. For something like libpng, i'd probably take the fix it yourself option, since the code base isn't so large and the feature set is pretty complete, so anything i want to add is probably specific to my task. It's also important to take into account that if i'm using libpng, then i'm probably in a development department where people have the ability to fix it. For software such as Gimp, the first option would be the most likely, since the code base is huge, and the feature request list is also somewhat high, although the features that are there are very complete and work well.

But how do we give businesses a price to attach to these models? If the sales pitch is "Hire someone to fix it because we won't", i can't see big companies who need reliable systems making that choice. No matter what, they will always want to know where the long term benefit of any purchase is. Saving money on free beer might cause more problems in the long term.

After giving it a little thought i propose an equation to define the actual cost of software. If one already does exist, i'd be interested to know, but this is what i came up with. Some refinement might be needed ( especially since it's purely linear relationships and i might have forgotten something ). So here goes:

Total Cost = Sum over all features( Need for feature * (1 - Usefulness of software's implementation of feature ) * ( Support Cost of feature + Base Cost of feature ) )

A bit clearer when replaced with symbols:

Total Cost = sum( N * ( 1 - E ) * ( Cs + Cb ) )

Where:

N is the Need for that feature between 0 and 1 ( 1 being highest )

E is the effectiveness of that feature ( where 1 is the most complete implementation )

Cs is the support cost of the feature over a given time period

Cb is the base cost of the features ( as part of a complete product ). This is also over the given time period.

So here is an example:

Some commercial package

$3.59 = 1*( 1- 0.9 )*( $5 + $10 ) + 0.8*( 1- 0.9 )*( $5 + $10 ) + 0.6*( 1- 0.9 )*( $5 + $10 )

Free package

$2.88 = 1*( 1- 0.6 )*( $3 + $0 ) + 0.8*( 1- 0.6 )*( $3 + $0 ) + 0.6*( 1- 0.6 )*( $3 + $0 )

In the above example i have given the general business opinion of free software. Lower feature effectiveness with no layout costs, but slightly lower support costs. In my experience, free software's biggest problem is that the interface isn't the same, or as easy to use as their commercial competitors. I have generally found that the features that you find in software such as Gimp or Blender are on par with their commercial counterparts, but the artists i have worked with claim they have no clue how to use Blender ( although i found it pretty intuitive, i guess the programmer mentality came out in the UI ).

I'd appreciate suggestions on improving my equation, as i do intend to try and put it to use in my own life and work.

No comments:

Post a Comment