If you’ve read the title of this post and thought I left IBM you are wrong. I am still with IBM and I still do think that WebSphere is the best enterprise software on the market. In this post I would like to describe my recent experience building cloud based application and voice an idea how IBM (or any other vendor for that matter) could deepen its market penetration by providing free licenses and perhaps even free PaaS for certain classes of customers and applications.
Before I describe my idea, let me share some background with you and explain how I came to this conclusion, which I am sure is not new and many of you reading this probably have thought about this yourself. You see, I recently had to build a cloud based application for use by triathletes in USA. This was a hobby non-profit project for me. I have built an “ESB” to integrate two websites to allow for automatic synchronization of data between those websites. I have also made this project open source and you can find it on GitHub. If you are interested in more details about the project, here is an article: “Tri-Replicator – free app on google app engine”.
Before I started design and coding, I looked around for any PaaS where I could host this application for free. What I needed was Java runtime, access to the database, access to the REST APIs, SOAP-HTTP, encryption, SSL, scheduling and few other things. As you can imagine, classic JEE server or ESB would have fit this profile nicely. I was looking around trying to find free hosting for WebSphere runtime environment, or free hosted WebSphere Message Broker environment. Since my project was non-commercial, I did not want to pay any money for monthly hosting fees or licenses (despite my 25% IBM employee discount). Plus this project needs to be up and running every winter – from December until early March (read article above if you want to know why). Hence 90 day limited trial on the IBM Smart Cloud would not fit my bill as it wont work next year (unless I create fake user ID and apply for another 90 day trial). Amazon EC2 does not give anything for free – I would have to pay for machine time. Other hosting providers do not provide free IaaS or PaaS for Java.
Why did I NOT use WebSphere for my project?
After searching inside and outside of IBM, I could not find any way for me to implement my app on WebSphere App Server or Message Broker and have it hosted somewhere for free. That is when I thought about the Google App Engine. You can roughly call GAE an PaaS, plus they give you up to 5 million requests per month for free with no time limits. GAE gave me everything I needed for free: Eclipse plugin, Java runtime, JPA (DataNucleus based), JCE, Servlet API, GWT, and ability to add any custom libraries to my web app (for which I added HTMLUnit, Jersey and a couple of others).
After having completed development and deployment of this little application, I can say that GAE is not as bad as I expected it to be initially. However I estimate that I had to spend about twice as much time messing with all the different Open Source libraries when building this app, compared to what I could have done with WebSphere. Did I finally manage to complete the development and make it work? Yes. Could I cut my development time in half if I used WebSphere? Yes. Does Google App Engine provide a reliable hosting platform? No – it does have downtime and glitches every once in awhile. I would not use it for production apps. But for my purposes it works fine. Bottom line – I have saved on the hosting costs (does not get better than $0), but I have spent quite a few extra hours coding around bugs and issues in DataNucleus JPA, Google Web Toolkit, etc. I would not run my business on this stuff. Neither do some of my friends who are working for startups and tried to make use of GAE. But that is not the point of my discussion.
The lesson that I learned and I want IBM to learn from this, is that because there is such thing as free limited use PaaS (provided by Google or somebody else) there is a great deal of “seeding the market” going on. Why is this important? Well, think of all the thousands of non-commercial projects or products being built every day. Think about thousands of small startups building their first apps. Think about small shops who do not have the budget to pay for carrier-grade WebSphere middleware. Think about all those students and consultants who are kicking technology tires. Once they use certain platform for their first applications, guess what would they use when they “grow up” and start working for enterprise companies? Or those small shops and startups start making real revenues and become ready to pay real money for software? Well, chances are they will use what they know. But if IBM does not make WebSphere (or other IBM software) available as a free PaaS to those small shops, they wont organically grow into IBM customers when they are no longer small.
Same goes for plain old on-premises software. Why not allow free use of any and all IBM software for on-premise use for transaction volumes under a certain limit? Or for companies whose revenue is smaller than say $10 Million USD (or pick whatever number you like). Those companies today are starting their software projects with Open Source or other freeware. And the main reason is the “cheap” or “free” cost of software. There will be no IBM revenue loss if we (IBM) provided those licenses for free to those small companies. On the up side they will be well positioned to become real paying customers if and when they are successful.
I hope IBM executives read this post and consider this idea to expand the market share of IBM software, to increase the number of people with IBM software skills on the market and to make it easier for those folks to build and run their apps, so they wont have to spend twice as much time with Open Source, like I did for my project.
In USA, once you have a new baby, hospital gives you plenty of free stuff in a “goodies bag”. Moms come home from hospital and start using that free stuff. After few days they need to go to the store to buy more. Guess what do they buy? (For those of you interested, my wife and I did not use the same brand of stuff for any of our three kids, but I think this is an exception, not a rule).