This document discusses best practices for migrating to a service-oriented architecture (SOA). It recommends embracing heterogeneity and complexity by abstracting across different software systems using standards like XML and web services. A successful SOA migration requires changing organizational structures and skills to focus on reusable services, incremental changes, and architectural best practices. Service contracts that separate interface from implementation are also key to enabling reuse and flexibility.