Saturday, October 13, 2007

Badly Run Projects

Only the government would let all work stop on a project before it was completed because the contract end date came up and nobody bothered to extend it. That's exactly what happened to the project I was working on, and I had an entire week to bum around the house doing nothing in particular.

That ended a few days ago when I was assigned to help with some finishing up work on another project. Luckily, all I was expected to do was write some missing HTML help pages - the actual code work is mostly done.

I say "luckily" because I'd normally be slightly annoyed at doing web pages instead of Java coding, which is really what I do. Not in this case, though, because the way the project is being run I'm actually glad I'm not part of the core development effort.

Allow me to explain that.

The way we worked on the previous project was like this: I'd make my code changes or write new code, then I could test it in isolation by running it on a Tomcat server installed on my own machine - that way if my code broke something it didn't affect anyone else. Once I was happy with the way my code was working I would commit my changes to the Subversion repository, and the Cruise Control software running there would build the complete system and deploy it to the development server once an hour. That way the development system had an up-to-date version of the system containing the most recent code from all the developers, never more than an hour old.

The project I'm working on now isn't set up that way. We don't have local Tomcat servers, so we can't test code locally. When code changes are committed to the repository, someone has to kick off the build and deployment process manually. In fact I have no idea how the developers do their testing - they must either upload their changes manually to the development system, in which case they risk conflicts (what happens if two developers make different changes to the same code, then one uploads his changes overwriting the changes made by the other?) or they must be committing untested code changes to the repository. Either way is very, very bad.

That's the main thing that's a problem for me. There are some other niggling points, such as that they're using Java 1.4 when they could (and should, in my opinion) be using at least version 5, and that they use CVS instead of Subversion for source control. These are minor, insignificant points compared to the major problems I've already mentioned.

As I already said, I'm just adding new HTML help pages so I'm not directly affected. But there have been hints that I may be expected to make code changes too, sometime in the near future. If that happens I'll have to talk to the developers to find out how they get round the limitations and work without wrecking each others' code. I may need to have a long, hard talk with the Project Manager. Apparently there was some disagreement about the above-mentioned work process when the project was started; in my view the PM shouldn't have been given the option to do it his own way, because it adds unnecessary risks.

At least for now, my work is complete - there were nine missing pages to be created and I did five while another developer took care of the rest. I'll probably have to do some tidy-up once they've been reviewed, but this coming week could be another slow one.

Labels:

0 Comments:

Post a Comment

<< Home