The following is a short and almost certainly incomplete list of SOA best practices. Feel free to write your own in the margins.
Do your business architecture work first. Understand the major business processes and how they relate to each other. Map the business processes to the data and systems architectures. Use that knowledge to plan your SOA.
Start small: Build incrementally. Use the first project to build the component infrastructure for your SOA. Add to your SOA on an ad hoc basis, and document and share what you have learned from each SOA project.
When encapsulating existing legacy functionality, use the SOA.
Wire in what you have. Leverage the standards-based interoperability of the SOA to allow you to integrate your application infrastructure.
Architecture is as important to your Web services as to your SOA. Use architectural principles to set the contracts that your services offer to consumers. Get the grain the size of the service you expose in the contract correct. The contract should expose a relatively coarse-grained contract and fulfill the contract by aggregating several fine-grained components.
Think agile when building services. Make the creation of services an opportunity to increase the adaptability and efficiency of your organization.
Maximize reuse of components by making them small and cohesive.
Start building in your management tools early in your SOA effort. Do not allow yourself to get in the position of being forced to retrofit a management solution, at great cost to the business, when your SOA suddenly starts behaving poorly.