Database Forum / General DB Topics / General DB Topics / February 2005
User Defined Fields - HELP PLEASE!
|
|
Thread rating:  |
news.hp.com - 16 Feb 2005 15:05 GMT I've got a political (and technical question) I could use a hand with.
I developed (and maintain) an inventory system for a large company. It has over 150 regular users, one of which is bucking really hard for 5-10 "User Defined Fields". Read that as free-form text fields.
Can anyone here present a strong argument as to why doing this as a bad idea? Management, as usual, doesn't understand that allowing users to put any random data they want in these fields is bad in the long run.
It'd be nice if you can point me to reference material where this is spoken against (either online or in currently available publications). I need something concrete to take with me to a meeting this afternoon.
Thanks in advance!
Mike Sherrill - 16 Feb 2005 15:47 GMT >I've got a political (and technical question) I could use a hand with. > >I developed (and maintain) an inventory system for a large company. It has >over 150 regular users, one of which is bucking really hard for 5-10 "User >Defined Fields". Read that as free-form text fields. More likely as "free-form text fields with wildly varying semantics".
>Can anyone here present a strong argument as to why doing this as a bad >idea?
>Management, as usual, doesn't understand that allowing users to put >any random data they want in these fields is bad in the long run. Quite often, users will use such fields to sidestep table or application constraints. Whether the constraints are right is a different issue.
For example, the conceptual model might say "Every mechanical drawing has a date on which it was approved, and the earliest possible approval date for a mechanical drawing is '13-Oct-1953'." A user wants to use 05-Jul-1935. You'll probably find today's date in [Date_approved] (because that's a common application-level default), and something like "Actual date approved was 05-Jul-1935" in a free-form text column. This kind of practice renders both columns almost useless.
You really need to know *why* the users want to be able to record "anything at all", and apply a software engineering methodology to manage changes. You can download the latest version of the Capability Maturity Model from SEI (www.sei.org, I think.
It's a real ball of worms, but you need to be able to say "Here's a list of things this database has to do", and "Here's how your change screws up a, b, c, and d."
>It'd be nice if you can point me to reference material where this is spoken >against (either online or in currently available publications). I need >something concrete to take with me to a meeting this afternoon. Might be too late for that. Consider getting really sick and postponing the meeting. <g>
 Signature Mike Sherrill Information Management Systems
John - 16 Feb 2005 15:48 GMT > I've got a political (and technical question) I could use a hand with. > [quoted text clipped - 11 lines] > > Thanks in advance! If there is data which is relevant, and is too rich to be stored in your database "as is", then I am afraid that I would have to support the irritating user. You should come clean and say that this is not supported, but that you are happy to re-design the database should this requirement be sufficiently important.
I am sure you understand the best ways to model data, and it is VERY unlikely that this would be user defined fields.
I normally solve similar problems with the introduction with an attribute-value table (and some supporting tables) like this:
product_information(product_id int, attribute_id int, value varchar)
for each product you can then store any number of attribute-value pairs which will hold the extra information. You don't even need to touch your original table.
Incidentally, the reason that tacking 5-10 "fields" onto the "side" of a large table holding your products is a bad idea is normalisation. With N extra "fields" and L lines, you would start with NL null values. Google for normalisation to find out more.
John
Dawn M. Wolthuis - 16 Feb 2005 16:10 GMT > I've got a political (and technical question) I could use a hand with. > [quoted text clipped - 4 lines] > Can anyone here present a strong argument as to why doing this as a bad > idea? It is a bad idea to the same extent that having junk drawers in your kitchen is a bad idea. The system will not be able to assist users in keeping this data organized in a way that is useful to your company. It is more useful if you have a place for everything and everything in its place.
However, one junk drawer might be very helpful, provided everyone in the house knows it is a junk drawer and if they can get something useful out of it, that's great, but don't assume that anything in it is worthwhile. Having 5-10 types of items in this drawer is not so bad. In fact, I suspect that there are days when it would really expedite someone's work to have such flexibility.
> Management, as usual, doesn't understand that allowing users to put any > random data they want in these fields is bad in the long run. Sorry I can't be more help -- I'm on the side of those who are trying to improve their productivity in getting their job done while you are standing in their way. You might need to loosen up just a tad on this one? Of course there are others who would agree with you, as this opinion seems to crop up with those of certain personality types (Myers-Briggs of ISTJ or others?). Smiles & Best wishes. --dawn
> It'd be nice if you can point me to reference material where this is > spoken against (either online or in currently available publications). I > need something concrete to take with me to a meeting this afternoon. > > Thanks in advance! David Cressey - 16 Feb 2005 20:42 GMT > I've got a political (and technical question) I could use a hand with. Lotsa luck. Management generally wins this debate. They generally come back within a few months and ask why you can't compute the correlation coefficient of the free form data, and graph it over time.
Maybe you could tell them that, when they want to search this field, they'll have to buy a license from Google or Yahoo.
Again, lotsa luck!
Alan - 16 Feb 2005 21:14 GMT > I've got a political (and technical question) I could use a hand with. > [quoted text clipped - 11 lines] > > Thanks in advance! There are many excellent reasons to not do this, but you can't win the argument. You will just look like a naysayer. I've been able to delay this "feature", but I have rarely been able to keep it out completely. Anyway, here are some reasons:
The data is essentially unsearchable. This is the same as the data being lost. May as well not have it. Any search that can be done will likely be incomplete and innacurate.
The data will not be used by anyone other than those "in the know". This means that some employees will have one set of information, while another set will have other information. And that's only if there is consistency among those "in the know".
The data can NEVER be summarized. It cannot be used for analysis of the business in any way at all. Again, it is lost data. Despite this, management will ask you to report on it.
The data cannot be transformed. Example- special codes and abbreviations will stay that way. Need to show a customer this data? Hope they can read Martian. No lookup tables possible. No decoding the codes and abbreviations. besides, each user will enter it differently. Then there are spelling errors. The list goes on and on.
The data is almost useless in reports. Need to filter on something in one of these fields? Forget it. Sort on it? Ha! Again, the data is lost.
The only right way to do this is to find out what the users think they need to record in these fields, and then build a proper place for it. The most common reason users want this "feature" is that they want to work around the business rules.
Good luck- you will need it.
-CELKO- - 17 Feb 2005 15:07 GMT >> I developed (and maintain) an inventory system for a large company. It has over 150 regular users, one of which is bucking really hard for 5-10 "User Defined Fields". Read that as free-form text fields. <<
My rtechnical answer would be to see if you can get him to put the text in a document management system, which probably where it belongs.
But I will assume this is more politcal than technical, so let's look for sneaky, rotten, underhanded answers.
1) Email the 150 users and tell them to contact this guy with their suggestions. I have them form a committee or a team to investigate the problem.
"We trained hard, but it seemed that every time we were beginning to form into teams we would be reorganized. Later in life, I was to learn that we tend to meet any new situation by reorganizing. And, what a wonderful method it can be for creating the illusion of progress while producing confusion, inefficiency and demoralization."
Petronius Arbiter, on the Roman Army - 210 B.C.
2) Tell him that he has to fill out a Sarbanes-Oxley form for each field and have it validated by independent auditors.
3) Tell him it will have to be taken out of his budget and that you have to hire expensive outside consultants.
4) Make him write detailed specs, with validation and verification rules. With free-form text, this can be real fun! Do you want it to speak French, for Canadian users? Bulgarian?
Then a spec should include computations and summaries on the new columns. And how the fit into the data warehouse.
5) Give him a list of existing projects from people higher up in the organization that he wishes you to cancel to get right onto this one. Send a copy of the memo to the superiors for feedback.
6) "Delay is the deathly form of denial." -- C. N. Parkinson. If you don't understand that, I will expalin it ... later.
John - 17 Feb 2005 15:58 GMT > 6) "Delay is the deathly form of denial." -- C. N. Parkinson. If you > don't understand that, I will expalin it ... later. Nice quotation but ...
<pedantry> I think this should be: "Delay is the deadliest form of denial." </pedantry>
I only noticed this because it is a very relevant quotation for me at the moment and I wanted to find out more about it.
<details> This is referring to the tactic of simply deferring decisions until the requestor tires of the game and gives up. But it can also be applied to one simply refusing to accept or recognise a situation that demands action. We hear of people being "in denial". It simply means refusing to accept a situation. And any action is preceded by a decision, or ought to be. You can read in Exodus 8:9-10 where Pharaoh used the delay tactic with Moses.
Elijah got frustrated with the people of Israel because they would not make up their minds to follow God.
1 Kings 18:21
And Elijah came to all the people and said, How long will you falter between two opinions? If the Lord is God, follow Him; but if Baal, then follow him.
</details>
John
-CELKO- - 18 Feb 2005 18:41 GMT >> I only noticed this because it is a very relevant quotation for me at the moment and I wanted to find out more about it. <<
C. Northcote Parkinson is the guy who wrote PARKINSON'S LAW and several other books about the nature of bureaucracy. It is a minor classic, and quite funny. It might still be in print, but if not you can easily get a used copy.
Another good read is SYSTEMATICS, a small book on why and how systems fail. My favorite is "A fail-safe system fails by failing to fail safely."
And of coruse we need to have a wall poster from www.despair.com.
Mike Sherrill - 19 Feb 2005 11:27 GMT >Another good read is SYSTEMATICS, I think that's _Systemantics_.
 Signature Mike Sherrill Information Management Systems
