Friday, May 31, 2013

Ghosts in the Machine

Having found the stories left behind by programmers past, I'm more than a little intimidated.

(I guess I'm abandoning my silly post titling scheme in favor of pop culture references and puns now; seems like a good decision)

For the uninitiated, I've been at my new job for roughly a month. The work can be summed up as "web app development for a state institution." I've enjoyed it so far, but then I've only really had to work with one application, and while it was bigger than anything I'd worked on before, I had thorough documentation and a lack of deadlines to help me along.

Now, I've been introduced to a new system, much more complex and critical to the management of other applications. In hopes of understanding it better, I started digging through the poorly-organized documentation. While it was mostly user guides and production updates, something unusual jumped out at me. The file name bore the phrase "Nightmare Issues.doc". It was over 4 years old and had no stated author. Of course, I had to take a look. What I found was like something out of a campfire horror story, albeit written for kids going to a computer camp.

The following are some key excerpts (with names changed to protect the innocent). Sit back and enjoy. From the producers of the Blair Witch Project comes...

The Application of Horror

I'm the only person working on the application right now... I'm not a seasoned JAVA programmer.  A project of this size truly needs a programmer with Core JAVA certifications... not a Systems Administrator with very limited JAVA experience and a penchant for using a sledgehammer to kill an ant.
This application is larger and more complex than some of the other applications that have 2 or more full time programmers working on it.
I originally wanted this application in-house so we would know the app well and be able to support it.  It grew way out of proportion and was developed by someone who is NOT in-house, so we are stuck in the same boat – NO staff people that understand the app.
Although Jeff is a good programmer and knows his stuff, the core parts of this project... are even beyond his understanding.  Even he thinks that he'd need a lot more one-on-one training with Veronica, and a few months of time with the code before he could modify these parts with any certainty that what he did was correct and didn't break anything else.
Kelly ... her internship for the semester is up and when asked if she wanted to come back for the summer her response was similar to "I would like to come back, but not if I have to work on [the application of horror]".  Even when she is here (which is rare these last few weeks) she has a very difficult time understanding and implementing simple tasks in the code. Yesterday and today I had to just bite the bullet and write the code for what I asked her to start working on 3 weeks ago which turned out to be less than 10 lines of actual code.
The sheer number of applications that want/need to be added to [the application of horror] is significantly more than even Jan anticipated.
The list of enhancements for the system contain things that are considered complex even for Veronica (she's the one who came up with the complexity), and even though nobody is knocking down my door to get them done, they are things that will need to be done at some point, and I can't do 98% of the additions.
[The database application] is huge and complicated, and I've recently realized that I don't know much about it, or how it works.  This is bad because it is one of the core pieces to [the application of horror's] back-end.
Testing any changes that I am able to actually make is the last hurdle that I've come across.  There are so many different possibilities for accounts that need to be tested for all of the applications that are in the system... and each application has its own specific user base - some with special rules based on the selected roll.  Nobody (except maybe Veronica) - not even the application developers (and I'd guess the customers) - knows how to test all possible values.
There are probably a few more points, but the gist of it is that this project is much bigger than we anticipated, and with me being the only person really working on it, it is too much.  Asking "how much longer" or "can you do this" less isn't going to help because the underlying problem - I don't know what I'm doing - still exists.

Horrifying, isn't it? That's certainly how I felt today, especially after looking at the actual code. There are so many variables, and so many libraries and dependencies to keep track of, just getting it to run at all on my machine proved to be a big challenge.

Thankfully, I don't live in a programmer's nightmare. There are people with more experience now who can give me some guidance, and while I have little hope of truly understanding this behemoth of an app right now, that's never stopped me from working on something before. This is why we have test servers; the real data will be safe in the event that I blow something up.

Anyway, I just wanted to share that spine-chilling find. I wish I could give the author credit but they didn't sign their name, and the file itself gives no real clues. Perhaps it will become a cult horror tale, told and retold by developers everywhere, each adding their own unique perspective so the legend may grow.

That's all for tonight. Peace and love, readership.

No comments:

Post a Comment