I am a big fan of risk management in all projects.  It is however generally rare to see risks identified when developing an enterprise architecture.  On the one hand, this seems to make sense.  Enterprise architectures are there to address the shared risks for others.  They are the cure, not the cause.  Unfortunately as cures go, the enterprise architecture is rarely a simple thing and as complexity increases so does the number of opportunities to inject risk.

Consider two primary goals of the Enterprise Architecture, safety and security.  All services exposed by the enterprise architecture need to be highly available to the point of ubiquitousness.  Failures must be accounted for in planning, minimized by design, and masked from the consumers during operation.

For example an enterprise wide collaboration service might include text messaging, virtual conferencing, and chat.  On the surface these are fairly simple and individual user expectations are clear enough.  They send a text string to a server and it re-broadcasts that string to the appropriate end points. The risk management plan would minimally address failure to service an inbound request and failure to reach any or all endpoints.

Alas we well know there is much more to it than that.  The collaboration service needs to provide a simple facade while securely scaling as required.  Load balancing, provisioning, application isolation, authentication and authorization are but a few of the critical yet invisible elements required to support the public interfaces.  Each creating new risk opportunities.  How will device failures be addressed?  Can the business accept lost transmissions or partial text blocks?  Will the sessions need to be persisted? If so for how long and how reliably?  Addressing these risks adds layering to the architechture, we might consider a replicated repository for identity mnagement, and clustering becomes a real possibilitiy for the data stores.

The risk reduction enjoyed by consumers of a well desighned enterprise architecture come at a price born by the enterprise architecture.  Managing these risks well should impact the form and function of the architecture as much, if not more than, the stated requirements coming from the applications.  While a bit of a vicious cycle it reinforces the living and iterative nature of the enterprise architecture and the need for continuous evaluation.