June 11, 2008

Code...Exciting and New

We're currently going through a RFP process for a replacement integrated system at work.

I've briefly spoken about our current system in the past. Our current integrated system isn't exactly the best piece of software on the face of the planet. I've spent most of the last year and a half cleaning the code up and trying to stabilize the base.

Our existing system does a lot of things like rely too much on session state, pass around ArrayLists of information instead of strongly-typed structures or objects, little to no code reuse, nineteen different ways of doing the same thing (often on the same page) and so forth. It's the code equivalent of Frankenstein's Monster.

I've managed to get the code to the point where it is manageable, but there are still times when I have to wade into sections of code that leave me feeling wounded afterwards. I may not care if code is beautiful, but when code is ugly, it hurts.

As we near our final choice for our new system, I find myself feeling a sense of relief and excitement. Relief in knowing that my days of wading through illegible code and being traumatized by side effects are relatively numbered, and excitement in knowing that we will be starting from essentially a blank slate. It will be a fun architectural challenge to build a properly extensible scaffold on top of the new system and integrate our business rules and user requirements into the new system.

Admittedly, we're looking at a 9-15 month implementation window, but the final destination is in sight: a codebase that won't leave me feeling unclean after working in it.

No comments: