Monday, June 27, 2011

Spatial Data Infrastructures should avoid single points of failure, including proprietary software

In a meeting yesterday, someone proposed that SDI call for tenders which require open source software should justify the advantage, in economical terms, of using it instead of proprietary software. There are many reasons to prefer open source software to proprietary software, but this time I want to focus just on one: proprietary software can create a single point of failure in your system.

A single point of failure is a part of a system that when it fails leads to a complete system failure. If a vendor, owner of the source code of a certain proprietary software, goes out of business, their users cannot do much about it. Of course they can still use this software for some time, but it has become instant legacy software. No maintenance, no updates, no improvements. Sooner or later it will be replaced, of course with a cost: a hidden cost that nobody took into consideration when licensing that software. A hidden cost that is not only money: while replacing that software, the system will not be working properly for an unknown amount of time. It is not just replacing an old version for a new version, or making a few improvements or changes. It is taking a piece of your system, and replacing it with a completely different piece because you do not have another option. Murphy's law says that this will cause more trouble than you need: your system will be down for an unknown amount of time.

Of course this does not need to happen, software vendors, specially the biggest ones, do not go out of business often, you can design strategies to minimize the effect on users when making changes in your system etc. But thinking like this goes against the safety principles that should lead the development of mission critical systems where a failure is a big problem for their users. If we take Spatial Data Infrastructures seriously, we must consider them almost as mission critical systems, and single points of failure should be avoided. As it is normally possible to replace propietary software for a free, open source alternative (sometimes even for a better alternative if you ask me), this is one thing that should be taken into consideration in any SDI.