Architects Define Boundaries

Posted 1 year, 5 months ago | Originally written on 24 Dec 2022

It is the responsibility of a system architect to discover meaningful boundaries that fulfil the expressed use cases. This elevates the place of use cases as more or fewer use cases may significantly alter the system boundaries.

I believe the right way to then think about the system architecture is the smallest set of subsystems or components which fulfil the expressed use cases. In effect, every system architecture will always be overdetermined—that is to say that the proposed system architecture will always be more that sufficient to the intended use cases. This is a good thing because it is a way to demonstrate the effectiveness of the design to account for unexpressed use cases.

The previous statement implies that there will always be a set of phantom use cases which are implied but never expressed. That is natural. It is the salient use cases—the activities that may be considered to constitute the 20%—that will be most visible and easily spring to mind. Even within the remaining 80% of cases there will be another 20% of these which will be considered exceptional circumstances and so on. Any good architect will, not only work hard to expose them, but even account for them.