From: B
To: Editor
Date: 24 Oct 2004
Lately, I have been assaulted on a project by proponents of
the OO crowd; I am referring to Java developers specifically. Honestly, Fabian,
I sometimes wonder how you keep going.
I can be a somewhat formidable force, but when the entire organization
has embraced the thinking of a few short-sighted mental midgets, even I take
pause.
Although we have spent millions of dollars on DBMS software,
the Java Mafia has successfully convinced the leadership that all applications
must be "DBMS agnostic" (their choice of wording -- which ironically
reveals their zealous fervor). The Java
folks have their hammer,
and to them, the world is a nail. They see the world as screens to be
created. They have no idea that
something exists below the covers; they just want to get the data to populate
their screens as easily as possible -- for them. Everything that we paid for in
the DBMS (security, transaction control, concurrency, session management, data
access, to name a few) seems to be unworthy if it were not invented by them. They even created their own portal product.
They cannot see that a few developers are no match for a company that has
hundreds of developers dedicated to each area.
And when it comes time to fix a bug, or upgrade the system, we (as
taxpayers and the folks that need the data) are left holding the bag.
I am sure that with this lack of broad thinking, you can
imagine the battles I get in over database design. Just this week I had a team
furious with me. I created relations
for "pictures", "maps", "audio", videos",
etc. I related them to locations,
people, etc. They had wanted me to create a single "multimedia" table
for all "non-character-based" "files." They do not understand the concept of
"meaning." To them they are
just "files"; they told me to separate jpeg, mpeg, etc. I tried to explain that bit stream encoding
has nothing to do with what the bits mean, what they represent. There is no
question that they just want a file system with lookup tables to populate their
screens; they seem to only accept a DBMS for data access. No concept of guaranteeing the accuracy of a
query.
I once tried to justify my design decisions by showing the
table predicate, and explaining the meaning of the data; I will never do that
again.
Fabian Pascal Responds: It is, indeed, extremely
tough, for those with the proper knowledge and mental capacity (who are the
raison d’etre of this web site). Knowledge and reason have been going out of
style fast. I reiterate, however, that it is the logical conclusion for a
society and industry that do not properly educate their members and
teaches them how to think independently and critically, but rather socializes
them into conformity, and trains them for mechanical jobs. It would be a
miracle, under these circumstances, to expect anything else than what you are
experiencing. It's not the "Java Mafia"'s fault, but that of the system
that creates and supports such Mafias.
It is, indeed, a lost cause to use formal terms such as predicates.
You may want to use the informal terms business rules and integrity
constraints, but I very much doubt that’ll get you much further. Probably
the only way to have a chance at being effective in demonstrating the flaws in
their approach is to come up with concrete scenarios/examples pertinent to your
organization in which their approach would cause serious problems/costs. Put
those in writing, so that when the problems actually occur, you can pull them
out and say "I told you so". [But that may not make you popular
either. Ignorance and stupidity are a no-win game.)
Posted 12/03/04