- Behaviour and structure:
- Behaviour refers to implementing a certain feature that meets certain requirements
- Structure to the ability of the system to change (the more important one)
- A change’s difficulty should only be proportional to its scope, not its shape.
- Imagine trying to fit a square peg into a round hole. If the architecture isn’t shape agnostic, fitting new pieces may be extremely hard due to their “shape”.
- Architecture/Structure is more important, as a program may not work at the moment, but so long as change is possible, it can be made to work. The opposite isn’t always true.
- It is the responsibility of the software development team to assert the importance of architecture over the urgency of features.