Mark D Powell - 22 Feb 2005 15:12 GMT I will take a contrary view. If the user wants user defined columns then perhaps he or she should have them.
There are applications on the market that are built to allow the user to define their own columns along with the vendor provided columns. One such product is MAXIMO, which is primarily an equipment maintenance planning and tracking system.
The customer can via the product add user columns. The columns can be updated, used in calculations, and reported upon.
It is just a matter of proper design to allow and handle extensions to the base design. Now adding user columns does bring with it the potential that the customer will then attempt to use the system in ways it was not designed to handle. That is a drawback and an argument against adding the user columns.
But the most important argument against adding the user columns in that your application was not designed to handle user columns to begin with. To properly handle this functionality the application design has to include a dictionary that defines the user columns, have a means of allowing the customer to reference these columns, and to update these columns. That basically means the application needs its own reporting tool and screen generation tool. Or the columns are/were always part of the screen and just have null values until used. (Table driven screen labels).
But since your application was not designed from the start with these features adding user definable columns is not practical.
However, if what the customer really wants is to add a few additional columns that the original design did not consider then that is another issue rather than really being "user definable" columns. I would give the customer a fair hearing. You would probably want to start by providing him with a list of general rules for the columns that the customer is considering such as the need to relate to the PK of the tables in question, data type, and formatting.
PS - My mention of Maximo should not be taken as an endorcement. I strongly dislike several features of the product namely it requires a DBA priviled ID that allows the Maximo Administrator to define Oracle users, add indexes, and the application runs as the object owner.
HTH -- Mark D Powell --
DA Morgan - 22 Feb 2005 18:51 GMT > I will take a contrary view. If the user wants user defined columns > then perhaps he or she should have them. [quoted text clipped - 5 lines] > > HTH -- Mark D Powell -- I'll match your bid and raise you one.
Let the users choke.
Databases should be designed and built by professionals of which even our industry suffers too many fools. End users defining columns almost by definition means a lack of data integrity. It certainly means a lack of proper indexing, and MAXIMO is a horrifying mess generally implemented by large government agencies that know less about software than they do about balancing budgets.
 Signature Daniel A. Morgan University of Washington damorgan@x.washington.edu (replace 'x' with 'u' to respond)
