Its 2021. This year, I choose to view the architecture of software systems thus:
A set of tools used to gain a understanding of the capabilities and operational characteristics of a software system, potentially one without a concrete implementation. This allows some refinement and iteration of that software system prior to incurring the expense of that system. Architecture is not a goal. Architecture has little value beyond its conveyance of a shared understanding. It may describe the implementation, but the implementation is the actual real system, and is not constrained by the architecture. Saying that an implementation violates or breaks an architecture is not useful. Instead the implementation has properties that are not described, or specific capabilities and operational characteristics that are desired and not fulfilled.
In terms of practice vs performance, Architecture is practice. No amount of drills, study, or rehearsal is a substitute for an actual engagement with the real problem with real stakes. There must be a performance, a live implementation. You must participate directly in implementation to have feedback on the efficacy of your architectural practice.
Leave a Reply