Wednesday, August 29, 2007

Legacy System Programming: Bear Skins and Stone Knives

When I was growing up I learned BASIC. It was the first language I ever learned! I was writing on an 8088, a fantastic little computer that was older than I was. The first program I remember writing was a BASIC program that played Homeward Bound and Mellow Yellow out of the PC Speaker.

Since then I went onto college. I learned all about programming. I learned Java, C++, LISP, and a ton of others. I also taught myself C# and .Net. I also studied a lot about Object Oriented Programming. I learned all about the software life cycle. I was taught software development techniques, such as the Waterfall Model. I even taught myself a little bit about Agile Programming techniques.

Then I got a job. I now write code for a mainframe server that is running programs written in PL/1. Ever hear of PL/1? Yeah most people haven't. The system has an embedded scripting language, similar to BASIC. As such, I often times must deal with code that is more than a little archaic.

Some of this code I'm dealing with is older than me. It's built to system constraints that no longer exist. The code isn't commented, because at the time it was written space was too precious for comments. It's been patched and modified and patched again, for probably longer than I've been alive.

As such, it is my job to take this archaic software, and make it do things that the current era of computer users expect software to do. I teach that old dog new tricks.

My tools? A bear skin and a stone knife. That's what it feels like I have to work with. I'm expected to build things that can compete in today's industry with tools that are the stone tools of the computer age.

I always said I liked a challenge.

No comments: