Lexicon of Bullshit IT Terminology
by Shaun Meredith
Leverage—Bullshit business term meaning "to use". Always used generically and never valuable since it
makes no specific claims. (What is leveraging what? How is it leveraged? By how much? Is this a good or a bad thing? Can we measure
the leveragedness of something?)
Best practices—Bullshit business term meaning "what we've collectively decided through trial and error happens
to work best in a certain situation". Always used generically, and never valuable since every single situation is completely
different. This also assumes that as soon as we define and codify these "practices," our staff will simply follow them
to the letter and everything will then magically work.
Long-term planning—Bullshit business term used to justify entertaining fantasy logic that doesn't and won't ever
apply to any real-world situation.
ROI (return on investment)—Bullshit business term which tries to rationalize purchase of a product or service based
on some impossible measurement of how much the company is benefited from using the product or service. Never valuable, in part
since the term "return" is never fully defined, and it's all just guesswork anyway—even if you define return as
revenue, there are probably thousands of factors leading to a company's revenue fluctuations.
Reusability—Bullshit term reflecting how much a company's upper management wishes to waste time trying to simplify
code based on complex real-life situations. There is nothing inherent about a piece of code that makes it reusable—any code can
technically be reused. This is a subjective measure that comes down to how the code is actually used in real-world scenarios.
Best in class (also best of breed)—Bullshit term meaning "of all the products/services of this type, here is
the best one." Again—too generic to be of any use. (Every product fits different needs—how can you even define a type,
much less decide which products fall exactly and only into that type? How do you define "good", "better",
"best"?)
Socialize—Bullshit business term meaning to share information. The real meaning behind this is to bring one's idea
into the light so that it may be hammered down with thrilling non-sequiturs and the sheer force of endless debate in meeting after
meeting until the original intent is completely obscured and lost to the wind.
Happy path—Bullshit technology term describing an impossible ideal situation that exists within the fantasy world
that architects live in.
Robust—Bullshit term describing a technology as somewhat more free than usual of possibly suffering errors or
failures. It only takes one test case to destroy the illusion of this supposed robustness, which is demonstrated in Microsoft's
products on a daily basis.
Enterprise—Bullshit term that refers to some superset of a company's separate departments. The superset is never fully defined,
and means a different thing to each user of the word, and at different hours of the day. Usually used as an adjective, as in
"enterprise application", "enterprise data", "enterprise standard", "enterprise-class
service", etc. Usage is designed to impart the same reverence as usage of the word "royal" in monarchist countries
(which is followed closely by a similar dictatorial tyranny and lack of understanding of everyday details).
Real-time—Bullshit term meaning something that occurs immediately, or while the user is waiting. Any request
necessarily entails some lag time before it is satisfied; thus, real-time must mean "a very short time". Again, the
exact amount of time that constitutes a request being satisfied in "real-time" is rarely fully defined, and thus the
term means absolutely nothing.
On-demand—Bullshit term meaning that a request can be satisfied whenever it is submitted. An easy way to think of
this is to consider the opposite; what system has as a requirement that requests be stored away and gotten to in "a little
while, when the time seems right?" Also, the phrase sounds a little too pretentious to be of good professional use—it
implies that a user is "demanding" something of the system—isn't that somewhat hostile for the daily workplace?
Data warehouse—Bullshit term used generally to refer to a database or data storage system that functions mainly to
service queries against data, such as reporting needs. This term is so overused as to mean practically nothing—even the original
coiners say there are no specific delineations as to what a data warehouse is. The original definition mentions a database
"structured so as to facilitate easy and quick querying of data." Depending on one's point of view, this term can be
applied to any database at all, and so only has true value in the important-sounding aspect it conveys to the user.
Industry standards—Bullshit term meaning widely embraced ways of operating, processing or naming things within a
given industry sector. If there were truly a standard, then it would be expected that all parties involved in the industry would
use it, to avoid confusion; this is not, however, the case. Even a single individual may have a hard time keeping his operating,
processing or naming tasks consistent from day to day, let alone an entire industry.
Flexibility—Bullshit term usually pertaining to written programs or computer systems. Implies that management wants
not only the speed of execution they expect within the budget they expect, but also a product or service that can easily and
magically "morph" over time to adapt to new, unthought-of situations. In reality the rule of thumb is, the more flexible
a system, the more complex, slower and less maintainable it is, which also slows down project development. In fact, once a
system passes a certain level of flexibility, it will no longer fit within any possible projected timeframe and will incur more
processing time than it would take to do the work manually.
Footprint—Bullshit term meaning the impact of the software on the given hardware, or how many resources it consumes
while running. Generally used as one of the measures in capacity planning. There are so many other possible measures and
combinations of factors that could be considered as to render the result of such capacity planning utterly useless. It has been
estimated that a very well written program would have a small footprint; however, this experiment has never been successfully
performed due to the fact that there is never enough time to do it right.
Tightly coupled and loosely coupled—Bullshit terms related to how dependent parts of a system are upon each other. A tightly
coupled system is one in which the components depend heavily on one another. Ostensibly, a loosely coupled system would allow for
one component of a system to be "unplugged" and another component "plugged in". This is pure fantasy in the
real world, where business logic necessarily has cross-dependencies (if there weren't, the components would never have been
engineered to communicate with each other in the first place). There are no definitive measures for how "tight" or
"loose" components are with each other—no component "tightness" scales exist.
Integration—Bullshit term conveying the action of trying to enable multiple systems that were never built to
communicate with each other, to communicate with each other. Usually done as an afterthought to the original systems, and usually
done via extra "connector" components between systems. Also usually an exercise in futility, as the amount of work to
accurately create the connectors and maintain them over time far exceeds the amount of work to redesign the entire system from
scratch.
Rich set of ...—Bullshit term used to describe the sheer volume of available APIs shipped with a software product.
The term "rich" is used nowhere else in IT, except when it comes to hawking a product; nor is it particularly helpful as
an adjective in this case, since although a set of APIs may seem complete from one viewpoint, it may fall horribly short from
another, and often does. Also, sheer volume of APIs rarely satisfy when the one API that is needed is conspicuously missing from
the pack.
e-Business—Bullshit term describing a methodology of conducting business using computer technology, generally from a
web-based interface. Presumably, the "e" stands for "electronic", so the full term would read
"electronic-business". A way to give what is usually a buggy, error-prone and limited way of conducting business an
inordinately grandiose name.
Architecture—Bullshit term describing the overall design methodology of a particular system. Borrowed from true
building architecture, in order to give the IT discipline a more respected air. The bounds of possibility are so limitless in this
field, and the results of it so vague, that practically any proposed methodology can become adopted, whether it is beneficial or
not. Architects are not held to the same standards as developers, in that there is no way to prove that their system, if
implemented to the letter, will not work. They are not liable for the actual implementation, which greatly relieves any pressure
upon them. Finally, they are allowed complete freedom in design, free of nuisances such as evaluations, actual test results,
proofs of concept, or real-world experience.
Dynamic—Bullshit term describing the ability of a system to determine a course of action while a program is running
(or "on-the-fly"), instead of being hardcoded for a particular course of action at design time. No measure exists for
how "dynamic" a system is, but it is well known that the more dynamic code that is put into a system, the less
performant it will be, the more difficult to maintain because of convoluted logic spread across lines of code, and the more complicated it will
become. IT is full of these trade-offs, which are practically never apparent in the "gee-whiz" terminology that
accompanies them.
Core competencies—Bullshit term which tries to list the supposed embodiment of the main skills possessed by members
of an IT staff or company. Usually focused on the wrong ideals, which are defined so broadly as to be completely open to
interpretation anyway. There is also the fact that the word 'competent' is almost laughable when applied to any IT staff, given the
quality of most software products these days.
Decision support system—Bullshit term that usually describes a query-processing or "data warehouse"-based system. The
actual data stored usually has no bearing on the particular decisions being made, since the business line and IT resources are
rarely in sync with each other (particularly since, when a decision needs to be made, it may take another year or two to design
and implement the data warehousing solution, by which time the decision has already been made and summarily forgotten).
Mission statement—Bullshit term which tries to encapsulate, in one sentence or paragraph, the purpose of the company
or department as a whole. This is pure marketing drivel and has no connection to the actual day-to-day workings of the company;
even if it did, it is of too high a level to be of any good use to anybody. This usually doesn't deter management from forcing
this wording down the throat of all employees and occasionally challenging them to regurgitate it verbatim for no apparent reason
other than to justify their questionable existence.
Framework—Bullshit term that describes a sort of pre-made container or template structure for coding that is used to
ease the complexity of a design and/or programming task. Causes problems since, by the time development is halfway through coding
requirements (if there are any), it is realized that the framework is the wrong one and too limiting, although by this time it is
too late to change the framework used. All coding time thereafter is multiplied by several factors and becomes focused on
"tricking" the framework into doing something it was never designed for.
Next-generation—Bullshit term that describes a piece of code or IT technology that is expected to revolutionize any
future IT projects. Only useful as a source of hope before the new software is actually available, since once that happens all
fantasy is dispelled and the reality that it is just as complex, error-prone, buggy, hard to maintain, and expensive as its
predecessors becomes apparent.
Change management—Bullshit term that describes an entire IT sector devoted to trying to control how development
changes are assessed, applied and the resulting fallout is dealt with. Contrary to best intentions, most of IT usually becomes
focused on this activity, since once a true change management process is enacted it increases the workload by at least 500% due to
the extra time spent documenting every painfully minute detail, and leaving absolutely no time left over to actually read or
understand the documents generated by other teams involved in the project.
Risk management—Bullshit term which gives a name to the dubious process of identifying and attempting to mitigate
perceived risks associated with an IT project. Usually rendered inconsequential in the end by a final executive order to "get
this to work at all costs." In this respect, it is viewed more as an exercise than as a true IT discipline.
CRM (customer relationship management)—Bullshit term which describes a process, technology or set of services that
relate to interfacing with customers. Used as a broad term to carve out a new niche for software products and consultant work
which otherwise could never be marketed. This is a true example of the many IT terms "invented" by IT entrepreneurs to
bilk companies out of their hard-earned money in new and creative ways.
FTE (full time employee)—Bullshit term which indicates the quantity of "one individual working 40 hours per week" as an
abstract concept. Because it is abstract, this quantity may be arbitrarily divided into fractions and tossed around with other
numbers with ease, unlike the actual living, breathing people it represents. Usually used as a measure when staffing up for a
project, or when justifying staff size. These numbers never take into account the particular strengths or abilities of the
individuals or teams involved, and reduce all employees into nothing more than a digital representation on a chart which is
usually fitted out with many vibrant colors, impressive-looking graphics and "wow"-inducing statistics.
Fault-tolerant—Bullshit term describing the ability of a system to survive unexpected problems without causing undue
stress. It is generally understood that the more effort that is spent in designing a system to handle a certain type of error
practically guarantees that some other sort of error will crop up in a production situation. Companies rarely "tolerate"
situations in which their data becomes hosed or their web application goes haywire (even though the CPUs may have remained up for
several consecutive months), and for which they always try to determine who is at fault.
Platform and environment—Bullshit terms that can be used to describe practically any high-level grouping of IT
resources. A platform (or environment) can be one or many pieces of hardware, one or many pieces of software, or some combination
of these. The main characteristic of these terms is that their usage never denotes specifically which type of grouping is implied,
and are usually used in jargon-speak to generate a sort of uncomfortable confusion in the listener.
"pre-production" vs. "post-production" vs. "integration" development environments—Bullshit
IT terms that mean absolutely nothing and only serve to further confuse things and generate endless debate at already
confusing meetings. Always need to be followed by a complete and lengthy explanation, which is always slightly different, whenever
they are used. (In this sense, they are good for changing the topic at boring meetings.)
Interface—Bullshit term used to describe a defined process of communication between two entities in an IT system.
Usually used in the sense of a "contract" between two elements that is to be followed for proper information passing. In
most real-world systems the amount of interface processing occurring usually far surpasses the actual work going on, so that the
vast majority of processing time is devoured by managing these interfaces. Interface usage is also compounded as more layers are
added to a system, which eventually guarantees that a given IT staff will have a viable source of income for the rest of their
natural lives. Note that over time, as information is passed between many systems, the original connotation of certain data
elements can become irrevocably lost (which in most cases presents no problems, since most data elements are never given a good
definition to begin with).
Middleware—Bullshit term which attempts to give a name to software that is used primarily for communicating between
"front-end" and "back-end" systems, such as an application server. This is another ingenious device used by IT
to increase the complexity and division of labor in their favor. The idea is that the more types of software that can be given a
widely acceptable name, the more work that will continuously be available to them and their kind.
Virtualization—Bullshit term that describes the process of taking concrete, real-world entities and processes and
turning them into symbolic digital representations for further electronic processing. This is the beginning of a process that will
eventually render most well-understood concepts of today strangely incomprehensible and inaccessible to the average layperson,
which is the utopian ideal for IT workers.
Enhanced—Bullshit term that is used to describe a new product as compared to a previous release. Usually the areas
of "enhancement" that a software company focuses on are ones that users neither care for, ask for nor desire, while the
features that they have grown to rely on are either downgraded in their functionality or dropped entirely. This is usually
rationalized with the assertion that "users don't know what they want, so it is our job to show them."
Copyright © Shaun Meredith 2005
|