You are here

Писмо од Џон Хол на англиски јазик

Забелешка: Преводот на позначајните делови од писмото е достапен на оваа врска.

To: The People of Macedonia
September 4, 2003
Subject: Free and Open Source for Macedonia

Dear Brothers and Sisters,

I have been asked by Ivan Stojmirov, President of Free Software Macedonia, to write to you about your upcoming choice of software for running your government. First of all, let me introduce myself. I have been in the computer industry for thirty-five years. I have been both a technical person, having written many programs, and a manager of people. I have worked for both large and small companies, and I have taught computer science at the University level for seven years. I have worked on most major operating systems, both proprietary and standard. Most of all, I have been both a customer of software vendors and a participant in the software development process of a major corporation, as I worked for Digital Equipment Corporation for over sixteen years. I tell you this because Open Source people have been described as "idealists", even "communists". Please let me assure you that I am neither. I am very practical, and definitely a capitalist. I have also had a lot of experience that most people have never had. I hope that some of this experience can help you in making your upcoming software choice.

I understand that you are considering signing a contract with Microsoft, so they can provide you with the software you need to run your government. Undoubtedly they offered you a very good price on your software, and probably you made a study and felt that this was the best deal for your country. Let me explain why it might not be in your best interest, or the best interest of your country.

Microsoft probably offered you a substantial discount for the software your government, and even your school system uses. This is a well known practice of software vendors. However, this is only a portion of the costs that the Macedonian people will bear. Other suppliers to the government will typically use the same software that the government uses, for compatibility and ease of document exchange. These suppliers will have to pay full value for the Microsoft software, and will then pass those expenses on to their customers, the government. So you see that Microsoft will still make a lot of money off their deal with the Macedonian government, in fees paid indirectly through your suppliers. I know, since I often justified such discount programs while I was at Digital Equipment Corporation.

I do not know the average wage of Macedonians. I do know that in some countries the average wage is thirty dollars a month. These countries for years have been "pirating" software. Developed nations tell them that they need computers, and they need to be in the Internet in order to do business. Today a good used computer (200 MHZ Pentium, 64 Megs of memory, 4 GBytes of disk space) costs about fifty USD without the monitor and keyboard. Even a new computer system will cost less than 1000 USD. But popular closed-source, proprietary software costs about two thousand dollars, or over a year's worth of work, for which you get a shiny, plastic disk and some paper documentation. And so, caught between the need for communications and computers, and the lack of money, a lot of people in emerging economies pirate software.

Unfortunately software companies have been clamping down on this "theft", and the Business Software Alliance (BSA) has been active in searching out these companies and imposing huge fines. This has forced these countries to seriously consider Free and Open Software. You can not steal what you are freely given, and they quickly learn that the only thing that they are required to do even under the strictest "Free Software" license, is to give their changes back to the Free and Open Source community. Even the poorest person in Africa can do that. In addition, some companies feel that they have been innocent of the charges and fines being brought against them by the BSA. Apparently even software inadvertently left on a disk drive (but never executed) if a system is transferred to someone else is fair game for fining a company. One company in the United States faced huge fines and court cases for having only eight percent of their software "unlicensed". Ninety-two percent of their software was properly licensed. What company can say that 100% of their software is licensed 100% of the time? Even if you remove the issue of the Business Software Alliance, pirated software costs people money. When you pirate software, you can not expect needed bug fixes. When you pirate software, you can not go back to the manufacturer and ask for needed enhancements. When you pirate software, you can not ask for telephone support. The lack of all these things can cost a company (or a government) time and money.

How will issues like the Business Software Alliance affect Macedonia's citizens? Will the government's leadership in this area force more people into piracy? Microsoft probably made you a good offer on royalties for this year. They did the same thing to a school system in the state of Oregon, in the United States of America. Yet the next year, when the school system was upgrading their software, Microsoft charged them 70,000 USD for the upgrade. This meant that the school system, which had not budgeted for the upgrade, had to fire two teachers. Does your proposed contract with Microsoft have a clause which covers multiple year's upgrades? Do you have a clause which limits how much Microsoft can raise their prices year after year?

Macedonia has about two million people in its borders. These people would like to use software that is translated to their own language. Has Microsoft agreed to translate all their products to your language? And to maintain those translations in up-to-date editions of their products through all time? Sometimes companies translate products, but only re-translate the products on major releases.

