Java Chatter and Random Nagging

Friday, November 03, 2006

Source Control WTF

The project I am currently working on (an accounting application for an international express/freight company) has an interesting configuration/release management. Although CVS is used, clearly not all of its features are considered useful in this project.

An illustration :

A few weeks ago, when taking a first look at the source code, I noticed that there were no code comments present at all. Since such lack of documentation is no exception in the 'enterprisey' world, I didn't get too suspicious. However only a few minutes later, I noted the following at the header of the .java file :

// Decompiled by DJ v3.6.6.79 Copyright 2004 Atanas Neshkov Date: 06/01/2006 14:46:08

Now, DJ is a a Java Decompiler (decompile java CLASS files and save it in text or other format) so its appearance in an internal software project was kind of a mystery to me. It did explain the missing code comments since compiled class files are stripped from all comments. However, the idea became disturbing when I noticed that every single .java file had a header like that.

When asking the lead developer about this DJ tool, he simply replied that around June they had to discard all fresh changes from the project. Back then, it seems that the best way to do this was by decompiling the class files of the current production release.

Apparently, the practice of branching wasn't considered useful...

P.S. : Branching would be the best option in this case. Less good, but still better than decompiling, was to just replace all files with their version at a certain time (CVS supports this out of the box).


Post a Comment

<< Home