Using Open Source in Business
In recent years Open Source software has become the new IT craze. However, is it right for your particular business? You would be foolhardy if you did not take each new industry buzzword with a grain of salt the size of your SUV. Luckily Open Source software is not your average marketing hyped IT craze, nor is it driven by any single company's agenda. It is driven by tens of thousands of IT professionals around the globe who have realized this method of producing and distributing software to be far superior traditional commercial methods. The following paragraphs should give you enough of a crash course on the topic to form your own conclusion.
What is Open Source Software?
The biggest difference between Open Source and the software you are used to purchasing is that you are given access to the underlying "blueprints" or source code of the application. Source code is what programmers write and how they instruct the computer to perform tasks according to their goals. Source code is much like a chef's recipe. 1 pound of fresh hard drive, 1 tablespoon RAM, and a pinch of cable modem. Bake at 475° for 20 minutes. Voilá you have a word processor! It isn't quite that simple, but you get the idea.
In typical commercial software you are not allowed to see this recipe. It is the company's intellectual property and is a closely guarded secret. Right about now you are probably asking yourself, "But I'm not a programmer, nor do I want to become one. Why do I care if I have access to the source code?". Surprisingly enough you and your business should care for several reasons. Here is short list of the major reasons it is an attractive choice for businesses:
- Control — Using Open Source software lets you be in control of your business. Unlike commercial software you can be the master of your own destiny.
- Flexibility — It is licensed in such a way that you can modify it yourself or hire a third party to modify it to suit the specific needs of your business.
- Reliability — It is developed in such a way that it is typically more reliable ( i.e. fewer bugs ) than software which is developed using a standard commercial development method.
- Cost — Open source software can be obtained and used with little to no up front costs. You only pay for the support you actually need, and most importantly only when you need it.
- Longevity — When a commercial software company goes out of business you lose all your support, bug fixes, security patches, and possibility of future versions. If a piece of software you use is critical to your business, and is Open Source, you can simply contract with a consulting firm, individual programmers, or other third parties.
When a programmer or a group of programmers publishes software under an Open Source License they purposefully give you these freedoms and very few restrictions. You are free to modify the software to suit your needs, free to use portions of their program inside of another program, free to give copies to your friends, free to package the software as a product and sell it.
The only restriction is that if you utilize any of the above freedoms you must share and share alike. If you modify or use a portion of a Open Source program and distribute it, you must do so under the same terms and provide the source code to the changes you have made. In these restrictions lies the true power of Open Source. This power is best illustrated by a few examples.
Examples of the Open Source process at work
Bobby Smith a young computer science major at the local university spends his free time building a computerized library system to help catalog his enormous comic book collection. Bobby publishes his pet project on the Internet and licenses it under an Open Source license. If Bobby's software is reasonably well written and fills a particular need better than other systems out there, soon other programmers from all around the Internet are helping improve this software. They do this by finding and fixing bugs, writing user documentation, as well as, extending the application to fit their own particular needs.
After a few months the software has been improved upon and now can catalog not only comic books, but various other collectibles. One of these programmers even tells Bobby that he setup the software to manage the inventory of his father's used bookstore.
Acme Widgets Incorporated hires Bobby to customize the software for use with their inventory. Because Bobby is intimately familiar with his own software the changes Acme Widgets Inc. requires are easy and most importantly cheap to implement. Considering that the Widget business is very competitive, Acme elects to not publish these changes back to the software community. Because Acme Widgets Inc. is not distributing the modified software to any third parties they are well within their rights to keep these modifications to themselves.
A few years pass during which time a new Open Source project has captured the attention of all the users of Bobby's software. Bobby's original project is scarcely used any longer and all of the other developers have migrated to working on the new project. Bobby himself gave up on college and moved to another country to take up painting.
As with most industries there were some advances in the widget manufacturing business and now Acme Widgets Inc. desperately needs to make some changes to their application that was originally based on Bobby's work. Unfortunately, with Bobby and the other developers no longer around Acme is worried it may be forced to move to a completely new product. This would cost Acme thousands of dollars more than making a few simple changes to their existing application.
Luckily, Acme Widgets Incorporated built their business around Open Source software. They do a few searches on the Internet and find a consulting company that is willing to make the necessary changes to Acme's software for a reasonable cost. This was only possible because of the Open Source nature of their application. Without the source code the consulting company would be forced to rebuild the entire application from scratch. Building it from scratch would have cost considerably more money and impacted Acme's business as newly created bugs will have to be worked out of the system over the next few months.
Based on the past successes of their use of Open Source software, Acme Widgets Inc. commissions a consulting firm to build a custom billing system specifically geared toward the widget industry. However unlike their inventory application Acme realizes that billing their customers is not an area where they can gain a competitive advantage over their competition.
Acme Widgets Incorporated releases their new billing system on the Internet as Open Source software. They even go so far as to inform all of their competitors of the existence of the software. Conventional thinking businesses would never dream of giving the software they paid to create away to their competitors. Acme Widgets isn't conventional and see that this is actually in their best interests. By forming a community around their billing software they reap the benefits of free bug fixes and enhancements by programmers all over the Internet, even programmers on their competition's payroll!
While free bug fixes and enhancements are nice, Acme Widgets realizes the real reason they released their billing system as Open Source software. They did this to ensure that there would be a pool of talented programmers around that would be familiar, able, and willing to provide Acme with enhancements if they required any in the future. If for some reason the original consulting company were to go out of business or if their relationship with that company were to sour Acme could simply turn to members of the community of users the software.
Even if Acme's relationship with the consulting firm remained amicable, there may come a time when Acme needs a change in a time frame the consulting company simply cannot accommodate. Here again having the source code and/or a community around the project allows Acme to take their request elsewhere to a company or individual that can meet their needs.
Keeping Control of your Business Through Open Source Software
Simply having the source code to your applications gives you, as a business owner, enormous power and control over your day to day operations. It allows you to do business with the companies that provide you the best service, support, and price. You are not locked into keeping a relationship with Programmers-R-Us™, who are constantly late and over budget, simply because they are the company who originally wrote the software you use.
How many times have you heard "That will be fixed in our next release which is scheduled to be available in 7 months for the reasonable upgrade price of $799.95" from your software vendor? What if you need the bug fixed now not later? Unless you want to spend vast sums of money to change your vendor's plans you are probably out of luck. By using Open Source technology you are free to take your business elsewhere to meet your time lines. Exactly as you would take your car to another mechanic if your regular one is booked solid for the next three weeks.
Reliability in Open Source Software
Not all Open Source software is created equal. Each piece of software is developed by different groups of programmers with varying skill levels. However, because the source code is available to be reviewed by anyone at any time many bugs are found and fixed before they are even discovered by end users.
Writing software is very similar to writing a novel or story. As many writers will tell you a story is never truly finished, there is always a better way to write or tell it. It is the same with software. A new programmer may join the community around a particular Open Source application and see a better way to attack the problem or find an undiscovered bug because he or she is seeing it fresh eyes.
It would be the literary equivalent of having hundreds or thousands of editors and proof readers going over your book for free.
The True Costs of Software
When you purchase the typical piece of off the shelf commercial software what you are really paying for is support. Many people falsely believe they are paying to help recoup the costs associated with the original development of the software. These costs are factored in, but the margin on commercial software is so huge that these costs are recouped very quickly.
Others are also mistaken that they have "purchased" their software. Most commercial end user license agreements ( aka EULAs ) specifically say that you are allowed to use the software. You do not own anything, you are simply renting the software. The vendor can revoke your right to use it at any time and usually for any reason they want. You may be tempted to go read one of your EULAs right now, if so I strongly suggest you do so sitting down and make sure you have taken your blood pressure medication.
When you pay for commercial software, you are really paying for several different types of support:
- Direct Support — A phone number or website you can use to get help with the product.
- Indirect Support — This comes in the form of local professionals who are "certified" in that particular product or are otherwise authorized to help you by the vendor.
- Longevity — The future viability of the company obviously depends on its software sales. You are essentially paying to help ensure the company survives the next few years so that they can develop new and improved versions of the software.
- Sense of Security — There is a number to call or a company to sue if the event things go south.
You are paying for this "support" whether or not you actually take advantage of it. When was the last time you actually called your vendor and received a human, let alone a helpful answer? When was the last time you needed to sue your vendor? While having a number to call or someone to blame when things go wrong may help you sleep at night, but do you really think your Fortune 500 vendor is going to shutter if you sue them or stop using their products? Do you think they will even notice?
Open Source software removes the charade of software sales. You are allowed to acquire the software a little or no cost to you. You simply pay for the support you need and only when you actually need it. And this support can come from any qualified resource. You can hire in-house talent to maintain and develop your systems, you can hire one of the notable developers working on the project, or you can out source this to consulting firms that specialize in this area. Because the software's source code is available to you, you have options. And I think we can all agree having options is essential when things start to go sour.
A steel ball bearing manufacturer would not feel safe only having one steel supplier. Any little problem on the part of the supplier can significantly impact the manufacturer. Do you feel safe having only once source for the application(s) that run your entire business?
Open Source software is the basis for most of the Internet's infrastructure. Many of the common Internet services, such as web servers and E-mail, have their roots in Open Source software. 64% of web servers on the Internet run the Apache Open Source web server software. 70% of Internet E-mail travels through Sendmail, an Open Source E-mail server. I mention this because some people falsely believe high quality software can only be created in some software company's cubicle and cannot be made collaboratively over the Internet.
Just as you are not tied to a particular company to provide your business' other infrastructure ( i.e. electricians, plumbers, contractors ), you should not be tied to one company for your IT infrastructure. Please do not hesitate to contact me directly if you have any further questions on Open Source software, I can be reached at email@example.com.
Some examples of commonly used Open Source software:
- Linux Operating System
- FireFox Browser
- Mozilla Browser
- Apache Web server
- Perl programming language
- OpenOffice Suite
- MySQL Database
Some companies that are known to use Open Source software in their businesses:
Below are some suggested further reading on the topic of Open Source: