- Software must be as easy to change as it is to use it.
- All layers, from the user interface through functionality to the data within, must support arbitrary recombination and reuse in new environments.
- Tools should strive to be easy to begin working with but still have lots of open-ended potential.
- People of all experience levels must be able to retain ownership and control.
- Recombined workflows and experiences must be freely sharable with others.
- Modifying a system should happen in the context of use, rather than through some separate development toolchain and skill set.