Re: The fable of DEMETRIUS, CONSTRAINTICUS, and AUTOMATICUS

From: Kenneth Downs <firstinit.lastname_at_lastnameplusfam.net>
Date: Tue, 19 Oct 2004 18:43:37 -0400
Message-ID: <qa54lc.c2a.ln_at_mercury.downsfam.net>


Gene Wirchenko wrote:

>>>
>>> The complex rule is:
>>> An employee may only book time (via a timesheet_line) to a task on a
>>> project to which the employee is assigned on ts_date, and where the
>>> billable_flag on the emp_proj_assignment matches that of the task.
>>> (The trouble with complex rule examples is they are so, well, complex!)
>>
>>Well, as long as we are going by memory and experience, here is mine:
>>
>>(drumroll......)
>>
>>Constraints such as these are always abandoned in real life. A cowboy

>                                ^^^^^^
>      Prove it.

Once somebody asks me to "prove" a statement from personal experience, I can sense the thread coming to an end...

> 

>>manager grabs Employee X and says, "you work on this now, because a) we'll
>>make a bag of money quick or b) they'll sue us if we don't." The user
>>then
>>does the work. He then goes to the manager and says, "I can't enter my
>>time, what should I do?" The manager tells him how to enter some bogus
>>information so everyone can get back to work. If billing is affected,
>>somebody gets on the blower to IT and says, "Get that damn constraint out
>>of the system, I've got to enter billable time!!"
>>
>>If the IT guy is looking to retire, he'll reply, "Oh, I can't do that,
>>company policy is...." If he likes his job he'll say, "I'll put my best
>>guy on it right now."
> 
>      What is wrong with assigning the worker to the project, then
> entering his time?
> 
>      Can you answer the constraint question?
> 

I did. But I'll try again.

Once upon a time a naive programmer created an inventory system. In his desire to have correct data all of the time, he added a constraint that stocking levels could not go below zero. This was before RFIDs were implanted directly into people's heads (that's sarcasm there), so once in a great while people might take stock in and out of the warehouse without always accurately recording it. Sometimes it was theft, sometimes carelessness, but it really does not matter.

Then one day a customer walked up to a cash register with a radio in his hand. The clerk entered the UPC and then told the customer, "I'm sorry, you can't buy that radio because the computer says we don't have any."

Lesson to the wise: Always allow your transaction system (which includes time entry) to accept what a person is actually telling it they did. You can make it hard on them, but doing so will not always make your data correct, and will often lead to the opposite.

Thank you for an entertaining, educational, and edifying thread. I have gained some material here for my developer's guide.

Cheers!

-- 
Kenneth Downs
Use first initial plus last name at last name plus literal "fam.net" to
email me
Received on Wed Oct 20 2004 - 00:43:37 CEST

Original text of this message