Friday, January 18, 2008

Software Electricians and The Art of Wiring

A friend is working on a web application that uses Seam and Hibernate/JPA. Many POJOs with many annotations. The project has a sophisticated build process involving CruiseControl, JBoss, and Selenium.

Recently, he made this interesting comment:

It's weird that the build XML is much more complicated than the application.

The business logic is non-trivial yet straight-forward. He went on to say that, aside from writing unit tests, much of the work is annotating the POJOs and working with configurations.

To wit, his team employs Software Electricians: they spend most of their time on the wiring, debugging the annotations.

ps. Yes, I'm using "wiring" rather loosely here. It is most often associated with XML configuration; I'm expanding it to include extra-syntacticular logic (i.e. outside of Java syntax).


Matt Doar said...

Yup, I make my living with build systems (and version control and bug trackers), and I have a sense that
build code is usually 1%-3% of the line count of a project. Unexpectedly, I find that the release/installer code is often a similar amount of code.

Michael Easter said...

Thanks for the comment, Matt...

I should point out that I used an idiosyncracy of my colleague, which may have misrepresented the sentiment.

By, "it's weird", he meant a new world. Not necessarily a bad thing. In fact it is a testament to annotations that the app is less complex than the build. However, depending on your point of view, debugging annotations and configuration is a different skillset/vibe than debugging straight-up code.

Since this post, I sat with another colleague on the same project. He was using an Eclipse plugin to generate Hibernate-persistent POJOs from an existing DB schema. The use of the schematic and the UML diagram was the genesis for the thought of generalizing "wiring".