Within the world of SOA, services are the building blocks and at the lowest level of the stack. They are the functional primitives of SOA. However, most enterprises are so focused on the architecture that the underlying services get very little attention. In order to create and maintain a healthy SOA, the process of designing, building, and testing services needs to improve. So, what are the best practices for services?
What's core to the problem is that we have a tendency to consider services as simple building blocks, something that will always be there, always using a good design, relevant patterns, and always in good operational condition. That's just not always the case. Indeed, services are the building blocks of SOA, and like building blocks of a house or a building, the quality will define the value of the finished product, in this case, the SOA implementation itself. Thus, spending time on what services do, how to define them, how to design them, and how to build them is a good investment in time, and something that's missing within many architectures.