Small Web Applications in Large Organizations
There is a market for small, targeted web applications in large organizations
Posted by 04/20/2006
To me this is an untapped 'market'. A market that is better served by Python or Ruby than it is by an over architecture of Java.
"The Customer is Last"
When I worked in fast-food I often heard the phrase "The Customer is first" - as some kind of inspirational message or instruction. The idea was, if the customer asked for something, if the customer complained, you had to do something about it immediately, because the customer is the top priority. Even if you know they are wrong.
The problem is the IT department for large organizations can become an immoveable mass. Supposedly the customer is still first, but it looks more like, "The Customer is first - after a) Architectural Review b) UML Diagrams c) Software Requirements Specification d) Software Design Document e) Software Architecture Specification d) Configuration Manager d) CMMI checklist e)... " you get the idea. It turns into "The Customer is Last". The customer couldn't care less about all this, and I have seen plenty of customers presented with 'Use Case' diagrams and I don't think this comes across well. For good reason. It's like "welcome to my out-of-touch-with-reality world".
One of the lessons of Ruby on Rails is that not all web applications are the same, and they do not all call for the same level of intense software engineering muscle flexing. A lot of practices were instituted with the idea of serving the customer, but they have strayed from that idea and taken on a life of their own. Now requirements come across as more 'given' then 'gathered'.
However, sometimes projects are in that weird middle ground between a page-based, purely functional approach (PHP, CFML, ASP) and the object-oriented world of Java. I think that's a good niche for Ruby on Rails.
What's wrong with PHP
What's wrong with PHP? I'm not totally sure. It feels like there are inefficiencies and maintenance problems with PHP. This is borne from my own actual experience with Asp, which is different, but strikes me as the same. I'd guess something bigger than 1,000-2,000 lines of code is the limit for me and PHP. Your mileage may vary.
I remember I wrote a monstrosity of an Asp application 5,6 years ago - god knows how many lines of code it was. It felt like it was going to die any day. And it was absolutely impossible to explain the labyrinth of code to anybody else.
When I rewrote it in Java, believe it or not, it was much, much easier to change, to deal with, to fathom - and it did a lot more - and it has lasted for years. It keeps running. I change it occasionally. Everyone switched to Firefox in the meantime, and it's still running (the Asp app only worked on IE).
So - the numbers: The Java version ran 35,000 SLOC. Then I massively refactored it down to 25,000 - mostly due to the arrival of ORMs, Xml persistence mechanisms and a better understanding of the problem. Now I'm rewriting it in Ruby on Rails and it's coming in at 3500. Granted, part of this is due to my brain wrapping itself around the problem so many times that each time I understand it a bit more comprehensively. I don't think that explains everything though.
What's the point
Okay, I've strayed from the original point. But it is related. 3 years ago I would not have offered to build Java web applications for other units at my organization because one was plenty. I know 40,000 SLOC is about all I want to deal with by myself at any one time. But now I can write 10 applications with the same amount of code. So I can serve 9 more customers. You can't tell me that is not significant. It could possibly open up a world of possiblities for organizations. Although the inherent elitism in IT departments could defeat that. More about that later.
Comments
Post a comment