Re: The fable of DEMETRIUS, CONSTRAINTICUS, and AUTOMATICUS

From: Laconic2 <laconic2_at_comcast.net>
Date: Thu, 21 Oct 2004 12:16:02 -0400
Message-ID: <ep6dnaQJmbRRfercRVn-sA_at_comcast.com>


"Kenneth Downs" <firstinit.lastname_at_lastnameplusfam.net> wrote in message news:g7b8lc.79o.ln_at_mercury.downsfam.net...
> Laconic2 wrote:
>
> >
> > "No user serviceable parts inside. Refer all service to a qualified
> > technician."
> >
> > OK for a TV set. Not OK for a mission critical, enterprise wide data
> > container and integrator.
>
> I've snipped most of your post, but am attempting to respond to the whole
> thing.
>
> We'll call Ken the 3rd party vendor or vendor, Laconic2 the inside DBA or
> just dba, and then there is the user. Going back to the original question
> of how to enforce a constraint that may change, we have:

This going to be a long discussion.

One thing I want to do is find common ground with you, in the early stages of the discussion, where possible.

The first thing I want to discuss is the idea behind "system of record". This is very old fashioned terminology for a concept concerning data that appears in more than one file and/or database. What it says is that, in any dispute about the "correct value" of any data item, there is one system that is agreed to be the "system of record" for that data item.

So if the data item, "Zip Code for Aspen, Colorado" is stored in hundreds of files or databases, there is one that you can go to for "the authoritative answer". The only agent that can override the "System of record" is a person with suitable authority. If we don't agree on this, then we need to discuss it. If we agree here, we can discuss whether "metadata" or "DDL" should be the "system of record" for meta-state changes. It goes on from there, but I want to see whether we agree so far.

Second, can we agree that machines aren't responsible for anything? If a machine malfunctions, the question of "who is responsible" needs to be traced back to human agency. If we disagree here, we can discuss it. If we agree, we can talk about a gray zone, which is intstitutions made up of people. By this I mean, companies, corporations, governments, countries, schools, etc. Is the institution itself capable of "responsibility" or does the responsibility have to devolve on the constituent persons?

Once we gat all that out of the way, we can discuss what the responsibilities of the vendor, the dba, the programmer, and the user are.

Finally, and this deserves a topic of its own, who is the "user"? This is less obvious than it seems.

  >
> 1) 3rd party vendor issues DDL. Neither vendor(ken) or dba(laconic)
> like this, scratch it.
> 2) End-user makes change. Vendor claims this is cheaper than either
> vendor or dba doing it.
> 3) Dba does it.

The real question isn't who does it. The real question is, "who is responsible?"
(see above).

>
> Speaking entirely selfishly, if I think my code generator is so perfect,
and
> it puts the users totally in control, then I will slap a sign on the
> database that says, "No user serviceable parts inside". Now the dba is
> recommending against my product and I've lost a sale.
>

Unless no dba is necessary.

> So can I convince you that using the tool will actually give you more
> control over the database than you have now? You can do absolutely
> anything you want to the database. The only request is that you do not
> issue direct DDL, but that you give input to the builder and let it
> generate the DDL, so that it is managed. The big advantage of this
> approach to both you and me is that it makes us partners.

We aren't partners: we are client and vendor. Let's get that straight. I'm not a partner of Microsoft, of Oracle, of Sun, of IBM or of HP. I buy from them. They sell to me.

Sometimes your
> changes will be routine, but others may represent fundamental improvements
> to the system. The builder will export your changes and send them to us
> and we can then load them into a test system and learn from them. This is
> all painless and automatic because we are just handing data around.
>

What is the difference between data and code? (I think this has been discussed in here before) Received on Thu Oct 21 2004 - 18:16:02 CEST

Original text of this message