[rspec-users] Cucumber Feature Scenario critique
lists at ruby-forum.com
Tue Feb 24 11:19:26 EST 2009
Andrew Premdas wrote:
> Client is not a good name for an emphemeral role. If you need adverbs
> and adjectives to clarify your verbs and nouns, then your verbs and nouns
> aren't good enough. I'm not convinced that Entity is a particularly good
> name either the fact that you need so many words to specify what it
> is = bad smell.
> Now if you use replace Entity with Client, then you have Clients who you
> represent. Each client has a history. The history consists of 'periods'
> when you represented them (haven't found a good word for that yet) 'term'
> might be reasonable but I'm sure there is some proper legal term perhaps
> related to contract. Anyhow use whatever resources you can and find single
> words if you can or hyphenated words if you really have to
> Seems I've gone on another 'rant'!
I do not mind. This is one of those "frank and useful exchange of
ideas" that I sometimes find myself in the office. There is always
value in reading an informed opinion.
My situation is somewhat perverse in that I am converting an existing
system that really does not need conversion. This system is now some 25
years old and it is still extensible and flexible enough to meet all of
the tax and trade regime changes of the past 20 years and foreseeable
future. We are forced to convert because of a business decision of the
The choice of terminology is a difficult one for us because in this
industry many terms in casual business use, like client, have specific
legal import and attached liabilities. The choice of entity was not an
easy one to make. It was chosen mainly because all the alternatives we
could think of were worse.
You see, the law has this concept of a "legal person", but not all that
have standing in the courts are legally "persons" (not exactly true,
there has to be one or more actual legal persons somewhere in the
background but the idea is close enough). There exist associations
(such as a partnership) that may conduct business, enter into contract,
and assume legal and financial responsibility for their actions without
themselves being a "legal person". This is an issue for us.
Further, in our industry, it is a commonplace that an entity have
multiple roles with respect to our firm. A transport company for
instance may, at the same time, be a "client", a "vendor" and a
"provider". Each of these roles possess specific legal and financial
attributes but, it is vitally important that the fact that these are all
the same legal entity be evident at all times. It is also critical that
any change of status in one role does not obscure the existence of any
As it turns out, this is one area our existing system does not do well
at all. We have separate clients and vendors there and we really have no
good way of tying them together for the same body. We have virtually no
way of systematically handling entities that have no financial
relationship with us. We cannot immediately tell if a current client
has been with us for 30 years continuously or was with us 30 years ago
and has recently returned.
A further complication is that we often deal with multiple incorporated
bodies of the same international firm. Each of these has legally
distinct attributes but are nonetheless a single "client" insofar as we
We have done the CRC thing, and we have had an awful lot (an AWFUL lot)
of discussion about the meaning of things. The idea of client as role
evolved out of a great deal of discussion on what a client really was
(any legally distinct body that issues, or causes to have issued on
their behalf, instructions to us, that we accept, and that acknowledges
a financial obligation to us thereby).
What this comes down to is a simple "service for fee" but, there are a
vast number of corner cases in international trade. There are whole
books written on just terms of sale. There are marine insurance issues.
There are government security and tax agency issues. There are
international banking and payment issues. There are consumer and
environmental safety issues. Instructions can be issued on behalf of
clients by trucking firms, ocean shipping lines, airlines, warehouses,
consolidators, government bodies (both foreign and domestic) and law
It is entirely possible for one of our clients to act as their own
"provider" (use of company vehicles for international transport).
Nonetheless, we owe a duty of care to our "client" to ensure that the
"provider" is properly instructed and authorized to conduct a movement.
A client may act as their own "supplier" as well (goods can be shipped
from one division to another of the same firm located in a different
country). A client may be the "producer" of the goods as well as the
"supplier", but a third-party logistics management company might be the
actual "shipper". These are legally distinct, but financially related,
roles assumed by a single entity or its agents. The distinctions are
important for us because, when we act for a client we act with power of
It is confusing. It is so because that is the business and regulatory
environment created by a myriad of government agencies, financial
practices, insurance regimes and transportation means.
And writing this stuff out helps sort out a lot of confusion, at least
Posted via http://www.ruby-forum.com/.
More information about the rspec-users