Thursday, February 16, 2012

Respect the infrastructure teams

For some background on what is coming up, I work on project which involves various (often unrelated) teams plugging their components (pun unintended) into a central framework thereby resulting in one of the largest data access portals in my company. For over 4 years I have hammered away, doing my own stuff, worrying only about my own code and pretty much expecting the "framework" to do everything else seamlessly.

In such a scheme of things, the team tasked with maintaining and enhancing the framework are the bad guys - applying controls, managing approvals, adding/removing jars, and generally messing around with honest middle-class developers like me. Any issue outside of my code is always their problem - missing functionality, poor performance, lack of flexibility and what have you. Their design choices are poor, they use reflection with impunity, and are generally an ugly lot.

So for a little hobby project of mine, I decided to set-up something from scratch. A Java web-based web project, with the fairly standard jsp-Struts-Spring-Ibatis stack. As I mentioned before, I had never done this before but figured it must be easy enough.After all, the great and wise Mr. Hannibal has said - "What one man can do, another man can do." (-from "The Edge")

Bad call!  As you would have guessed by now, it wasn't long before I was drowning in jars and configs and a confetti of components that refused to get glued together. Let's start with the project structure. I had a general idea of my class hierarchies, but how to layout the structure, where goes the source and where the
binaries. Well, simplistic problem that got solved by copy pasting a sample Struts project.

And the jars!! Ah the jars! Sometimes they are missing, sometimes there are too many of them, sometimes they work only with certain version of other jars (which in turn are incompatible with other jars still), sometime they work only if you colour them red in Ecplise...But as before, my perseverance and awesomeness prevailed and everything (a dummy action class and jsp) started compiling.

I swear I am wiling to work for free for any company whose aim it is to rid the internet of outdated technology tutorials. There should be law against them. You read an authoritative sounding "how to..." article ,try to do it, fail, try again since you are convinced that you are the idiot, and then in some obscure comment on the tenth Google page or in some deeply buried change log (I had never read a single change log till about 2 months ago) find that it has been deprecated or drastically modified.

And I hadn't even written any REAL code yet !

Lesson learnt - When it comes to code, never believe you can do something till you have done it at least twice before. And respect the people who are doing it today.

All infrastructure teams I work with - I still hate a lot about what and how you do many thing, but accept this post as a token of my gratitude for doing the dirty work for a lot of us :)

EDIT: I just came across this excellent article by Ryan Tomayko which neatly sums up my frustrations with setting up a Java web stack.

No comments:

Post a Comment