Brian Vraamark wrote:
> Paul Schmidt wrote:
>
>> Okay, suppose you decide not to do it, you just log into your
>> customers database, and make your changes, oh oh, something just
>> blew up in your face, your customer is now dead in the water, their
>> business can't function because it depends on your software, they now
>> have their employees sitting on their hands for a week, which you
>> try and put the pieces back together. The customer loses $150,000 in
>> wages and $4,000,000 in sales, not to mention that they will lose
>> part of their reputation and customer base. They are going to do
>> one thing, call their lawyer, unless your contract is as solid as a
>> concrete outhouse, they are going to come after you, looking for
>> compensation. How long can your business survive if you need to pay
>> $20,000,000 to an ex-customer when half an hour's work would have
>> prevented it.
>>
>> Paul
>
>
> 1) Not half an hour. Half an hour x 120. We hope to reach 300
> customers within the next 2 years.
>
> 2) We have insurrence. We pay BIG BUCKS for it. That dosen't mean that
> we LIKE corrupting databases, but mixing DML and DDL in Firebird is
> one of the reasons why we have insurrence (I am human, I make mistakes!).
>
> 3) Our customers is dentists. They are supposed to make teeth, not
> working as some super DBA. For years I have been told that
> Interbase/Firebird dosen't need a DBA? Are you saying that this is not
> true?
>
> In our product the dentist calls function A then function B. In your
> world the dentist can call function B then function A, resulting in
> crashing the system and we call it a feature. I would prefere an error
> message!
>
> You are right. I don't want an ex-customer when half an hour's work
> would have prevented it. BUT I DID NOT KNOW mixing DML and DDL would
> kill my database (I do now :-) ).
>
> I still think it is a BUG, but if the firebird developers says it is a
> feature, it is OK with me. They are making my business possible and I
> am only paying a small (not enough :-) ) amount through my membership.
Not quite, if you have a completely canned package, without
customization then you may be able to skip individual client testing,
but if you do a lot of customization so that there are differences
between one customer and another, then yeah you would need to do it for
each one. One thing you could look at is, using an intelligent
installer, the installer does a backup of the database, does a test
restore, checks the return codes, if they are okay, runs a regression
test, then if that works, it loads the new application onto the client
machine. If at any point, it finds something that isn't kosher, then
it gives up reports an error code, and leaves things as it found them.
You never specified what kind of project it was, so one must assume it's
a big custom monster.
Paul
|