We're on a Role
Role [noun]: the function assumed or part played by a person or thing in a particular situation
~ (New Oxford Dictionary of English)
One of the issues that has exercised us recently in the Business Rules Group is clarifying what we mean by "role." One of the difficulties is that "role" is an over-used term.
Telling Things Apart
Probably the most frequently-used sense of "role" is in distinguishing different instances of the same kind of thing or concept when we state a fact or define a rule. This is often done by adding a qualifier (a role name) to a more generic name. For example:
- Departure airport and arrival airport of an airline flight
- Delivery location and billing location for an order
- Ordered product and substituted product in a delivery
Sometimes the more generic name is not used. For example:
- Driver and passenger in a car
- Origin and destination of a an airline flight
We can often recognize these as role names from everyday knowledge -- most English speakers know that "driver" and "passenger" are both people, that "origin" and "destination" are both places, and, for an airline flight, are both airports. But we can't always do so. On encountering the rule:
"The Evaluator must submit experimental results to the Assessor"
anyone who isn't familiar with the local vocabulary will have to look up the definition to find out whether the Assessor is a person within the organization, an external agency, a software suite or whatever.
Bringing Things Together
Another sense of "role" is where different kinds of thing or concept can play the same part in a fact or a rule. For example:
- The purchaser in a financial transaction can be a person or a company
- A unit of load on a helicopter flight can be a person or a package
- A billable worker can be an employee or a subcontractor
Seeing Things in Context
A third sense of "role" is where a thing or concept has capabilities that are relevant to different contexts. Here the thing or concept stands in its own right -- it isn't being distinguished from another of the same type, it doesn't (necessarily) share a common role with things or concepts of other kinds.
Ron Ross cited his umbrella as an example. Ron's umbrella could be:
- A shelter from the rain
- A sunshade
- A weapon (Ron used to be an "Avengers" fan)
- A fashion accessory, simply for decoration (a dapper chap, is Ron)
This led to the distinction between what a thing is, and what it can do or could be used for -- its essence as opposed to the role it plays (or could play) in a particular context. This seemed a straightforward distinction for tangible things -- we knew what an umbrella was.
Of the Essence
It got more difficult when we discussed less tangible things, such as, for example, capabilities of people. We checked the dictionary definition of "essence":
Essence [noun]: the intrinsic nature or indispensable quality of something, especially something abstract, which determines its character
~ (New Oxford Dictionary of English)
This was OK as a definition. It just seemed that when we looked at what appeared, at first glance, to be essential descriptions, most of them turned out to be roles. The "essence," as stated, was often a role just outside the boundary of the enterprise being described.
For example, think about a professional services company (law, accountancy, consultancy, or something similar). If we take the enterprise scope as being the services business, the "billable worker" is a role of "employee" (I'll ignore for a few paragraphs the possibility of using subcontractors.) The billable worker is an employee whose time can be sold to clients.
Now take two other "enterprises" within the same company -- Human Resources and Professional Training. There is a role of "employee" in HR -- he/she has a career, with salary each month, promotions, pay rises, paid vacations and sick time, etc. And there is a role of "employee" in Professional Training -- he/she goes through a series of professional courses, passes examinations, gets qualifications, has to repeat classes if he/she fails, etc.
But the essence of "employee" is not the same in all three enterprises. HR's concept of "employee" includes people who have left the company (we are responsible for pension and some other benefits for some time after they have left), and people who have accepted offers of employment but have not yet started work. While the three enterprises are seen as being separate, there should be no internal problems with their vocabularies, facts, and rules. Of course, there might be occasional misunderstandings when people from the different enterprises talk to each other.
Now, make them into a single community -- move the boundary so that all three are part of the same enterprise. The essence of "employee" becomes inconsistent. In some cases, this kind of issue can be handled by a filtering or subsetting view -- of all the people recognized by HR as employees, some are currently working for the company; of those, some are billable workers, and some of the billable workers are in the professional training programme. But this doesn't always work. Does Professional Training also run programmes for people who aren't billable workers, e.g., people in Accounts or HR?
When we have sorted out the vocabulary, we have to think about rules between roles in the widened enterprise. For example:
- A billable worker who has resigned and is working his/her notice must not be assigned to new projects for clients
- If a billable worker is in professional training, his/her project assignments must allow time for class attendance and private study
Such rules may have always been there, but handled informally when the three areas of activity were seen as separate enterprises. When they are a single enterprise the rules are handled coherently.
There is also the possibility of roles shared by different kinds of "essential concept." Suppose that the company uses subcontractors as billable workers. The "billable workers" role is the same for both subcontractors and employees, but subcontractors don't get salary, they submit invoices; they have to organize and pay for their own training.
Push the boundary out a bit further. We want to recognize that a subcontractor and an employee might be the same person, so that we can have rules to control the transition:
- A former employee cannot become a subcontractor until at least six months after leaving
- If a subcontractor has been working full-time for the company for two years, he/she must either become a permanent employee or stop working for the company for at least six months
"Employee" and "subcontractor" are roles. Is "person" the essential concept behind them? Not yet. The essence of "person who could be an employee or subcontractor" is "a person of legal working age, allowed to work in our location (e.g., is a citizen or has a work permit) and has the personal qualities we need (e.g., can speak the language of our clients)."
I could go on. We might recognize within our scope that subcontractors could work for other companies. Some of those companies might be clients. We might have a rule that a subcontractor cannot be assigned to a project where his employer is the client.
The point is that, wherever we draw the boundary on our scope, what we regard as the essence of some thing or concept for which we need to define a role is often (usually?) a more broadly defined role, just outside our boundary. And if we change the boundary, our view of the essence changes. This doesn't happen by accident or whim. It happens because people in the enterprise find it useful.
Just from experience, it seems that the kinds of thing for which this relativism occurs are (most frequently) people, organizations, and places. I've also encountered it, in a restricted form, for points in time. Some years ago I worked for a corporation that operated coast to coast in the continental USA. They wanted their information organized by calendar date and local clock time -- so we had 27-hour days, with some overlaps at the ends.
Is This Important?
This might seem an interesting topic for the pub, as a change from football or cars, but does it have any practical significance?
As it happens, yes. One of the characteristics of business in the recent past is that boundaries are changing frequently, and the trend is increasing. For example:
- Organizations combine, by merger and acquisition. The company that is a competitor now may next year be a subsidiary. You will have acquired their customer base. Is their concept of "customer" the same as yours? What about "prospect -- customer of a competitor who might be persuaded to switch to us"?
- Organizations collaborate closely. A company that was last year an external service provider is now integrated into your value chain. Your IT systems talk directly to each other. Do you both mean the same thing by "customer"?
- Organizations outsource. The company that delivers your products to your customers provides the same service for lots of other organizations. Is their concept of "customer" the same as yours? If it isn't, do all your staff affected by deliveries understand the differences?
- Organizations expand geographically. Local legislation and custom differs from place to place. Does "customer" in China or Latvia mean the same as it does in the USA?
- Products and services evolve. For example, cellphones are being used as a vehicle for micro-payments -- a customer can make a 'phone call' to a vending machine to buy a can of soft drink and the cost is added to his phone bill. The phone company might have customers who never make phone calls to other people. (They might, of course, want to find out if such customers have accounts with competitors, where they make their "real" calls.)
These are just the changes in your vocabulary. Will your rules still be valid? Remember -- the terms don't necessarily change; it's the definitions behind them that change.
Changes in role can also occur within your organization:
- Disintermediation. Some of your customers interact with automated components on your web servers rather than with people on your staff. This changes the role (within your organization) of 'Customer Service Representative.' The automated product handles the run-of-the-mill cases, and the person acts more like a supervisor, handling the exceptions and problems.
- Expert CRM support. Some organizations support their call centre staff with expert systems, guiding them through interactions with customers. The expert system acts as a mentor (or even a supervisor) for the person.
These will affect your workflow rules as well as your fundamental business rules.
So, What Should We Do?
When describing an enterprise and its rules, we ought to minimise the number of fundamental concept definitions. Much of our vocabulary should be defined in relative terms, especially for roles of people, organizations, and places.
When selecting tools to support the vocabulary, facts, and rules, we should look for good support for boundary change:
- Support for multiple levels of role definition. This should not be restricted to hierarchies ñ some roles can be shared by different types of thing.
- Analysis of impact on the vocabulary -- and the fact base and rule base -- of adding or removing levels of role
- Ease of moving fact and rule definitions between levels of role definition
- Impact on communities that use the vocabulary, when role definitions change.
What about the Business Rules Group? Our current work is concerned with:
- What is needed to in order to provide a common working vocabulary across the enterprise
- A framework (a set of metamodels, if you prefer) for capturing and organizing business rules that are defined with the vocabulary.
We still need to do some work on both.
# # #