13 years, 8 months ago

Any Definition of an Application Will Do

bg outline
“What’s the definition of an application?” Many customers tell us that they struggle greatly with answering this simple question. They say it is the source of arguments, lenghthy discussions, and it takes time to get a consensus on the definition within the organization. We often great asked for guidance, so here it is:

Don’t ask for agreement on the definition! Just agree on one usable definition and move on.

Don’t try to come up with a definition of an application that will last for the ages and be enshrined in the textbooks. That’s almost impossible because any one of three of four definitions could be absolutely great – and whichever one you choose doesn’t matter. Now, clearly, you don’t want someone describing a software module as an application, or a technology as an application (think what that would do to your application counts). But solving this problem doesn’t require a long philosophical discussion nor does it require agreement on the definition.

All you need to do to get on with your EA project is to reach a common definition of an application that lets all your architects identify specific entities in a consistent manner. Remember, this does not mean that you must get 100% agreement on the definition! It only means that all involved must understand the definition for the purposes of the exercise. Asking for agreement is asking the wrong question and will turn your EA team into a philosophy department.

We like to think of this exercise as a variation on the “for purposes of this agreement” clause you see in many contracts and other legal documents

“For purposes of this EA repository the term ‘application’ means a small orange fruit commonly called an orange, which grows in sunny warm regions of the world like Florida and Spain. This term applies to any variety of orange including Satsumas, Clementine, and Tangerines. The term `application’ does not refer to an apple or grapefruit”

Of course, nobody on your team would agree on that definition of an application, but everyone would know what they were looking for – and you would get an accurate count of your oranges. Now let’s try it for an application:

“For purposes of this EA repository the term ‘application’ refers to the code that delivers a set of services to end users. It does not refer to infrastructure software such as databases, middleware, firewalls, load balancers, encryption or deduplication software.”

Again, this may or may not be a definition you can live with, but the point is to set a short time limit on the time you spend defining “application” (or any other entity). Devote more of your time to making sure you are explaining the definition as explicitly as you can, using pictures, examples or PowerPoint slides for illustration. Be sure to tell your team what is and what is not an application, how to name it, all the naming and categorization conventions you require and how to handle special cases. You could also show an example in context and call out what makes it different from other similar instances.

What’s your definition?