1. A development machine is a collection of compilers (curren build environments) that allow to compile source into some form of non-standard output. 2. Outputs are not necessarily packages used as part of the build system. If this is needed, build a wrapper. 3. All build environments should be isolated from each other, to be able to work on multiple projects.