RE: [AM] Unfounded assertion

Paul Oldfield <[email protected]>
Newsgroups gmane.comp.programming.modeling.agile
Message-ID <[email protected]>
(responding to Dagna)

> Are both of these refactoring?
>
> 1. Split a field into two others (typically, Name into Forename
> and Surname.)

We're dealing with this in another thread.  Names are horrendously
complicated things, with different conventions in different
cultures, then individuals who deliberately try to flout the
conventions, etc., etc., etc.   In such an environment it may
be reasonable to expect people to put up with the oddities that
come out of the computer system.  If enough people
complain, we could devise a standard name format and
issue them at birth.  No, you're right, it will never happen.

The basic problem is that to split an existing name into
Forename/s and Surname, both parts must be there,
and we must know where one part starts and ends.  At
present, that information is not held in the database.
Thus while splitting the fields may be a standard
refactoring, dealing with the data is not.

> 2. The warehouse has an internal customer number, and looks
> up the original system customer id on a cross reference table.
> But every report we produce uses the original id (and a system
> id). So add the system of origin and the original id to the customer
> table on the warehouse.
>
> I wonder if 1 is a design change, and 2 is a refactoring (to save
> hammering the cross-reference table, which is narrow, very deep
> and used in every update and extract).

1. is new functionality, not merely a design change; and new
data to support that new functionality.  2. I would class as a
refactoring; the functionality is the same, but the performance
is improved over some of that functionality (probably at the cost
of performance elsewhere?).  Don't take that as gospel, that's
an opinion I may be persuaded to change.

> (BTW - jargon alert - if anyone wonders what I mean by 'narrow'
> and 'deep', 'narrow' is the width of a row, 'deep' is the number of
> rows - this type of table can be the Marianas Trench of your
> database.)

Thanks.

> But if the users want the name field split, don't waste time wondering
> what to call it - that time would be better spent explaining to the
> person who designed the database that they messed up and should
> have thought of this one, and then finding out that they did, but the
> contents of Name are in no clear format - surname + initials, forename
> + surname, initials + surname, all in one field in the source system
> (which isn't this one)... 

Whatever you do with names, there's going to be the odd few
that just don't fit your assumptions.  Your data is *always* going
to be slightly dirty.


Paul Oldfield

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
www.aptprocess.com

any opinions expressed herein are not necessarily those of
Mentors of Cally or the Appropriate Process Movement
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: [email protected]

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: [email protected]

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.