Free Software For a Small Country: Part Four - Patterns of Software Solutions
Now that we have discussed why a “small country” needs Free Software, some ways of getting training, and how to find and organize people around Free and Open Source Software, we can discuss patterns of handling projects with Free Software. Notice I said “patterns” and not “methods” -- they are slightly different.
All Pain, No Gain
First I would like to discuss what you should not do. Too many times I have seen Free Software advocates go into a company or environment and say “Let's convert the entire system to Free Software!" Then they proceed to try and take an entire organization and convert a fairly well running, fairly efficient solution that every one is used to working with from a closed-source proprietary system to an open source system. They try to utilize existing hardware and just change the software to try to obtain efficiencies of use and cost savings. Unless there are looming future costs, or known inefficiencies in the present software, this will probably end up costing a lot more than it will save and not be appreciated by the end users. I call this the “all pain, no gain” port.
The reason these efforts typically fail is that the hardware is already in place so there is no savings in hardware; the software licenses have already been bought, so there is no savings in software licenses; and all of the users have received their training or are used to the old environment so they loose time and money in retraining to the new environment. Gains of speed and efficiency in using the system are rare and the users all end up saying “Why did you have us do this?”
< PHOTO CAPTION: "maddog" demonstrates proper attire for ""Wear a Tux Penguin Day" (August 7th) in a "selfie" taken from his Facebook page. For full explanation of "Wear a Tux Penguin Day" see: http://www.linux-magazine.com/Online/Blogs/Paw-Prints-Writings-of-the-ma... >
Compare this example to an old system that has old hardware and old software and where the manufacturer of the software is dropping support of the current OS: Windows XP, about to be dropped in the Spring of 2014, is a good example.
Even if the transition from Windows XP to a new version of the Microsoft Windows Operating System was painless, hardware may have to be upgraded to run a new version of the closed-source operating system. With FOSS you may be able to tailor the operating system to run efficiently on the old hardware and thus provide a cost savings by not having to upgrade.
The new version of the closed-source operating system may require upgrade licenses, which will create new licensing costs, and there will have to be some training and efficiency lost while the end users (and systems administrators) become used to the new operating system.
New copies of application software and/or porting of the old applications to the new operating system may have to be purchased and that is an additional cost.
At this point management can justify the integration of FOSS to create a replacement solution rather than purchase new equipment and upgrade licenses.
When FOSS really shines
The time that FOSS really shines is in a new application which is applicable to numbers of people or companies or with the replacement of functionality that is invisible to end users.
As an example, a file and print server can be set up to hold users files and print jobs using the SMB protocol. This allows for savings in not having to buy a large closed-source proprietary operating system server (or several of them). A database engine accessed through SQL or some other standard language can be substituted for a very expensive proprietary database system without the end users ever knowing about it.
Many years ago I visited the CTO of a large health company to tell him about Digital Unix: our closed source Unix system. While there I asked him if he used any GNU/Linux in his company. “No!”, he said, “We do not use any of that amateur software here, we use only professionally made software.”
After the meeting two of his systems administrators came up to me with a Linux magazine rolled up in their hands and asked me to autograph it. I asked if they used any GNU/Linux in their work.
“Shhhhhh!”, they hissed. “Our boss told us to set up a Windows NT server for our client systems and we tried to do that, but it kept crashing. So we finally had to use GNU/Linux with Samba. For the past six months he has been coming downstairs at least once a week and stating how pleased he is with the Windows NT server.” “When are you going to tell him?”, I asked. “We will give the GNU/Linux server another three months, and if it is still just as stable, then we will tell him,” they said. In this case the end user could not tell they were using GNU/Linux.
A friend I recently met is a professional user interface designer who used a certain closed source vector graphics design package. He was paying the company who made it about sixty dollars a month for his license. He found out that he could use InkScape to do his designs and InkScape would both read and write to the same standards as the proprietary package. Did my friend have to learn new commands and short cuts? Yes, but it was worth it to him to save sixty dollars a month for the rest of his life. His clients could not tell he was using “Free Software”. In this case there was a direct savings which outweighed the direct cost of his having to learn new software.
The application may be also be a new web-based application. Often a solution using a GNU/Linux system, the Apache web server, a database and a scripting language can be set up very quickly. The logic of the program is mostly held in the database and the scripting language which would have to be programmed even with a solution using closed-source components. The difference being that instead of having to pay for a server license, a web-server license, a database license and a compiler, you can put all of that license fee into writing the HTML, the database logic and the scripting. The end user sees the application as “just another web app” and does not know that it was developed with Free Software.
These LAMP solutions (as they are called) are not “amateur software”, as our CTO called GNU/Linux, but software subsystems that are used by millions of web-servers every day to service billions of applications and web sites.
Even if you do not use LAMP as part of your solution, you can go out to Free Software repositories on the Internet and find huge amounts of Free Software that may meet you needs exactly. This is not much different than going to a store to find a box of software on the shelf, or going to a company's website and downloading software to use in your home, school or business. Except you do not have to pay a license fee for it.
If the software which you pull down from the web fits your needs exactly it as if you purchased the software from that box or closed source company. If the software does not fit your needs exactly, you can use the money that you usually would have paid for the license to pay someone to make the changes you need, or fix the bug you found. Try to get the closed source company to change their software to meet your needs in your own lifetime.
Three Tier Client/Server
Many years ago an MIT professor named John Donovan developed a technique called “Three Tier client/sever computing”. In this technology he advocated separating the data collection from the computation, then formatting the answer at the last possible moment. Today this sounds commonplace, but in the day of the mainframe computer this was unusual, and by following this technique Dr. Donovan's team could develop applications overnight that mainframe programmers would take months to develop.
The same thing can be done with Free Software. Utilizing large pieces of software that already exist in software repositories, the developer can change each piece of software to make sure they work well together. There are FOSS ERP systems, CRM systems, GIS systems and other systems that people can use either the whole system or part of it for free. Then as the data is analyzed and finally computed, the presentation can be done through a simple cell phone app or HTML5.
Do Not Re-Invent the Wheel
Since Free and Open Source is usable by anyone for any purpose, it means that there is no real limitation to having the code used over and over.
A good example of this is a program called “SAGU”, originally written by a friend of mine, Cesar Brod, and now maintained by the consulting group Solis. SAGU is another “LAMP-like” program that is used to administer a university. SAGU keeps track of all the entrance exam grades of students entering a university. Generated in modules, SAGU also keeps track of the university finances, the infrastructure layout of the rooms, buildings and equipment, tracks the academics of the students, schedules the professors, classrooms and courses and also integrates with Moodle (among many other things). Its' companion program GNUteca runs the library and a student can not graduate if they are missing a library book or owe a library fine. Any student can log into the system from any web browser and find out exactly where they stand in the program.
The system was first written for one University in Brazil (prompting in Portuguese). After a while a couple of other universities in Brazil asked if they could use it, and of course they could, since it was Free Software. Eventually a Spanish-speaking university asked if they could translate it and use it, and of course permission was given. Today many universities throughout Latin America use and save money with SAGU.
I compare this to another major university (I do not want to embarrass them by giving their name) who was putting aside ten million dollars to implement a university management system. Or another university in Australia I heard of that had spent seventeen million Australian dollars (and five years) on a large commercial software package and was told it would take another three years (and other five million Australian dollars) for a generic solution -- not even a solution tailored to the university.
These are “patterns” of solving problems with Free Software and not exact methods.
It is interesting to me that companies create closed-source programs to be put in boxes or pulled down off the Internet as if they were “products”. However, most people do not need a “product”, they need a “solution” to their problem. Often the solution needs tailoring to the needs of the problem and this is exactly where closed-source programs are typically not very good.
Free Software allows you to pull the “products” down from the Internet, and change them if they do not meet your solution's needs.