The ultimate goal of any software development company should be to foster an environment of creating self-validating Good Explanation.
- Software development is an act of creativity
- Software development happens in a Symmathesy
- Developing Good Explanations is a process one must continually work to get better at
Software development is a process of discovery
- All languages are turing complete. What matters, then? Optimizing for the creation of “Good Explanations”
As “Good Explanations” are a process of discovery, optimizing for them is optimizing for learning
- Learning happens in a state of flow. Flow: Systems Thinking
- Learning requires discovery, and also requires teaching and sharing of knowledge. Discoverable Knowledge
- A good explanation approach to software development culminates in a verification driven approach (TDD, verification, etc)
- This approach, when automated and applied to an entire project, results in Continuous Compliance
- Science is humanity’s most effective approach to learning: Methodical formulation of Good Explanations.
- Defining characteristic of Good Explanations is that they are hard to vary without invalidating them. Thus, they are also falsifiable and testable.
- Engineering is the science of applying science to solving practical problems.