Monday, March 29, 2010

Attack of the TLAs

For those of you not in the know a TLA is a three letter abbreviation. You find a lot of TLAs in the computing world. Also TLA has a self referring characteristic in that it is itself a TLA. I assume that as much as anything else is why it doesn't stand of two letter abbreviation. Anyway this is my story of how TLAs can get out of hand.

In a previous life I worked as a Systems Engineer. Basically I configured applications in a work-flow and set everything up for each customer. Like any work-flow system we had input and output. The vast majority of our input came from a scanner as we were a document capture solution company. However every so often you came across customers that already had a solution to capture the images and wanted to use our system for further processing. As it would happen I was the System Engineer for the first customer that wanted to input XML into our system.

Now we had a worker called GenPickup (short for Generic Pickup) that basically had a framework for picking up files. It would search a directory for files with a certian extension and process them once they were found. It was generic because you could plug in different DLLs that would determine exactly how the picked up files where handled. These DLLs where called Pickup Modules or PUMs.

Before I go on with my story I need to give a little more background. In our work flow system we had a number of workers that did not require any interaction with a user. We called them background workers. And because they shared a lot of common functionality we had created a Background Worker Shell or BWS. The BWS handled things like loading configuration files, writing to log files, and communicating with the work-flow system. The behavior of the worker was determined by a DLL that was pluged in. These DLLs would have names like DoStuff_bws.dll. The "_bws" was added to the end to indicate that the DLL was a plug-in to the BWS. Eventually the GenPickup worker was rewritten to be a BWS DLL as well.

Now we are in need of a worker that will pickup xml. So I was assigned to work with a developer to create this worker. For reasons I will not go into here he decided to bypass creating a PUM for GenPickup and instead decided to create a BWS worker. Even so he decided that this was still a Pickup Module and named the DLL xml_pum_bws.dll.

Now if that isn't enough TLAs for you later after I switched to being a Developer I became the maintainer of the XML Pickup Worker. While looking through the code I noticed that he named a lot of classes with XPB as a prefix like XPBFile and XPBInfo. At first I was a little stumped as to what XPB was until I looked a the name of the DLL again Xml_Pum_Bws.dll. That's right he created a TLA of TLAs. And that ladies and gentlemen is TLA overload.

No comments:

Post a Comment