Object model an application's business domain, business rules, and business services prior to development using "object think" principles.
The idea of central control goes against the rules of "object think"
The goal of objects, above all else, is to be composable
The goal of SAM is for applications to be composable
The goal of SAM developers is to transcend the formal process
SAM does not encourage formal development processes - it encourages aformal development
Implementing business domain objects should require as little knowledge of their internal workings as possible
Paper Prototyping and Semantic Net Diagrams are the most effective means for modeling and determining objects
Lifecycle development is an agile process but prior to development, first determine why build, what to build, and how to build
Domain expertise is the most valuable asset when developing an application
Programmers are artists and anthropologists - they employ anthropomorphism and creativity when performing their tasks
Prior to writing code or modeling the domain, gather requirements and obtain understanding of the domain from the client and other domain experts - the architect must understand the business domain as well as the experts who use it on a daily basis
After the initial requirements gathering, create use cases and stories, prototypes and wireframes... discuss these with the client and other domain experts. Only then can a developer hope to understand the domain
Get client sign-off on prototype(s) and wireframe(s) before development
Business objects do not display the UI
The presentation modules in an application are encapsulated and parameterized, and are capable of building whatever resources they need that were not passed
Maintenance and extensibility are the developers primary concern
Writing software is an art - developers that strive to create the best software possible will enlighten their manager(s) about the art and will help them to understand what environment is optimal for their creativity
SAM developers recognize that the idea of "right" and "best" are relative and that there is always room for improvement. They question all things and strive to improve themselves.
Place functionality as close as possible to the data that it requires to do its job.
Encapsulated objects with encapsulated APIs are building blocks upon which any application in any context, can be built with little effort