Video version of this article: https://youtu.be/Rd9FWbjf5ic
Our next premise is that we must minimize propagating changes throughout the system.
This follows from our premise of minimal information:
- Propagating changes throughout a system means we need to be aware of additional required changes.
- This means we need to be aware of more things than if there were no additional required changes.
- This conflicts with our premise of minimal information.
It is also a suggested requirement for making systems that are easy to change:
- Less propagating changes means less changes are required overall.
- Which means less work is required to change the system.
- Which suggests that the system is easier to change.
This article is part of the "Programming first principles series":
- Purpose - What this series is about
- Audience - Who this series is for
- Requirements of software
- Premise - Minimal information
- Premise - We must understand what we're doing
- Premise - Minimize propagating changes throughout the system (this article)
- Premise - Complexity increases exponentially with scale
- First principle - Proof that code works
- First principle - Principle of least astonishment
- First principle - Principle of least knowledge
- First principle - Separation of concerns
- First principle - Abstraction
- Side effects