• 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.