|
|
This book is about alternative philosophies
that supposedly inform systems development (SD),
and specifically data analysis (DA).
Four paradigms are caricatured, at excessive length:
by contrast with the functionalist, or old fashioned developer,
the radical structuralist will strengthen the position of the working class;
the social relativist will merely travel in hope
it is not so much the result of SD that is important but the way it is achieved;
and the neo-humanist will work towards a state of justice, freedom,
and material well-being for all.
(This approach is, alas, still somewhat hypothetical.)
If SD really is informed by
what is related in this very philosophical book and its more than 500 references,
then the whole subject has got wildly out of hand.
And so it has: but why?
Firstly, it can be difficult to define system requirements;
and if they are either misunderstood or changed, the system may be useless.
So we try to clarify them, perhaps by discussion with a group of users;
and then all sorts of interesting things may happen:
conflicts emerge and are resolved;
people change their minds, or even the way they use certain words.
Would it not be more rational to study all these fascinating inter-personal phenomena,
rather than mere technical solutions to business problems?
More rational perhaps, but so much less like SD.
However, the discipline of SD (i.e. of Information Systems)
is nowadays being stretched to take in this sociology
as well as the boring old job of developing systems.
Secondly,
there is a long tradition that a system, and specifically its data,
is a model of the world.
Consequently, to do DA requires one to state what the world is like,
e.g. it comprises entities associated by relationships.
And that What is the world like?
is a big, hard philosophical question.
But, to give them their due, the authors see the solution to this problem:
Data modeling focuses primarily on linguistic phenomena.
They look this insight boldly in the face, and pass on;
but let us consider it:
each record in a database may be construed as a proposition (a true or false sentence).
So a record type (a relation in Codd's theory)
is an open sentence (such as a predicate),
completable by the addition of the values in a record.
That removes from DA the problems of how language relates to the world,
and what the world is like.
We merely input, manipulate, and output the users choice of propositions,
and leave the interpretation to them.
Thus, for instance, we do not need to say (like the caricatured functionalist)
that the world contains objective entities called vacancies.
We keep as records of vacancies what the user says about vacancies
(whatever they are, and in whatever world).
All that philosophy metaphysics and epistemology is then optional.
Logic is important, however,
although the authors miss this point.
It would not matter if we merely input and output records.
But we also manipulate them, to give views.
Assume that a user inserts only true sentences in the database:
now it must not be possible to generate a view that contains false sentences.
And this can be assured only by a deductive logic,
the inserted records serving as axioms,
and records in views as derived theorems.
This need for a logic raises quite enough philosophical problems in itself
for any SD theoretician.
(Some of the philosophies described in the book hold language to be
so malleable and ductile that if the customer espoused them
we would have to disable all data manipulation, but that is easy enough.)
|
|
|
What a lot of the books problems this simple move solves!
For instance, if the database is to record a speech act,
say a promise,
then its records can be construed as propositions that a certain person has made such-and-such promise.
And the authors almost see it: we compare the construction of a data model to
the building of a limited theory of its application domain.
But they miss the implication:
a theory is a coherent written account of the domain,
but not a model of (isomorphic to) the domain, for the early Wittgenstein was wrong.
So as long as we can represent what the users want to say (their theory),
we can forget what they are talking about and save a lot of lost mileage,
including most of this rather pretentious book.
There may, of course, be other ways of getting the discipline of SD down to a manageable size;
but, for sure, it really cannot be allowed to encompass life, the universe,
and every third-rate philosophy (for the later Wittgenstein was even wronger).
|