Introduction
As a software developer I believe in the open source concept. Many people have asked me why open source is a good idea and how it could work.Many people have arguments against open source, and some of them are very valid.
Open source software goes against the traditional software development company model of build software and then sell it for as much as you can, with as high a volume as you can. Traditional software companies have an extremely hard time when the economy slows down, but open source companies can flourish either way. Another trend of open source companies is that software developers and customers win while software company management and sales/marketing lose. I hope that after an explanation of why this is the case that you will be able to see why some people like open source, and others loathe it as the threat to their career that it is.
One thing to remember with open source software is that different business models are needed for different types of software. Consumer oriented software is the toughest to build in the open source model, and enterprise software is the easiest. The greatest success stories of the open source world are software packages that become basic building blocks or provide specialized features to companies. The consulting model I describe here is centered around enterprise software that companies use to operate more efficiently or on a greater scale.
Software Quality and Development Efficiency
There has been some argument about which type of project results in the best quality software, and which type of project is the most efficient. Many open source proponents argue that open source software is generally higher quality than closed source software. I agree that this is generally what happens, although open source does not high quality software make.
Open source software works best when developed in active communities with a number of different interests represented. In that case the product is seen by more people, especially the source code of the product. Features are more carefully selected and better designed and implemented. Sometimes it takes a number of iterations, but the software gets there, and it works well when it gets there.
Projects like Apache and Linux are classic examples of large packages that work well together and are recognized throughout the industry as being reliable and stable. Products built on top of Apache and Linux are becoming more and more popular because of this.
Open Source Software Company vs. Traditional Software Company
First I would like to describe my preferred open source business model, and then compare that business model with the traditional software business model.
There are many different potential open source software development business models, just as there are many traditional or closed source software development business models. I will describe one potentially successful open source model, and then compare open versus closed source companies in as general terms as possible.
One good open source business model is centered around consulting. There is no management except what would fall under the CTO of a traditional software company. No sales, marketing or administration is needed. Some accounting will still be necessary, after all this is open source but we don't always work for free. The primary revenue for this business comes from custom projects, installation, support, training, and other activities charged for on a time and materials basis. All of the software developed is open sourced and enters the pool of candidate code for certain open source projects maintained by this company, or other entities.
How would this work? How can the company live without sales, marketing and administration people? Such people could be useful in the organization, but there is no need for marketing or sales because people actively search out open source projects, and communities are naturally developed in special interest groups related to the project.
Can revenues really come from an open source company like this? Recently IBM announced that over half of their revenue now comes from services, not product licensing or sales. Many organizations have no products, just services, but a mix of both seems to be the best.
In a traditional software company, where does all of the revenue go? Even in startup product based companies usually 20% or less of the budget goes toward development expenses. When companies sell developer time they charge a lot, usually $150-$200 per hour as a middle range, and pay the developers only $30-$50 per hour. So why such a margin? How else will certain roles in the company be provided for.
Even given all of the money that traditional software companies charge for their products and services, they still manage to spend a lot more and go out of business very easily, especially in an unstable economy where economy of scale based revenues tend to disappear as the market toughens up.
Projects and features would be created based on what a customer wants. Customers are empowered and get to choose the features they want, and can cheaply get the software to support their business model. Customers no longer need to live with the way a software company thinks their business should be run. And, the open source software company is not limited by demands of management, owners, or venture capitalists.
Basically the money from services alone could cover development, services, and minimal administration if marketing, sales and ownership based administration are removed. So who benefits? Mostly, the current under-dogs: developers and customers. Who loses: traditional software company owners, administrators, and marketing and sales personnel. So who is not going to like open source?
Concerns of Developers
The funny thing is that many software developers and software customers don't like the open source model either. There are a number of valid concerns, but if handled right (just like a traditional software company has to be handled right), an open source based company can prosper and customers can benefit.
Developers seem to be concerned about getting paid. Most developers are not used to having any rights to their own work, and that is what they trade for being paid. Unfortunately this sometimes leads to huge legal disputes because companies want to erase developers minds when they leave. This isn't always true in consulting companies. The consulting company, or consultant, often maintains ownership of the software and the customer who sponsored the project has non-exclusive, but otherwise nearly unlimited, use of the software.
With open source projects the developers never have to worry about losing the work that they have done, and they can always use it in future projects even after leaving the company. Also, if the company goes under or a certain client drops their support half way through the project, what happens? Since it is open source, and the most recent work is always being published, users or customers will be aware of what the feature is and chances are someone will be interested in paying the developer to finish the project.
Developers will also benefit because they get public recognition for their work and if their work is good job options are good. Even on the side consulting options for very attractive rates become common place because companies depend on good people to support the software that runs their business.
Concerns of Customers
Customers also usually have a number of concerns. One of the main concerns is support options and the reliability of the product and the software company. What does a customer do if they have a problem with the product, or can't find a certain option? What does a customer do if the maker of the software goes out of business?
Most traditional software companies charge for their services, except the most basic support services which are included in the initial purchase for a limited period of time and then maintenance fees are charged to continue receiving basic support services. My experience with complicated software has been that when you have a tough question, you will be referred to their consultants who will solve your problem on a time and materials basis. Some companies do better than this, but don't expect too much.
This is the common lie of traditional software companies. They say: the software is good upfront and worth the license fee; we will include installation and support with the software (no mention of how much). Usually the amount of services included with the license is not specified. The software company wants less services included, and they fight for that, and the customer wants more services included with the up-front license, and they fight for that. Sometimes customers take legal action for that.
An open source software company will be honest and up front about how your problem will be solved: you let us know what your problem is, we give a time and cost estimate, you decide yes or no or change the requirements, and off the solution to the problem goes. Some problems will not need this much involvement. A post to a newsgroup will get looked at by various people because that is where they look for jobs too, and if it's an easy problem someone will still want to do it because they build a relationship with the customer and future work will come their way.
It is true that customers will not have the warm fuzzies usually associated with quality guarantees and promises of traditional software companies. But they will have solid quality from responsible software developers who they can build a relationship with. At any time if a developer's work is not valuable to the customer, another developer in the community can be found, so developers will do what they can to keep their clients happy.
What happens to the customer if the open source project goes away? This doesn't happen very often, but even if it did the customer would have a number of things that the customer would not have with a traditional company going under. And yes, even large traditional software companies go under when things get tough. The customer would still have access to the rest of the community, and with enough interest part of the community would likely step in and restart the project. Also, the customer would still have access to developers in the community that can help fix problems.
What happens to the customer when the product changes? This is an area where open source software has great benefits. An open source product/project is has no licensing costs when you first implement it. The only costs are installation, training, and maybe some customization. For a new version of open source software the costs are the same as with a new purchase or installation except that the customer will already have experience with the software. This price is much less than purchasing an upgrade license, or even worse, paying ongoing license maintenance fees.
Another concern with open source software for customers is that as the project goes on things change, even things effecting the customizations they have done. That means that customizations may have to be redone or modified. If customizations are tracked well, this is a controlable cost and one that exists with both open source and closed source products. With open source this is at least easier because a customer can keep an eye on what the project is doing and planning for the future. This can also be done before customizations so that conflicts are avoided.
Concerns of Investors
Investors usually have a different role with an open source company. Often investors are customers as well, and so every that applies to customers applies to them as well.
What about investors in the open source software company that want a profit from it? Investors might be needed up front to get the project started and create something that potential customers would be interested in. Usually this is not the case with open source projects. A couple of experienced developers can throw together something to get clients or customers interested who then pay the developers to create the features they want, and boom the company is up, with no "investors."
What if an open source software company wanted help with realizing growth potential, and an investor seemed like a good way to do it? What is an investor supposed to think about an open source operation? Many open source business models make it hard for an investor to become interested.
Investors usually want to see a product that can be created for a certain cost, and then sold many times without incurring too much additional cost. This is a very convenient sounding but fairy tale business model for companies that create complex enterprise oriented software. Complex software, and often even simple software, requires training and support and customization services. That is the real world.
A wise investor could profit a great deal from an open source software company if there is an understanding of what the company is, and what the company is not. In the consulting model described above nearly all revenues could be considered profits, so a percentage of revenue agreement would be feasible. That may not be attractive to a developer who is basically selling a percentage of future wages. Also, this is a problem because what if the burden is found to be too heavy, and the developers decide to abandon the company, and continue the open source project outside of the company.
Closed Source Extensions of Open Source Projects
One business model that may be profitable is to build closed source software based on open source projects. Even if these closed source products are based on open source software, they will still have all of the problems of closed source companies mentioned above. The main advantage of doing this is faster development times for the closed source software since the open source software can get the product most of the way there, and then added modules or extensions just fill in the missing pieces.
Customers of closed source products based on open source software have an added advantage of lower costs because most of the functionality is free and open source. The product is also likely to be more reliable because the developers will have community approved principles and methods to build their software on.
One difficulty with this model is that customers may expect the closed source vendor to support the open source portion of the software as well, which will add expenses. Because this is sometimes one of the more significant costs to a software company, and to customers, the warm fuzzy guarantee of traditional software extended to the open source portion may cut into profits.
Conclusion
It may be that forcing revenues from open source software companies will not be possible. Open source software companies give a big thing to their customers: the customer does not have to continue paying if the service level is too low, they can go elsewhere. What is good about this? Finally software developers will be responsible for the work they do, lest they lose clients. Clients or customers will get the service they pay for, and will not get an angry employee of a company that charges 3 or 4 times what they pay the employee to support other roles in the company that the customer doesn't care as much about. Customers are no longer bound to a product as it stands, but have the freedom to get what they want from the project.