The HitchDev framework is committed to the following principles:
- Automated consistent dev and test environment setup - there should be fewer than 5 steps to get the average dev or test environment set up.
- Executable specifications should define behavior only and test the software only as a side effect.
- The specifications should be terse and strongly typed.
- The framework should enable the project to be tested against as realistic a model of the real world as possible.
- There should be strict separation of concerns between descriptive executable stories and the the execution engine used to actually execute them.
- The execution engine should set up a realistic, isolated environment that runs the code and interacts with it, keeping a clean separation between "mock real world" and "code under test".
- Documentation should be generated from specifications and specifications should explain themselves clearly in order to generate better documentation.
- Where possible the specification should be rewritable based upon the output of the program.