Alan - 22 Feb 2005 19:49 GMT > > I will take a contrary view. If the user wants user defined columns > > then perhaps he or she should have them. [quoted text clipped - 16 lines] > implemented by large government agencies that know less about software > than they do about balancing budgets. I feel it is our responsibility, as DBAs, to, at minimum, warn against bad design. Sometimes it's a losing battle, but at least you tried.
Mark.Powell@eds.com - 25 Feb 2005 14:27 GMT Daniel, your opinion has been noted. I am tempted to quote your view of the product as outside business consultants have recommended using it for handling MRO material. Unfortunately I think it is too late to do any good.
I believe the traditional primary market for the product has been manufacturing companies that used it to track and plan equipment maintenance. GM uses the product fairly extensively. I think the expansion of the product into other areas has been done in the last few years.
-- Mark D Powell --
DA Morgan - 25 Feb 2005 15:54 GMT > Daniel, your opinion has been noted. I am tempted to quote your view > of the product as outside business consultants have recommended using [quoted text clipped - 8 lines] > > -- Mark D Powell -- I ran into MAXIMO with Seattle City Light ... Seattle Washington's city-owned Electric Utility. To say I was unimpressed would be an understatement. Though it should not be interpreted as an indication that any competitor is either better or worse as I didn't get a chance to evaluate them.
 Signature Daniel A. Morgan University of Washington damorgan@x.washington.edu (replace 'x' with 'u' to respond)
