Principles
Principles are idea-generators for coming up with new Techniques. If we're in a situation where our known techniques don't apply, we can use principles to invent new techniques that are suited to that context.
Examples of principles in this book
Each principle prompts you to ask a different "how might we" question. "How might we take smaller steps?" "How might we get feedback faster?" "How might we avoid breaking changes?" "How might we move authority to information?" "How might we reduce inventory?" By brainstorming answers to these questions, you can discover new techniques. You can also assess existing techniques to see if they might be the answer to the question.
Where Principles Come From
Principles are derived inductively from clusters of related techniques. The process goes like this:
- Look for similarities between techniques
- Infer a principle that explains the similarities
- Test the principle by using it to generate new techniques. A principle is useful to the degree that it helps you discover useful techniques.
This process echoes the scientific method, which we'll see shortly in the chapter on Empiricism.
Wait a minute, you're probably saying. Do techniques generate principles, or do principles generate techniques? I can only answer "yes." Principles and techniques work together. Like so many other symbiotic partners in the world of software, they bootstrap each other into existence.