In this post, I’ll establish exactly what’s the difference between a service (SOA parlance) and a function. Just joking, no, I won’t. I participated in an animated discussion today about the topic, and the discussion just went on and on. The participants were very bright people, and everyone was right in some way. We just couldn’t move the discussion forward! (Although some progress was made; I admit that.)
So at first, I thought that I’d better write a post to settle the issue. But soon, I realized that then I’d just take my part in the “I know best” game, so I simply skip that, and attack the more abstract problem of how such a problem should be addressed. That is, if you have a disagreement about a concept, and everyone is talking about it from different positions of understanding, and with different levels of abstraction in their understanding, and varying confidence in themselves, how would you settle the discussion with everyone reasonably satisfied?
I’m afraid I don’t have a complete solution to that, so I’ll try to outline some ingredients.
- Try to make everyone listen and understand the others’ points of view.
- Try to make everyone understand the structure of the others’ model of the concept.
- Try to see what differs between those views, and those structures.
- Then argue in a structured way using that knowledge, for example, argue on compatible levels of abstraction, and on compatible scenarios.