Eric Bohlman - 23 Feb 2005 18:59 GMT > I will take a contrary view. If the user wants user defined columns > then perhaps he or she should have them. But you have to distinguish between the (IMHO rather unlikely) case where the user *truly wants* them and fully understands the implications, and the (IMHO much more common) "XY problem" where the user has some (unexpressed) need to solve problem X and has jumped to the conclusion that a particular solution Y (in this case, user-defined columns) is the way to do it.
Since Parkinson's been brought up in this thread, I'll bring up Lawrence Peter of Peter Principle fame. He emphasized the importance of specifying a solution in terms of the problem it solves rather than the form it takes (writing in the 1970s, he said that your goal should not be to develop the best home movie camera by 2000, it should be to develop the best live-action recorder, predicting correctly that other technologies would supplant home movie cameras).
So in a situation like this the job of the DBA, programmer, architect, etc. is to dig in and discover what real need underlies the user request, and only then implement a solution. Or, to put it bluntly, look at the problem in business terms rather than technological ones. It's part of what I like to call the non-geeky aspects of IT (in fact, sometimes a proper analysis reveals that the best solution to the need is a non- technological one!). Merely pointing out the technical problems with Y won't do it, because the user will understand you as telling them that X can't be solved at all, which they will in fact know is incorrect (they're right that X can be solved, just wrong about how to solve it). The result will just be resistance and pressure, and since they're paying the bills, they'll prevail.
Dawn M. Wolthuis - 23 Feb 2005 19:21 GMT >> I will take a contrary view. If the user wants user defined columns >> then perhaps he or she should have them. [quoted text clipped - 5 lines] > that a particular solution Y (in this case, user-defined columns) is the > way to do it. That is not at all what I think of when hearing the term "XY problem". smiles. --dawn (an XX)
Alan - 23 Feb 2005 20:18 GMT > > I will take a contrary view. If the user wants user defined columns > > then perhaps he or she should have them. [quoted text clipped - 26 lines] > The result will just be resistance and pressure, and since they're paying > the bills, they'll prevail. I agree 1000% It's almost as if I wrote the above. I run into these problems all the time. Users come to me with problems expressed as solutions. I immediately ask them what the business problem is that they are trying to solve.
When people ask we what I do, I stopped telling them that I'm a Database Administrator. They don't know what that is anyway. I now tell them I'm a "Data Detective". They don't know what that is either, but the look on their faces is great. More of a "I'm a confused puppy" instead of "you must be a geek".
Mark.Powell@eds.com - 25 Feb 2005 14:20 GMT Eric, nice point. -- Mark --
|
|
|