Tuesday, February 16, 2010

Commercial VS Open Source

The almighty question:
Go Open Source or buy Commercial software?


Of course, the answer is much more complicated than that. We will attempt in this post to define some of the factors that are playing a crucial role to this decision. However, we will mention only a few; we expect to get the rest from you as food for thought!


There are a few dimensions to be defined concerning software:
1. Security
2. Coding quality (bugs)
3. New Features/Upgrade circle
4. Support
5. Administration


The main focus of this post will be the area of telephony soft switches / call centers. 


Buying a call center nowadays can be a cost upwards of 250,000 €. The equivalent deployment cost of an open source solution is nil! Zero! Nada! Still, let’s provide an analysis of the factors to consider in both cases at hand.


Security: Security is a heavy-weight factor one has to take into account when making a software-related decision. This of course depends on the software available. In an example deployment scenario, we could have software that remains active behind a NAT/Firewall configuration, and as such could have less security implications on its own. In the call center case, the call center remains behind a NAT/Firewall configuration at all times, and as such the security implications are considered to be minimal.


Coding quality (bugs): I love this part. :-) Well, think about this: In a commercial software scenario, one can have a team of 100 people who are trying to perform thorough and analytical testing of the application in a corporate level, covering all scenarios applicable. This in principle is a good approach; however, let’s consider an Open Source call center such as asterisk.org: A project open to the community will have a potential of more than 10.000.000 people testing the software in real world scenario installations. When a bug is coming up, one can have thousands of people creating a patch very fast. On the other hand, the commercial software could also present bugs in its deployment, needing relatively much more time to patch them.


New Features/upgrade circle: This is also a very important factor in order to ensure the competitiveness of a company. This sector can be very complicated, involving a bug squashing circle first and foremost, followed by the developing circle (new features). The exact implementation may vary from project to project. In the majority of cases, personal experience has showed that Open Source projects are faster in developing circles and in bug squashing. Notable examples include: asterisk.org, kamailio.org, sip-router.org.


Support: This also constitutes a sensitive area. Support is defined by what one pays, and what one gets, in both cases. The difference here is solely the payment level(s). Usually an Open Source project is cheaper than a commercial project in terms of support funds needed.


Administration: In this area, commercial projects have a better chance to shine, since they offer better administrative interfaces. One doesn’t need a deep and thorough knowledge of what needs to be done. Effectively, following a wizard in GUI with “Next” buttons can do the trick. On the other side, the open source projects require a rather deep and analytical knowledge of the sector at hand in order for someone to run them successfully. Thus, the main difference here is the qualified staff aspect. In both cases someone will need to be paid, the question is whether this someone will be an external support company, or one’s own qualified staff.


There is a further, more complicated question to be asked: Should someone pay somebody else to innovate for them (in the commercial software case) OR take the responsibility and attempt to create innovation in a company internal level? Is that even possible?


The Open Innovation Team!
(Follow us also on Twitter)

