What is a service?
|Large fleas have lesser fleas,|
|Upon their backs to bite 'em,|
|Lesser ones have lesser ones,|
|And so on, ad infinitum.|
The Adaptive Service Model (ASM), produced by the Taking Service Forward initiative (TSF) does an excellent job, resting, as it does, on the shoulders of many others who have worked to define services before. It shows how a service interacts with resources, service suppliers and providers, and the other essentials to deliver value. The site is takingserviceforward.org, and the latest diagram is:
The ASM Meta_Model
The difficulty is how to define the service itself. There are many different sorts of service, and they all must be served (if you excuse the term) by the definition. For example:
- Accounting services
- Architectural services
- Building services
- Car services
- Catering services
- Cleaning services
- Clinical services
- Currency conversion services
- Dealing services
- Delivery services
- Electronic services
- Financial services
- Insurance services
- Laundry services
- Legal services
- Manufacturing services
- Pathology services
- Personal services
- Police services
- Prison services
- Rental services
- Room service,
- Technical services
- Technical services
- Wreck recovery services
..And many more. How is it possible to have a definition that encompasses all these, without it being horribly complicated with lots of exclusions or possible alternatives?
There are other requirements of the definition, including:
Not confusing 'service' with process, activity or procedure Not getting involved in trying to distinguish 'produce' & 'service' Making it, if possible, easy to understand and remember
What about using a recursive definition?
It has been done before. For example:
|Gnu: Gnu is not Unix|
|Recursion : See Recursion|
There's a problem with these two, they go on, like the fleas, ad infinitum.
Mathematicians and programmers have known a solution to this for some time – mathematicians call it 'induction', rather than recursion, but it's the same thing. The solution, is to have an end-stop. Like this:
Calculate N! – that is N x (N-1) x (N-2) x …. x 1 [ 6! = 6 x 5 x 4 x 3 x 2 x 1 = 720
A recursive solution could be:
Function factor(N) returns an integer
if N > 1 then N * factor(N-1)
" If you called the function like this:
Then the answer would be 720.
Definition of a service:
The Adaptive Service Model describes the context within which a service exists. The service is either: An Atomic Service (or quantum service)
A service that is supported by other services that contribute to it delivering value.
Definition of an 'Atomic/quantum service':
An Atomic/quantum service is a service at the lowest level of useful description for the circumstances.
The picture below shows the breakdown of a service into its component services. It only goes down one of the trees to the bottom (and there could be services below that), to give the idea. Usually it would be silly to go below the e-mail service for most purposes, but it's useful to see that you can go as far as you want, if it is useful for a particular purpose.