Speaking of "for all time", Microsoft has sometimes made drastic changes to their product lines, forcing companies and governments to upgrade. Other proprietary, closed source companies have even dropped whole product lines because they became "unprofitable". Users of these products, because they did not have the source code for them, or the knowledge base of how the software worked, were not able to keep the products going, and so were forced into a costly migration path. Has Microsoft offered to compensate you for any costs of a future major upgrade in their products? With Free and Open Source code, Macedonia could make its own business decision whether or not it wanted to continue using a particular set of code, and hire people to maintain it, or whether it wanted to migrate to another product. The business decision would be Macedonia's, not Microsoft's.

A lot of companies and governments want to use software from a large company because they feel it gives them some level of protection. It does notA lot . Even large companies go out of business. Wang, Data General, Prime, and Digital Equipment Corporation are only a few of them. Without the source code for the products available and understood, people using products of these companies had no decision but to pursue a migration path to yet another large corporation. Today, Free and Open Source gives them another possible path, that of hiring people to provide support until an orderly migration or substitute supplier can be found.

People and Governments also follow the philosophy that "If something goes wrong, I will have a large company to sue", or "a large company to blame", and that somehow the person who chose the solution will not be held accountable for the failure of the software. This is also sadly false. No one, including the United States Government, has successfully sued Microsoft. And people have been fired for choosing a solution that was inflexible, and did not meet their needs. Governments have to survive for a long time. The current computer industry has been in existence only since 1943, with most current computer companies only being in existence since the early 1980s. We have not seen if the current mode of developing software will meet the needs of the twenty-first century. I believe it will not.

In the early 1970s software was written specifically for a particular job, for a particular customer, who signed a contract with the software maker that have provisions in the contract for bug fixing, timeliness of delivery, stability and a variety of other issues which made it so the software provider did not get paid if the software did not work.

In the 1980s, low cost microcomputers manufactured in large quantities encouraged software manufacturers to try and make "shrink-wrapped commodity software", which was boxed, wrapped and put on a shelf. The argument was that inexpensive, commodity software that could do 80 or 90% of your needs would be "good enough".

And so lots of companies hired 5, 10, 15 or even a hundred engineers to create a software package that was "good enough."

At first this was viewed as amazing, since you could often get software that would have cost 100,000,000 USD to create for 1000 USD. This was because the company had about 1000 customers, all contributing 1000 USD to the bottom line. As one of the 1000 customers, you might send in one bug report and one request for new functionality. This meant that (on the average) 2000 "requests" were going towards our 100 engineers, who would then read each letter and react to it. But now it is the 21st century, and our small company has increased its engineering staff to 150, and its customer base to 4.5 million people. Each customer, in writing one problem report and one request does not realize that there are nine million letters headed towards those 150 engineers, and those engineers can not even read those nine million letters, much less respond to all of them in fixing bugs or putting in new functionality. Why doesn't our company hire more engineers? Fred Brooks in his book "Mythical Man Month" showed people that simply adding more engineers to a particular project would not solve the problem. You needed a new method. Now some people might think I have invented this problem, and it does not exist in reality. Let me assure you that it does. I was a product manager of Digital's commercial, proprietary, closed-source Unix operating system for ten years. I remember one release that we product managers were determined to "do it right." We had made up a list of product requests from customers, ordered according to priority from "critical" to "nice to have". We talked with customers, standards groups, and other people inside our company. We made a list of six hundred and fifty product requirements for the next release. We then handed this very detailed list to the engineers and asked them "How many can you do?" The answer came back "We can do the top fifty, and perhaps one or two of the lower priority ones." When asked about the other six hundred product requirements, they said "We will do them in the next release." Of course that never happened, because the next release saw more product requirements that occurred due to standards, contractual agreements, new hardware, requirements from large potential sales (which never seemed to materialize), and so forth. After a while, the product managers never made a list longer than 150 requirements, because we knew the engineers would not be able to accomplish more than fifty or sixty in any one release. And I should mention that these product requirements were only for new functionality. They did not include the bug reports, which often times numbered in the thousands.

Now as a customer, you do not care about someone else's feature request, or someone else's bug report. You only care about your own. It is that lack of feature or that bug that is keeping your project from moving forward. But unless you have the ability to add that feature or fix that bug yourself, you are not guaranteed that it will ever be added or fixed. Free and Open source gives you that chance. You can make the business decision whether to wait for the developer to add that feature or fix that bug, or you can hire someone else who is competent to do that. You can then send the source patch back to the developer, who will find it much easier to add that to the program than either a request (which they have to formulate the code) or a bug report (which they have to understand, find in the code, and generate the fix). In a major software project, the ability to move forward in your own time frame is priceless.

