One of the things I've been doing at work for the last twenty months is putting a constant stream of patches on an in-house member management system (MMS). The best way I can describe it is imagine living in a house made entirely out of paper towels. You spend a lot of time shoring up areas that have been stable in the past, you find tons of new leaks on a regular basis, and all in all it isn't an ideal situation.
That said, I have been able to make the best of things. I got a raise, promotion and an award from work for my work on the system to keep it afloat.
Fortunately we're getting ready to move over to a new MMS next year, however, and our new MMS is going to be 100% Visual Basic .NET, specifically Visual Basic 2008.
Now I've been working in C# for the last two years and making the shift from C# back to Visual Basic is causing a bit of a mental break, but in a good way. I find myself turning off most of the VB "helper" functionality and being more deliberate in my coding style. I'm finding that I'm making better code for the most part because of what I had to do in C#.
The sad thing is that there are still some issues with the new code as received. Just based on the security holes I found in my initial code review, I expect to be spending at least six to eight weeks sealing up some of these holes while we are doing our customization work, but I'd rather spend eight weeks doing it right than two years doing it piecemeal. Even so, I found eight SQL injection attacks in fifteen minutes...what the Hell?
After all, I like my job, but right now I have to be here. I'm pretty much the only one who knows the existing system inside and out and if I leave, the secession plan is pretty much to bring on a contractor, let him spend six weeks getting used to this system, and then proceed with what needs to be done.
My goal with this project is to get the system to the point where I don't have to be here. I want to be here because I want to be here.
It's a subtle difference, but extremely important to me.