Self-Validating Good Explanations

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.