I am sometimes really angry about the way our community makes life hard for themselves. We seem unable to agree on a common terminology. Take SOA for example. I think everybody knows that it is really hard to give a concrete definition of SOA. But I think the community agrees that SOA has to do with things such as
- large systems
- loose coupling
- contracts (i.e. more than interface signatures)
- organization of enterprises
If I then hear a talk about OSGi where the presenter suggests that OSGi an SOA platform than I really feel fooled! Yes, in OSGi there's the concept of a service. It's basically a Java interface, with pluggable implementations. But none of the SOA characteristics mentioned above fits in, except maybe for the loose coupling.
Although I understand that everybody wants a share of the SOA hype, I think it would be useful to agree on some terms, at least on the level of the characteristics above, and then not explicitly mess everything up by calling everything an SOA.
Our community and profession is really far away from anything "engineering", if we can't even agree on certain fundamental terms and then stick to it!