Sunday, January 27, 2008

Open Source Obsession?

Since our new CIO came on board last January, there seems to a big movement towards Open Source tools.

While I have nothing against them, I've used various tools in the past; I just don't see what our obsession is with them.

Let's start with Ruby on Rails. An open source framework built on top of Ruby. It's used for web development. It's supposed to be a much more user intuitive language which makes it so easy. Fair enough. I'm always for something that will make my job easier. Our corporate website and provider portals were previously created on the dot net framework.

It was decided last year to replace our entire web infrastructure with Ruby on Rails. I'm still trying to figure out why. It's not that I am a pro-Microsoft guy, but the site worked. There were complaints about it missing this or that functionality, but that's fairly easy to remedy. As far as I know, dot net can support AJAX functionality (which I believe was at the heart of everything).

The demos of the new site were very cool (apparently we paid someone a lot of money to design the site...a LOT of money). It looked all web 2.0ey, big buttons, small text (which is a suprise given we are an HMO managing Medicare). It looked a lot like the 37signals applications in fact. I guess I've read Tom Kyte for far too long and his rant about putting business logic in the database because the front end will always change. Seems true. Java or dot net were all the rage a few years back, now it's Ruby, in a couple of years it will be something else (ApEx!) at which point we will have to rewrite the whole thing.

Next up, MySQL. It's a given that this database has come a long way. Version 5 even has stored procedures. It's a great free database that supports many websites out there. Free is good. Well, mostly free anyway, we do pay support costs right now. Almost every new project is built on top of MySQL. Why? I'm not sure other than free.

I asked the question to the CIO in one of our All-Hands meetings and his response was cost.

Fair enough, Oracle is expensive. The way we use Oracle is even more so. Each project seems to get it's own database. Why they don't get a schema on an existing database I don't quite understand. I've been told that it is a logistical nightmare to pull down a database that affects so many different applications. Each group wants their own version, etc., etc.

I can understand the Data Warehouse having their own database and perhaps our main appplication having it's own database; but every single application? Why not a one off database that houses all the smaller applications in different schemas? That's what Oracle was built for? Plus you can reuse code, reduce the number of instances (thus reducing the cost)...I just don't understand.

I believe my main complaint is that they are still just treating the database (whether Oracle or MySQL) like a bucket. Web people should not be writing SQL; Ruby people should not be writing SQL; just like I shouldn't be writing Ruby code. I don't know it.

I would be willing to bet that I could re-create many of our smaller applications in a much shorter period of time in Oracle and ApEx given the same requirements.

So I rant on. If I truly thought that this was an effort to make IT cheaper and more sustainable, I would be on board. I just don't see that that is the case...

6 comments:

DomBrooks said...

Most management decisions seem strange these days - made in a void of genuine expertise/skill/judgement or wanting to be seen to be strong and "being leaders" by making decisions without input from the specialists.

Whilst you're fighting the "everything must be open source" and "nothing must be in the database" battles, I'm battling to resist unnecessary complexity. For example, why, o why, would you want the complexity and overhead of a RAC platform for a non-OLTP database with a peak of 8 concurrent requests?

Tim... said...

This is becoming such a common issue these days. It gets especially annoying when small projects expand and all of a sudden they want their mySQL project running on Oracle. :)

I think over time this will come full circle. We've just got to keep plugging away and eventually they will hear what we are saying.

Good luck

Tim...

oraclenerd said...

@tim

That's part of my reasoning. Why not just use Oracle Express if cost is the actual reason, then it won't have to be rewritten; just easily ported to Standard or Enterprise Edition.

@dom
Oy, RAC for a non-oltp database? That sounds like fun.

Another thing that happened just last week. We need a reporting tool, our architect suggests Disco..."No, it's Oracle, we need Open Source." Just dismissed out of hand. Lovely.

Patrick Wolf said...

Sometimes tool decisions are very irrational in some companies, especially in the case if they have a working system but which isn't "hype/sexy" anymore. They want to go for a "state-of-the-art" tool/framework/... and recreate your application, but without any real additional business value.

Sometimes I have that feeling, that the industry/we is constantly doing that now for the last 7-8 years (Web/Java/.Net/Web-Services/Struts/Spring/SOA/...). Playing/changing the infrastructure but without creating any real additional business value... Wouldn't we actually focus on solving business needs???

Patrick

Patrick Wolf said...

Correction:

Shouldn't we actually focus on solving business needs???

oraclenerd said...

Absolutely!