Designing degrees of freedom of an architecture

In physics there is a term called the degree of freedom. It is best illustrated with geometry. An object that can move only on X axis has one degree of freedom. An object that can move on X and Y axis has two degrees of freedom.

The more parameters describe how object can change, the more degrees of freedom it has.

I like to use this analogy to talk about a software architecture. Because similarly when designing an app you also design what degrees of freedom your app will have.