1. Make services extend to wherever the network goes.
2. Services should work well with others.
3. De-couple the creation and use of data.
Don’t just implement feature requests from “user representatives” or “business analysts.” The most common way to get usability wrong is to listen to what users say rather than actually watching what they do. Requirement specifications are always wrong.