Mr. Rubini gives us his opinion of the Open Source movement.
Fortunately, Linus' project of world domination is going to come true fairly soon. The trend toward this goal can be verified by checking how the press is behaving towards GNU/Linux solutions, looking at how several educational entities are going to introduce free software in the schools and verifying Linux's usual technical excellence.
Today in 1998 (yes, it is still 1998 as I write), the most important job remaining, in my opinion, is propagating the social and commercial implications of free software. While I greatly appreciated Russell Nelson's article “Open Source Software Model” in the July issue of LJ, I feel the need to expand on the points he briefly touched.
Please note that I'm not an expert in economics or politics. I'm just a build-it-yourself kind of technical guy who is reporting his own experience in the battle for survival, in the hopes of helping someone else adapt to new environmental conditions. Some of these ideas have already been discussed with friends or on the Free Software Business mailing list (fsb-subscribe@crynwr.com), which I joined after reading Russell's article.
The best feature of any computer system is flexibility-- allowing users to tailor its behaviour to their own needs. This flexibility is often completely unknown to the general computer user, because proprietary software solutions tend to hide functionality behind a rigid external interface which denies any divergence from the expected behaviour—a user's behaviour.
When adopting free software, users are able to discover the real power of computer systems. Today I talked with a commercial consultant who never thought that programs could be adapted to one's needs. He confessed his company has always acted the other way around—they adapted their needs to the software they use. Most users are victims of their software and don't even realize it.
Educating the user base about the extendibility of software will open new markets to independent consultants, creating new employment opportunities. Every user has different needs and solving these needs often means calling for technical support from people who tailor or enhance the relevant software. While this is not even imaginable with proprietary programs, source availability allows any problem that might arise to be quickly solved and new features to be easily added. While you may think this would quickly lead to a perfect software package, individual needs are so diverse and specialized that the perfect package will never exist.
For example, I and others wrote a program for a local physiology center to analyze data for a typical kind of experiment. During two years of use, the physicians found so many ways to enhance the program that it is now reported as better than the commercial solutions. The total of all fees they paid during these years reveals the program to be more expensive in the end than some of the commercial alternatives. This fact is not relevant to my clients, as they have exactly what they want and they know they can have more should the need arise. The program is obviously GPL and other centers expressed interest in getting a copy.
As more and more people are choosing free software to address their needs, I'm sure some software companies will try to demonize Linux and the open-source movement because they are losing market share. Such companies will probably try to demonstrate that IT employment is decreasing and that humankind is being damaged by the general adoption of free software. This whole argument is bogus; computers exist to be programmed, and the more you allow programming them, the more you build employment opportunities. If you count the number of people who offer free software consulting, you will greatly exceed any shrinkage of proprietary companies. Sticking to my previous example, the physiology lab hired my company to write the program, and other centers interested in the product are willing to hire a local consultant for installing, maintaining and enhancing our package. Did I say “enhance”? Isn't the program working? Yes, the program is working well, but there is room for enhancement of the product. The local lab decided to stop development “because we must run our experiment rather than invent new software features”. As anyone knows, every program has a bug and a missing feature, and this is where we build our credibility—bugs can be fixed and features can be implemented. As I suggested before, the more you make things programmable, the more they will be programmed.
Why should there be more employment opportunities in IT than there are now? First of all, because free software users have more requests for new features than users of proprietary products do, as explained above. Next, because anyone can build her own professionalism without paying to access the sources of information. I built my Linux expertise by studying source code and trying things out on my own low-end PC. Now I am confident I can solve any problem my clients might have, and my clients know I can (provided I am given enough time to deal with the problem).
Another critical point in addition to source availability is standardization on file formats, a field where proprietary products are revealing their worst features. Let's imagine an environment where every file format in the system was known: you could, for example, create indexes from any document that is produced, thus easing later retrieval. This can be accomplished off-line without any load on non-technical personnel.
Asynchronous reuse of data is “rocket science” for many users, because they are accustomed to programs that use proprietary file formats (and operating systems with no real multi-tasking or cron capabilities). As soon as free standards are adopted, users begin asking for customizations and are willing to pay for anything that will increase their productivity. Moreover, free standards guarantee that customers are not making the wrong bet, as they won't ever be stuck with unusable data if the software market changes.
While the conventional model of software distribution concentrates all knowledge in a few companies (or one of them), open standards leverage technical knowledge to anyone willing to learn. Whereas a proprietary product can be supported only by a limited number of qualified consultants (whose number and quality is centrally managed), the number of consultants supporting a free software solution is virtually unlimited and the offer can quickly adapt to the request.
In a world where computers are just tools to accomplish some other goals, easy customization and quick maintenance are basic requirements of power users. In my opinion, free software will quickly gain the trust it needs to be a real market phenomenon. As soon as you start to trust some open-source products, you learn that they deserve more. GNU/Linux fans must be ready to offer support in order to fulfill the upcoming need for consultants.
Obviously, independent consultants don't cover all the needs of computer users. Several activities can't be handled by individuals. Red Hat and S.u.S.E. are demonstrating that creating and maintaining a distribution can be a good source of revenue even when the product is freely redistributable. Debian-based efforts are on the way, although less advanced—mainly because both Red Hat and S.u.S.E. bundled proprietary products with Linux in order to survive while the market share was low, while Debian is completely detached from proprietary products.
In addition to “creating and packaging” jobs, open-source companies can specialize in technical support, covering the situations where computer systems are of critical importance. Big business realities using computer systems in their productive environment won't be satisfied with either the external consultant or the in-house technician. They need to rely on an external structure that guarantees round-the-clock operation of their technological aids.
Even if GNU/Linux or any other operating system is demonstrated to be completely reliable, power users will need to rely on a support company as a form of insurance. The more important computers are for a production environment, the more people are willing to pay to be reassured that everything will go on working and to have someone “responsible” to call in case of any failure. Such a “power user” support contract could also include a provision for refunds in case of down time. Big support companies will be able to efficiently deal with it, and clients will be happy to pay high rates if they never need to call for assistance.
In short, I see no need for software companies to sell any product; the support environment is big enough to offer good business positions in Information Technologies. Those at the top could use some of the revenue to pay for free software development, thus gaining access to the best software before anyone else and associating their name with software products. As a matter of fact, this practice is already pursued by the big distributions.
Needless to say, schools and universities have the best interest in teaching information technologies using free software tools. Due to its technical superiority, free software environments have more to offer to the students, but also need more technical knowledge to be proficiently administered. I see no money saved here in choosing free operating systems over proprietary ones, but educational entities could better spend their money on hiring system administrators than on subsidizing some already-too-big commercial software company. While my country, Italy, is stuck with a few rules that offer more support for buying things rather than for increasing human resources, other countries are already moving in the right direction—Mexico and France, for example, have announced plans to use Linux in their public schools.
One more point leads toward free software in education: when students get jobs, they prefer to use tools they learned at school in order to minimize extra learning efforts. This fact should lead colleges to teach only those tools not owned by anyone—those that are libre. Schools should teach proprietary software only if two conditions apply: no viable alternative is available, and the company that distributes such software pays the school for teaching its product. Paying someone for a product and then freely advertising it for him is definitely nonsense.
A few social issues relate to choosing one software model over another one. Although I mark them as social, they have economic implications as well.
While free software is not cheaper than proprietary software if you bill for your own time, some environments use different rates in converting time to money. Most emerging countries have good intellectual resources but little money, and they usually have many not-so-new computers as well. Proprietary operating systems are unaffordable for them, but free solutions are viable and productive. Actually, the “Halloween” document from Microsoft underlines that Linux is growing very fast in the Far East. Charity organizations usually have this same environment—little money and a good amount of human resources. This leads straight to the free software model for any IT requirement.
These ideas will probably suggest that free availability of information looks fairly leftist in spirit, as “information to the masses” looks quite similar to the old adage “power to the masses”. What is usually ignored is the strong rightist flavour of the Open Source movement. The free software arena is fiercely meritocratic and a perfect environment for free competition, where the laws of the market ensure that only the best ideas and the best players survive. Proprietary standards, on the other hand, tend to diminish competition by decreasing innovation and consolidating previous results.
Naturally, I'm aware that not every software package can easily be turned into free software. I'm not talking about office products—I'm confident some good projects will supply this need, sooner or later. Rather, I'm talking about all environments where a strong competition exists for a product only loosely based on its software component. For example, industrial equipment might include a computer and some commodity hardware (a robot, custom I/O peripherals, PLCs, etc.); the software application hosted in the computer is a minor part of the whole, but its features greatly affect the overall value of the equipment. Producing and debugging such applications usually require huge investments (preventing free redistribution of the source code), as a form of protection against competitors.
Another meaningful example is cell telephones. They include a lot of software and such software is the component that defines the overall capabilities of the device. However, this software is almost invisible to the end user, who perceives the device as a telephone and not a computer. Such software is strictly proprietary because of its major functional role in the device.
Unfortunately, I see no easy way to liberalize this type of code. Although I don't care too much about cell phones (I don't use them), I would prefer to see free industrial applications because their technological content is usually worth reusing and adapting to new problems.