Starting environment
Sorry for not writing in the last two weeks, a couple of needed but badly timed trainings, two emergency releases and two normal ones among a lot of different bugs and problems have kept me busy this last 20 days.
Ok, up till now I’ve been talking about me and my experience, it’s time I began talking about the starting point in my current role and the developing environment that existed. Basically, that can be described in one word: Inexistant.
The problem is that there were already more than 10 applications being developed, maintained and ran. All done by different contractors, some of them quite good, most of them with just a basic knowledge of what they were doing.
The company wasn’t much help with this. It’s focused in giving infrastructure services to a (much) bigger corporation, just recently created (like 4-5 years ago) whose main job is related to running servers and mainframes. For this company the software was a second thought and most of the apps running on those servers had been inherited from the other companies (“entities” in the local lingo) that formed the corporation.
What this means is a developer hell.
Most of the people working in that company are system or network administrators, these people don’t really use their computers, just use them to run a few local applications and to connect to the different servers, routers, switchs… The people that work with the mainframes do the same, so the basic spec for a “workstation” here is a P4 with 512MB of RAM. Try to run a local database, a local webspehere AS and your choice of Java IDE (among other tools and apps like the mail client, document editor…) and things can get really exasperating.
Then there are all the different policies. Basically, I have been the first “normal” employee (outside the reduced IT dept, I mean) to get local administration rights to his machine. Unfortunately it’s something basic if you have to be installing-uninstalling several development tools, attaching debuggers to running processes and things like that. Perhaps you don’t need them every time, but you need to have the option. In the case of the company chosen tools, it’s a must. The environment is heavily based on IBM tools (Websphere AS, Websphere Studio, DB2, MQSeries…) and to run the integrated Websphere AS in the Websphere Studio you absolutely need admin rights. A bug in the program? Something that can be fixed with specific permissions? Probably, but I haven’t had the time to play around with it enough and getting admin rights solves the problem.
This way of thinking is extended to the servers. Don’t get me wrong, I’m totally in favour of having strict security policies in the production servers. Even being an experienced developer (or perhaps because of that) you can easily break something so it’s better to only allow access when and where you need it. But how about the test machines? Does having to ask for permission to update an app in the test machine looks right to you? It is, after all, a test environment, it is meant to change quickly and to always have the last versions (developing versions) of everything. At least now it is automated, but still, it means that there’s no easy way to set up a continuous integration environment.
I must say at this point that, even if the environment is not the best and some policies seem tailored to hinder development, the managers usually keep an open mind and have actually been my best allies to make things easier for everyone. Just five minutes looking at my screen and I got 2 extra GB of RAM. One mail explaining what are admin rights and why I needed them and I got them the next day (and loose them the next week and had to start over with the mail until I got them permanently). Both changes have now been included in the standard needs for the java department and I hope that people in other departments (which are usually running through hoops to be able to do their job) will start asking for the things that they need.
Well, I think that this is enough for now. I’ll continue next week with this, but focused in the software side (and I’ll probably have a bit of a rant about contractors).