5 comments:

  1. charis filippakopoulosFebruary 16, 2010 at 2:44 PM

    Alex,I think that major part in the selection of a solution is the company policy. Most of the companies prefer a more safer solution. What I mean with safer? A contract with an outsource tech department(especially in cases of big names) is safer than the qualified personnel. Ofcourse if you want flexibility and you want to try new things an open source solution is better choice.

    ReplyDelete
  2. I would go for the open source solution for sure. From what I have seen in my real life experience on the company that employs me, a proprietary(you refer this as commercial) solution might be risky. If you see that with a broader and more holistic approach to pay something between 100.000 an 150.000 just to start, for the machines, the software, the licensing and the next day replacement of "broken parts", you may leave a bit behind issues like training, administrative support and security management.
    This is what happened in our case...My supervisor preferred the disco solution over the asterisk one because he said that he feels more confident and that he wants to be in peace of mind.
    The truth is that as soon as somebody somehow hacked into our system and started making outbound calls to a destination with high rate, we had to pay extra something like 20.000 for the calls and 2.000 for a software that would analyze call-manager's logs for a better administration. In reality we learned nothing...
    For sure I would prefer to utilize that money to employ support in the form of employers or consultants that would build an asset for the company over an open source solution.
    At the end we could have created knowledge and a system that would be more flexible and scalable without the need to pay that much money.
    By the way... nice article Alex, I am waiting for more to come. : D

    p.s.
    I know that this is a long comment but I am getting more and more to be a fanatic supporter of open source solutions and sometimes I get carried away when speaking about that.

    ReplyDelete
  3. So this is a question of responsibility or technology?

    ReplyDelete
  4. Theophanis KontogiannisFebruary 22, 2010 at 12:10 PM

    There are more issues on deciding if your company should go with OS.

    That is the management cost that the switching to OS would incure to company operations.

    If the company is not OS ready (i.e. decisions are made in closed rooms, decision details are not communicated, there are closed comunication channels for anyone not within the company) then the OS culture can not and maybe will not propagate in the company.

    OS is something more then value mesurement. It has to do with management.

    No Open Management leads to no Open Source Culture.

    And one important detail. OS does not mean it is free. It just means that it is OPEN.

    ReplyDelete
  5. The issue is a bit more complicated. I believe that the truth is somewhere in the middle as everything in life.

    The decision of Open Source or Commercial is not as easy as black or white. Depending on the application, an Open Source may provide a better solution than a Commercial one or the opposite. As an example, I would definitely go for an Open Source mail server but I would use a Microsoft Windows and Microsoft Office suite (including mail client) for a secretary position. This has to do with the computer skills that are required for each. I will need a couple of sysadmins to maintain my system but the learning curve for having all people in a company to switch to an open source operating system and office suite is not worth the expense required for training.

    Open Source software is not always at a well developed stage. If for example you require a well developed application based on LDAP for internal reasons, Open Source is not a safe bet due to its stage of development. The most commonly used Open Source web server is apache and it implements virtual servers. There are solutions to maintain these virtual servers in a database or on an LDAP server. The LDAP support is not even close as the implementation of the database support concerning hosting. This issue does not concern many people and thus the development is slow and additionally being able to implement a solution on a database interface slows the development even further. On the other hand, a Commercial solution will provide a turn key solution which ought to be well tested and proven to work well (ie. Microsoft IIS which works with Active Directory).

    The above example is ideal to present the problem of bugs and security. Open Source has a huge advantage on well developed software since any issue that arises is handled by a community and at least a work around is found within a couple of hours from the time a problem is reaching public forums. This can't happen with commercial software because of the limited resources a company is allocating to specific functions as patching software. A company can't reach the community in solving a problem and thus, even for commercial problems a work around is given by the community, outside of support contracts, until a patch is developed.

    Concerning the ease of use, a commercial solution provides a complete platform that can be easily administered through documented (or by providing a training session) interfaces limiting the operators and administrators to the roles that the commercial software development team has decided. On the other hand, Open Source software in general tends to be more difficult to administer but offers greater flexibility in configuration.

    Some companies offer a product (their software) as open source and offer support contracts if required for someone to have support. The leader in this scheme is RedHat. RedHat offers an Enterprise grade linux servers including virtual computing platforms etc. as open source. These sources are taken from CentOS and provided as a binary distribution for free. RedHat goes a souple of steps further fully supporting their product by providing well paid services as support, training an certification programs.

    As a conclusion of the above, deciding on the way to go may differ according to the needs of the application that is to be deployed. Some basic questions that need to be considered are:
    - How much money to we have to spend on a project?
    - What are the available commercial and open source solutions and which is best fitting our application?
    - What is the cost of buying a turn-key solution or implementing a solution based on open source software?
    - What are the maintenance costs of each solution (support contract, training, personnel requirements vs more technically experienced administrators/operators)?


    NOTE: I assume that open source is referring to GPL or freeware software since there are software applications that are open source but require a license for commercial use.

    ReplyDelete