The document discusses characteristics of good service contracts for distributed systems. It outlines goals for contract design including technology agnosticism, abstraction, reusability, and maintainability. It also discusses XML service guidelines, evaluating example contracts, security policies, and test-driven development approaches for contracts. Key aspects of good contracts identified are having no implementation technology exposed, contract-first design, intuitive naming, qualified elements, accommodating interoperability issues, namespace versioning, consistency with the data model, and decoupling non-functional aspects.