If you believe everything I said, then consider this. Today there are about 500,000,000 general purpose computer systems in the world, with about 450,000,000 of them Microsoft (mostly desktops). If a team of engineers can not keep up with the needs of 4.5 million customers, how can they keep up with the needs of 450 million people? Nor can they keep up with the needs of 6.5 billion people. Free and Open Source allows you hire the local talent to address your bug or your enhancement that you need.

Consider this. If your system is not tailored to your needs, if it is buggy, or prone to viruses, you may have a cost attributed to it for lost time. Let's say that cost is only five USD per day. That means with 500,000,000 general purpose computer systems, the world is losing over 2.5 billion USD per day in lost work time due to buggy software that does not work they way you want it do. It is too bad that some company can not reclaim all that lost money and make the software better. On the other hand, how many workstations does one entity own? Munich, Germany had 14000 desktops. If they lost only 5 USD per day per workstation in unrecoverable costs, that would be 70,000 USD per day lost by the city of Munich because their software did not work the way they wanted it to work. They could hire a lot of Free and Open Source programmers to help them solve their particular problems with paying them 70,000 USD per day. And we are not even talking about there money saved in licensing.

Some people might argue that you would not be able to save the entire five dollars, since no software is perfect. But what happens if we reduce it to only three USD lost (a savings of 28,000 USD per day over all for the city of Munich.

Part of the issue of shrink-wrapped, commodity software is that it only meets some percentage of the needs of the end user, by its very definition. Since it is not tailored software, it meets the needs of a customer the same way that a suit bought "off the rack" meets the needs of a customer, versus a tailor-made suit. While both suits cover the body, the tailor-made suit will enhance the person's image more than the manufactured suit.

I have been in the computer industry for a long time. In those many years I have never seen a "commodity problem". I have seen "commodity solutions" trying to fix a proprietary problem, but each problem is unique to the customer, and to try and make a commodity piece of software meet each customer's problems is difficult, if not impossible. Even if I were to agree that commodity solutions might (in aggregate) meet a customer's needs, those customers will have no way to get a edge on their competitors, who will use the same commodity software to get the same answer. Free and Open source allows the same type of application of "commodity solutions", but also allows for tailoring of those individual pieces to exactly meet the customer's needs.

It is this tailoring that allows local software developers to develop a rich and lucrative business in servicing the needs of Free and Open Source users. Instead of paying large amounts of royalties to another country, Free and Open Source can be pulled down from the net for no money, and then local software developers can tailor it to meet the needs of the end users. This tailoring is not the low-skill, low-pay jobs of installing shrink-wrapped software, but is the high-skill, high-paying job of systems analysis (to understand the customers exact needs), and programming (to change the sources to meet those needs). While it is difficult for a value-added reseller, distributor or other person to justify large sums of money for just installing packaged software, it is much easier to justify values-added programming changes that will enable the customer to better do their job and save money.

This builds a local software production economy that you do not get by just buying pre-packaged, closed source, proprietary software.

It is important for Macedonia to build that software economy. In a shrinking world it is too easy to become dependent on other countries for our survival. We give up certain abilities because it is "cheaper" or "easier" to purchase those from other countries. But what happens if those countries embargo you country? What happens when those countries use their economic might to force things on you that you do not want to do? What happens if that country is attacked by another country, and decimated, or if that country suffers terrorist attacks that disable the part of its software industry that you depend on? What happens if the country that houses the software creation facility decides that your country should not have the best encryption software, or the ability to make a supercomputer? Why should that government decide what is best for Macedonia?

Speaking of security issues, what guarantee has Microsoft given you that the code you are using is free of trojan horses and back doors? They have developed a plan recently to allow select people from select governments look at their source code over the Internet, using a tool they provide. Naturally they do not let you look at all their source code, just portions of it. And naturally there is no concrete assurance that the code you look at was actually used to build the binaries you run on. Therefore this is no real help at all, and is really a waste of your time. Free and Open Source code gives you ALL the sources, under YOUR control, to build the compilers and operating systems, applications and other pieces necessary to protect your government. This is one reason why the National Security Agency (NSA) cooperated with the Free and Open Source community to create a Secure Edition version of the Linux Operating system (SELinux), with enhanced security protection, and make it freely available in source code form.

Free and Open Source is developed all over the world. It belongs to no one, it belongs to everyone. The source code resides on thousands (if not millions) of servers, in hundreds of countries. Even if those servers were to disappear, the sources also reside on millions of CD-ROMS and DVDs. It could be put back together quickly in time of disaster. But if Macedonia does not develop the Free and Open Source economy, they will not be able to take advantage of these points. You need people in your country trained to work on Free and Open Source software, those who are familiar with it, so they can help your government in time of need. The place to start is in your government, in your universities, and in your schools.

Schools and Universities are another issue. Software companies often offer "free" (or greatly reduced) licenses to schools, knowing that when the students graduate, they will tend to use the products that they know. These students will be paying full price for these products, which again raises the price of their services and creates even more of a balance of payments problem for Macedonia. But more than that, the use of closed-source, proprietary software limits the knowledge that your students can gain at the University.

When I studied computers thirty-five years ago, I studied the basics. I learned how the hardware worked, and the software down to the ones and zeros that make up the exact software of the system. Thirty-five years later, that education still bears me well, and I expect it to keep helping me until I retire in a few decades. As new methods of computer science are developed, I can look at them and understand how they work. I do not need more than the magazine articles and the books which are currently published on these new features.

However, if I had used closed-source software, and only learned how to program in JAVA or in some other high-level language (which is now the style in a lot of universities), I would be held hostage at some point in trying to understand how new technologies work. As a former department head of computer science, teaching for seven years at the University level, please believe what I say. What happens when a student take a course (and I have seen such courses taught) of "How to manage business using Microsoft Office?" What happens when (five years later) Microsoft significantly changes the product? Do you reach out and take away a portion of the student's diploma? How much better would it be if the course was entitled "How to manage business using modern office tools", and you gave them exposure not only to Microsoft Office, but also Open Office, Word Perfect, and other office packages, to allow them to see what is the best for their business?

Universities should not be teaching courses based on products which change from year to year. They should be teaching courses based on written and open standards and basic principles. This type of education will stand by their students far into the future.
In addition, the use of Free and Open Source operating systems in teaching students allows them to see how a real operating system is built, one that runs in everything from PDAs and embedded systems, to supercomputers. It allows them to be trained in an operating system that is being used on one-third of all the shipping servers in the world today, and is rapidly gaining ground on the corporate desktop. The students not only see how the operating system works, and how to administer it, but also why it works, by looking at the source code.
Microsoft may point at its "Shared Source" program. But look carefully. They only allow you to look at the source, not change it. And they only allow this program in a few countries in the world. What happens if your university wishes to collaborate with another university that is in a country that does not have "Shared Source"?

Microsoft may also tell you that if you do research with their products, that the results of that research will be usable by many people over the world much faster, because of the large number of people using Microsoft products. They forget to mention that if your research involves changing their code, then your research will only move forward if Microsoft thinks it is best for Microsoft. I experienced this at Digital. Digital offered them both a 65-bit version of Windows NT and a version of our cluster software. Both of these were rejected by Microsoft, so our customers never benefited from our research and work.

Think, on the other hand, what your students could do with a little guidance from their professors and Free and Open Source. There are embedded system building blocks that Linux runs on. These are very inexpensive, and they allow students to add new control circuitry to existing microcomputers. If a student had a new idea for an embedded system, they could easily build this system using a Free and Open Source operating system. Then, when it comes time to manufacture it, they do not owe royalties to some far-off company, they do not have to negotiate with lawyers for months over what they can and can not do with the code, they can just start to manufacture it. How many new products could Macedonian students design for Macedonian companies to manufacture and export?

Or, you could create your own supercomputer, to allow your scientists to work on problems that they could not afford to solve before. I am sure that Microsoft, when you show them this letter, will have lots of excuses and answers for some of these points. Others they will have no answer for, and there are still other issues which I have not brought up in this letter. I would appreciate the chance to present and discuss these issues with you.

The final point is that Free and Open Source software allows Macedonia to enter the software development marketplace, not as a slave to some other company, country or economy, but as a free and equal partner in this development. This is what China realized when I talked with their Minister of Information Technology in 1995, what South America has and is realizing, what Germany has realized, what Japan has realized and (as I fly back from speaking with their government, typing this letter) what the Malaysian government has realized. Other governments are also moving in this direction. Macedonia will not be alone.

These governments realize that it will not be an easy transition. They will have to develop the infrastructure to understand and support Free and Open Source. But they also understand that if they start, in two years they will not be dependent on any one country or set of countries. Instead they will have joined a world order of Free and Open Source Developers and Users who know no country boundaries. Please make the decision to join us. Carpe Diem,

Jon "maddog" Hall, President
Linux International
80 Amherst St.
Amherst, N.H. 03031-3032