CTO Articles

Home > News > CTO Articles

Published in IT World
February 28, 2007

In praise of parasites

Although I do suffer from circumlocution, today I feel in the mood for some straight talking. Calling a spade, a spade, cutting to the chase etc. etc. Oops, I seem to be regressing...best...to...blurt it out...

The Law of the Parasite: "As an enterprise IT application approaches mission criticality, the probability of it being a host to one or more parasitic Enterprise Applications approaches 1.0."

Now what does that mean? What am I talking about? Electronic fleas?

No, not fleas. I am talking about ad-hoc mini-applications that tend to organically grow on or in real applications over time. Here is how they come about. A big enterprise application is sketched out.During the design phase, all sensible designers will leave place-holders/gaps/hooks so that they can proceed to build something now but retain a fighting chance to handle requirements that come in after detailed implementation has commenced. At a minimum, the application framework will contain what are known as CRUD functions [1] for chunks of data. Simply put, facilities for creating, reading, updating and deleting "stuff" within the enterprise application environment.

Also, at a minimum, data structures will contain place holders for free format text so that users can jot down textual notes. In the early days, we used to call these things memo fields. Every database record structure would have one of these tacked on for ad-hoc note taking.

Now, combine those two things together (a) the ability to read/write/update/delete arbitrary stuff and (b) the ability to create free-format notes essentially anywhere within the enterprise application. This is the application equivalent of primordial soup. From this goo, little applications can spontaneously form and take on lives of their own. For some reason, HR systems are popular hosts for this sort of mini-application. I have seen HR applications host everything from mini-CRM applications to mini-Payroll systems through the clever utilization of free form memo fields and the CRUD functions of the core application.

This is not a new phenomenon of course but it does seem to me to be a growing one. A contributing factor here is the gradual but inexorable shift towards applications that carry around their own programming language interpreters at run-time i.e. their own scripting languages. In simple terms, these allow business logic to organically grow on top of the core application, thus adding dramatically to the scope of parasitic applications that can be built...

As I reach the end of this piece I'm increasingly unhappy with my use of the word 'parasite' to describe this phenomenon. It is such a pejorative phrase. The term is appropriate though. After all, the host application receives no benefit from the presence of these parasites. To describe the relationship as, say, synergistic, doesn't sound right...

However, a small change to one's point of view may help. Don't think of the host enterprise application as the home of the parasitic applications. Think of the organization that built the enterprise application as the true host. Looked at this way, the true host is simply being smart by creating environments that foster the creation of mini-applications for the benefit of the enterprise as a whole. Hmmm, maybe that is what Mother Nature was thinking all those years ago. Interesting...

[1] http://en.wikipedia.org/wiki/CRUD_(acronym)


seanmcgrath.blogspot.com