Ten tips to establish clear boundaries between application tiers
June 25, 2010
- Talk about the user stories. Who is the user? What must the system do to serve the user?
- Base the system design on user stories rather than system requirements.
- Specify the tests (even if only in non-functional pseudo-code) before writing corresponding system components.
- Identify the differences between public and internal system behavior.
- Specify the public API. What information goes into and the comes out of the system?
- Lock the public API. This becomes the data contract and service contract.
- Specify the internal API. What information must system components share?
- Lock the internal API (to a reasonable extent). This becomes the internal data contract and service contract.
- Validate the system against the data and service contracts.
- Build only what is necessary to satisfy the user stories at hand.