Opening up software is a profitable business when done correctly. When conducting business with Open Source software, you should concentrate on doing the right things that will enable the highest profit. Or expressed in opposite terms, by doing the wrong things you may end up with a “no win” lottery ticket. Our blogs discuss open software and solutions. This time, I will discuss which things you should open up to get the most from the implementation of an open source code product or service.
Open source code is not free, but at its best it is a small expense, which will earn you more than you invested in it. Let's start with a question: What does open source code consist of?
Divide your software in three categories:
- Added value, IPR (immaterial assets of your company) or a service component that makes money.
- Adaptation layer, glue logic, which adapts your own layer to various platforms.
- Generally available commodity layer.
Open and generalise everything that does not provide you with an actual business benefit
In a healthy model, the software has been optimised so that the part the customer is willing to pay for is as small as possible. This is an important thing to recognise. The rest of the software is divided in the necessary adaptation layer or glue logic, plug-ins, libraries and commodity parts, such as middleware, frameworks, libraries and user interfaces. These layers come from communities or companies. Open software is a high quality tool tested by the general public.
Recognise, categorise and aim to open and contribute all code that does not have direct business value, to glue layer and preferably on to general layers. This is a cost with which you will purchase a cheaper future for your project and make the use of open source code profitable.
Why open the code for which you have paid to be written?
Maintaining software always costs. By opening up your code to other interested users, you will profit from your work. Open source code will start paying itself back, for example, through:
- Decreased maintenance costs. Your code will remain compatible with your project, when the community will keep it compatible with the most recent versions.
- Decreased testing costs. When the code has other users you might receive error reports from outside users and even fixes well before your paying customers run into the same bug.
- In the best case, the community will provide you with new features for your software.
Of course, all this requires that:
- Your code or software is of value to others – communities are not dumping grounds.
- You are an active and open maintainer in the community, not a jealous owner or uninterested dumper of code.
How to fail?
Unfortunately, the use of open source code software is often misunderstood and savings are made in wrong places. When costs are cut in opening the code, open source codes turn into expenses. When changes and improvements are not sent back to the community (upstream), the above triangle will start to look like this:
- Borrowed software has been revised without upstreaming it back to the community; the proprietary part grows.
- The proprietary part is so detached that integration of updates from the original upstream is too much work or too expensive.
- Control over data security and feature updates has been lost and you are left with an expensive clump of code.
- Opening up will no longer work, you have drifted too far from the original and the community has lost interest in your contribution offering.
Due to temporary savings and “the ease” of development, your proprietary software has become a burden the maintenance of which is heavy and expensive and the cost cannot be shared.
How to succeed?
No one wants to fail. In my future blogs, I will discuss what to do to turn open source code software into profitable business. I will tell how to avoid the above-mentioned mistakes and reach a successful end result.
Until then, goodbye, or if you can't wait, we can of course start building your project into a winner offline :)