Its been a while.
Life took a crazy turn for the worse since my previous entry, as my wedding with my fiance drew closer and closer we were thrown into what I call 'Wedding Overdrive'. But I digress, and will make a post about that another day :)
My writing urges come in dribs and drabs... For a certain time I simply wont blog, as I have nothing to blog about, and then there are other times (like right now) where things just flow into my mind. Whats worse is when they flow into my head at work and Im racing to make a quick note of what goes through my head (usually just the title of the entry, as hopefully I'll remember the gist of my entry when I get home), and send it off to my home email.
On friday I was looking into a pretty big enhancement of an area that you could say forms the backbone of the application. While I was peering into the abyss of said application I couldn't quite understand what I was looking at (understandable, given in the 3 years our company has worked on this contract we have only touched this area for minor enhancements).
And then it clicked.
My first expression and feeling was one of horror. Horror that an application could actually consider storing and moving data around this way. My second was a twisting in my gut, as I honestly dont know whether or not I should admire the author of this section of the application, or condemn him (or her!) to some sort of programmers hell.
A side note here, we ALL do horrible things in the course of our career (and I am certainly no angel!), and the point of doing these horrible things is to learn from it. I, myself, have looked back at sections I have worked on and just gone 'wtf Adam... seriously wtf'. But thankfully, I have people that point these things out and go 'wtf Adam... seriously wtf'.
I just find it hard to believe this made it past all sorts of rigourous QA and testing processes, and the thing that grinds my gears the most is the fact that in its stupidity, its actually quite elegant!
Yep, you read that right, elegant. I know this might (and does) seem like a contradiction here, but bear with me... Yes, the way this area works is extremely confusing (to the point where im writing doco at the moment to help those poor future devs who have to support this area), and by far one of the most confusing ways possible to do it, but when you see past the confusion... Wow (the good kind of wow). You can almost understand what was going through that poor, overworked developers head when he (or she!) was writing this. But, by gosh, there are faaaaar simpler ways of going about a simple process such as this, and now I (with the help of my TL) get to re-write it!
Dont think Im looking down on programmers that dont live up to my godly (cough, /heavy sarcasm) expectations, as this entry is more of a satyrical look at how the most simple things can be turned into horribly over-complex beasts that take the better part of a day (or longer), just to understand, let alone re-write. And how these people sometimes actually succeed (its been 'working' (for lack of a better term) for a good 5 years now, so obviously they did something right), at which point you almost have to admire the way in which they did such a stupid thing. Elegant Stupidity ftw.
Have a good one :)