Open source software being what it is, has gained numerous connotations over the years since it began to figure in the consciousness of IT enthusiasts and businesses worldwide. In this post I will try and stick to talking about the “whys, hows, whats and whethers” of moving from proprietary software to open source software.
If you are looking to extricate yourself from the restrictive stranglehold of proprietary software vendors who dictate every click of your mouse button and every stroke of your keyboard, you probably don't need any more convincing. If you are on the fence; have heard “good things” about open source but need some convincing, you are already on the right road! Wisecracks apart, moving to open source is not an easy choice to make for an organization that has been using proprietary software for a while and sees little benefit in moving. Let's look at what is really involved in making the move.
Advantages of moving to Open Source
Contrary to what you might have heard, saving on cost is not the biggest advantage of moving to open source software.
Your problem is not unique; however much you might like to think it is. It's always a good idea to connect with people who are working towards solving a common problem. Open source software is a great example of how this could happen. By joining such a community, you free yourself from being at the mercy of a solution giver (commercial software vendor) and become part of the solution.
By actively collaborating with the community, you help others such as yourself and the saving you might make on cost is just incidental.
Getting your feet wet
There is no doubt that numerous people have got their fingers burnt, dabbling in “open source”. The reasons for such mishaps range from a lack of understanding to downright cheating by software charlatans. The more difficult issue to tackle, however, lies somewhere in the middle; projects that bleed money and time, leading to heartache all around. Let's look at some of the common mistakes that people and companies make:
Customers start with the primary motivation that moving to open source will bring down costs. While this could be true in terms of licensing costs, it would be naive to think that free meals exist. If you decide to engage a development partner to help you, it is going to cost you; dearly or not is upto how well you understand the market and are able to make a convincing case.
Revenue models and cost
There are only so many ways in which a company that works with open source software can generate revenue. Developing a software solution that uses open source software is one of those ways and is spared the negative retrospection on account of the fact that it is clearly visible. A majority of Open Source service providers will charge for development by the hour. If you push the vendor too much to decrease the hourly rate you are probably pushing for an increase in the humber of hours, since there is a good chance that the vendor has already decided the final price. So, be fair. Take every quotation with a dash of salt, but you need to act in good faith too for at the end of the day you only get what you pay for.
Two revenue streams that tend to receive lesser attention are support and training. Any piece of software that is created requires after sales support, without exception. Here again, service providers usually charge by the hour. You need to independently estimate how much support your product requires rather than blindly accepting what the service provider tells you. In the medium to long term, of course, you would be better off building these capabilities within your organization. It is very important that the contract be framed clearly when it comes to support.
Training is another aspect that is often overlooked. Effective training in the use of open source software will help your organization adapt to change more easily.
You might want to consider innovative pricing models if you are willing to experiment. For example you could share profits from your business with your software service provider in return for services. However, these are models that require a greater degree of trust and confidence.
Your journey into Open Source Software is meant to be an enjoyable one. To avoid getting into an unhappy situation, here are a few proven ways of mitigating risks while moving to open source:
Start with a prototype and move in phases: Rather than jump head first into cold water, start by wetting your feet. Do not decide to move to open source when you are already stressed with tight deadlines or other compulsions; you could end up compounding your problems unless you have a really good software development partner.
Invest in training: When you move from one system to another, friction is bound to occur. You can minimize the uneasiness in your team by training them in the use of the new system right from the start
Build expertise in-house: You will want to decrease your dependence on service providers by developing expertise in-house to manage your projects. This will help you in rolling out enhancements and improvements with a shorter turn around time.
Entrench your organization within the open source movement: Benefits from open source software will not be fully productive unless your involvement is complete. Getting community support is one of the greatest advantages of being a part of the open source movement and the community will help you if you help it in turn.
The "Right" Open Source service provider
A good open source partner is one who is not just a user of software, but is one who understands and adheres to the philosophy behind open source software, or tries to do so genuinely. Companies that understand this philosophy tend to be those that take an active part in engaging with the open source community while also creating business opportunities and innovative revenue models which distribute gains.
Like any great idea, open source software has enabled a huge market for software services. In this market one will find an entire range of service providers, from the blatantly unscrupulous to the obviously benevolent. Your chances of landing an agency that suits your requirement and temperament are improved if you have heard of them through a common contact. However, more often than not, open source software service providers are found via the internet; and the very nature of the internet clouds the already murky world of software service providers. So, how does one evaluate potential open source software service vendors? Here are some simple measures you can take:
Do your research: Validate the things that a company ( or even individual) says about itself. For example, if a company says that it specializes in working on the Drupal CMS, find out if people from the company contribute code to the Drupal project and are active within the Drupal community in the position of experts.
Ask searching questions: Have at least two or three meetings with the people in the company before you commit to working with them – even better if you can meet them in person. Start casual conversations about the tools that the company professes to use and see how comfortable and passionate about them, the developers are.
Look at precedents: An advantage with web based applications is that one can learn quite a lot about an application without having to ask the people who created it. Use this to evaluate publicly available applications that have been created by the company. If you do not have the competence within your organization, you can hire a neutral auditor to come up with an evaluation which will be unbiased.
Check references: Ask the company if you can talk to their other customers, past or present to learn about their experiences in working with the company. Most companies that work with open source software would be more than glad to share these details with you.
Digging your feet in
While your choice to adopt open source software within your organization is commendable, your involvement does not need to stop there. Most organizations leave it to their development partners to manage the "open source" side of things believing that they cannot contribute in any way themselves. This need not be the case, You, the primary driver behind a project should aspire to be the one who motivates the software developer to undertake activities that help in promoting the cause. Some of the ways in which you can help are:
Insist on a software release plan that will ensure that code is contributed back to the community on a regular basis during the project's progress. Even better if you create your product in such a way that it can be released on an open source license in its entirety.
Consider contributing to the open source projects that are used in creating your product. Most projects accept funds that go towards developing and promoting the software. Some projects conduct events which you could sponsor.
Promote the software that you use by highlighting them in whatever way that is possible withinthe limits set by your business norms; For example, you could prominently place the logo of a contributing CMS software such as Drupal on your website if your site is indeed built using Drupal. Another example is to devote a page on your website that consolidates your experiences with Open Source Software.
Convince people in your network to move to open source!
Welcome to the world of Open Source Software and hope you have a fulfilling journey.