Friday, August 10, 2007

What ails GNU/Linux deployments in the Enterprise

Date: 21-Aug-07

For the record, I am one of the founders of a small IT company providing GNU/Linux based solutions for small and medium sized enterprises. (Also a couple of huge enterprises.) We do almost exclusively GNU/Linux - Ruby On Rails (RoR), MySql, Postgres, JAVA/J2EE/Eclipse, Apache/Tomcat, JBoss and in some cases Oracle on GNU/Linux. We also undertake some short term system administration work when requested by existing clients.
We primarily work with Fedora and have recently started working with Suse and Ubuntu.
Before founding our startup we were employed in large IT services firms and have worked in India (Bangalore, Bombay, Gurgaon, Noida), USA(Bay Area), and UK.

This blog is a record of my entrepreneurship as well as thoughts on how GNU/Linux can be made more relevant to end users and how we have been successfully making a living almost exclusively with Free Software. I believe that there is a huge opportunity for entrepreneurship opened up by the Free software movement.
I will mention some real life case studies where we saved tens of thousands of dollars for our clients using free software and cases where free software couldn't compete with proprietary solutions even when the cost of the proprietary solution was 10-15 times more and ran into hundreds of thousands of dollars. We decided to build some free software components just because we were frustrated with the existing free software alternatives.
Most of my observations are based on our experience with deploying GNU/Linux in various non IT and IT enterprises. For some of these business, IT was essential, for others IT is not essential at all. For some, IT was their primary source of income.

We are and have been very actively evangilising GNU/Linux based solutions to our customer but after a couple of tough deployments, we have grudgingly come to accept that proprietary solutions provide excellent value in quite a few cases - even considering high cost. Now in our solutions, we do recommend proprietary components over free ones - especially MS-ADS. (Flame on.....)
When we evaluate solutions for a customer, we look at -
  1. 'What are the ones that work well for my customer and are they painless and risk free?'
  2. If that is satisfied, we look at - 'How much does it cost ---- cost vs. benefit + flexibility', 'How easy is it to maintain/upgrade etc - the much famed TCO.' 'HOW EASY IS IT TO GET THIS APPLICATION ADMINISTERED?' This is pretty important and I/we have seen quite a few deployments of GNU/Linux rolled back due to this factor alone. More on this as we go along.
  3. After that - 'How does it play in the ecosystem - interoperability'
  4. Then comes 'freedom' - Why does it come last? More often than not freedom is not even relevant. Freedom becomes relevant only at the level of data storage formats. Let me illustrate - If tomorrow MS-Exchange or MS-Word stored data in open formats, I wouldn't be too concerned about what the program did (unless the project was for Govt./defense/public security purpose). I will not even take a 'Joe User' example to illustrate this. I will take a 'Joe programmer' example. Why will an average coder be concerned whether his/her development editor is proprietary or free as long as its output is plain text format? Eg. - Notepad vs. Gvim. (Assuming Notepad is proprietary) Now extend this example to any computer user in any industry - say an assistant in a law firm, a manager in a corporation or a teacher in a primary school.
Freedom to tamper with the source code? - That is the last thing on the mind of any IT infrastructure manager in a small to mid level IT co. I will have to pay for customising the product in one way or the other - either to the s/w co., to in-house developers or contractors. In a short/medium term business perspective, it is pretty irrelevant to me.
(Of course this thinking may lead to monopoly and more bad things but assuming that I am a average IT/MIS head in a small/medium/huge corporation, the consideration that my vendor may be trying to monopolise will be the least of my worries if it works most of the time.)

The 'Freedom' concept applied to software becomes relevant only when formats are closed and in boundary conditions.

Contrary to popular opinion, I do not think that the server war has been almost won by GNU/Linux or that MS is having trouble selling servers to Enterprises. Linux is not even a threat in quite a few areas. Linux is appreciated in ISPs and Datacenters and as a host server for deployments of Oracle/Apache. It may be making progress but does not have some really essential pieces required by servers in an enterprise network. These features were there in Novell Netware almost a decade and half ago and some features started appearing in Windows servers since 2000.

The biggest advantage MS has in the enterprise is its Active Directory Server. It is really a boon for a understaffed IT/MIS department to manage hundreds of desktops and integrating a range of networked applications. LDAP fails terribly not because of any lack of features but because of the absolute absence of a excellent interface to manage it. There is a very urgent requirement for an free directory services with a half way decent UI which is tailored to the regular everyday requirements of sysadmins. The few php based ones I have seen are not good enough. The UI should try more and more to remove me from thinking about implementation details - like a good API. For a power administrator, we have the text configuration files anyway.
ADS is being leveraged to push the rest of its enterprise products.
The other big advantage MS has and is leveraging like crazy is MS-Sharepoint. To some extent Groove too.
If we can make excellent Free software products which can compete effectively against these two, I know we can hope to compete against MS productline as a whole. If there are no free software products to challenge ADS and Sharepoint, MS will always be the leader and Free software will always remain a good cost saving second choice for most applications.

In my opinion, Free software lacks a couple of very important aspects -
  1. Focussed interface of the community with end-users(a pretty decent job being done by Redhat, Ubuntu and hopefully by Suse) and genuine service where we are listening to the customers issues and solving them instead of just giving the customers the 'freedom to hack the source'. Most people will not have the resources, ability or inclination to handle source code.
  2. Eco-System of a chain of ISVs, service providers and trained people. Trained people is really the biggest bottleneck for free software adoption. Most of the other issues are being resolved and some have been resolved. Unless there is a very focussed attempt at churning out well trained 'free software deployment and administration personnel', free software uptake will be very slow and may be a sitting target while this is in being built up. I had an exchange of email with RMS back in 1998 but I was too young to take it up myself.
Relevancy to a user is NOT JUST about 'cost' and 'freedom'. Though 'cost' and 'freedom' are important, cost comes into the picture only AFTER the utility of the solution is demonstrated and it is comparibly simple to use. Freedom comes even later than that.

In the coming posts, I will explore what specific issues are essential to making a successful Linux based deployment in enterprises. We will look at (in my opinion) what pieces are missing, incomplete, under-leveraged.
What are the biggest strengths of current proprietary solutions(specifically Microsoft, Oracle, SAP).
What is needed for free software applications/solutions to provide clear value to users based solely on utility and technical merit without considering cost at all?
What are our plans at our firm for building those kind of solutions.

Next blog: The essential pieces of Enterprise IT infrastructure - Where current Free Software is very good and where Free software still doesn't make the grade.

No comments: