answer goes here
YAML as a DSL
For the second, what you want is a total programming language. One that’s guaranteed to terminate, and facilitates code reuse, correct-by-construction schemas, and Developing Good Explanations as much as possible. It should be thought of as a real programming language because it is. Arbitrary runtime configuration of highly configurable applications requires real tools.
- Trunk Based Development
- Theories Under Test
- Self-Validating Good Explanations
- Release Strategies and Versioning
As one works on Developing Good Explanations, there needs to be a way to analyze the work that’s being done and to reason about it. Otherwise, Continuous Learning won’t happen and it will become harder and harder to know that your software is a Good Explanation. Even more so if you desire for your Good Explanations to be Self-Validating Good Explanations.
- Performer Metrics
- Low Risk Releases
- Improvement of Daily Work
- Erase Your Darlings
- Don’t Special Case Administrative Tasks
Differences Between Build Systems, Package Managers, Compilers, and IDEs
With a build system you write a program in its language, ideally iteratively and following the process of Developing Good Explanations. On the other hand, with a compiler you write a program in its language, ideally iteratively and… wait a minute.
- Concrete Goals of CI/CD/CC
- 12 Factors