Perhaps the most challenging concept in my book The Agile Architecture Revolution is the notion that enterprises are complex adaptive systems that exhibit emergent properties. Furthermore, not only is business agility such an emergent property (a property of the organization as a whole rather than of any part of the organization), but we can actually achieve business agility via the proper application of Agile Architecture.
This line of thinking is no doubt challenging for several reasons, but perhaps the most difficult part of the story is connecting the final link: how do we actually achieve business agility in the organization, now that we understand that such agility is an emergent property? The answer in the book: governance. Governance – creating, communicating, and enforcing the policies important to an organization – can direct and constrain the behavior of both people and technology in such a way that it leads to agility overall. But I never explained how this connection between governance and agility was actually supposed to work in practice.
It’s time to say goodbye to this weakest link, as I now have deeper insight into the proper application of governance, gained through my work as Chief Evangelist at EnterpriseWeb. The missing piece to this puzzle is dynamic constraint satisfaction.
Quoting Wikipedia: “In artificial intelligence and operations research, constraint satisfaction is the process of finding a solution to a set of constraints that impose conditions that the variables must satisfy.” Furthermore, dynamic constraint satisfaction is a particularly knotty type of constraint satisfaction, where “the original formulation of a problem is altered in some way, typically because the set of constraints to consider evolves because of the environment.” In the realm of governance, the conditions we’re speaking about are the various policies and rules that the organization must comply with. Once you realize that every person and system within an organization is expected to comply with multiple layers of policies and rules, and furthermore, such policies and rules are always subject to change, it quickly becomes clear that governance – specifically, enforcing all applicable policies and rules across the entire organization all at once – is a dynamic constraint satisfaction problem.
Most organizations do not have the architectural or technological maturity to consider governance to be such a problem. Rather, governance concerns apply only within silos. The challenge for such organizations, therefore, is resolving cross-silo governance challenges.
Time for an example. At a recent conference I spoke with a manager from a large bank’s IT department. He was bemoaning his complex heterogeneous environment, and in particular, a specific rules engine and how it fit into the mess. Business users, he explained, were adept at entering business rules into this engine, with the expectation that they would be enforced across all relevant applications and systems. However, none of those users were familiar with those underlying systems, or the other policies and rules that might also apply to them. As a result, many of the rules in the engine either contradicted other policies or rules, or didn’t conform to the corporate strategy in some other way.
Such problems have been common across enterprises for years, of course, and usually lead to lots of hand-wringing and finger-pointing. The techies bemoan that the business doesn’t understand the broader context of the application environment, and the business folks complain the techies are dragging their heels, unable or unwilling to support the priorities of the business. But regardless of whose side you take in this battle, everyone will agree that the rules in this particular engine can’t lead to violations of anti-money laundering rules or Sarbanes Oxley regulations or the like. Some policies must be enforced across organizational and technical silos.
That’s where dynamic constraint satisfaction comes in. Ensuring all the rules in all the rules engines comply with applicable regulations, policies, or other rules across the entire organization is a dynamic constraint satisfaction problem – and furthermore, must be solved in order to ensure the organization is in compliance with all the regulations and other important policies. Furthermore, automating the solution of such problems in real time leads to emergent behaviors: seemingly unpredictable behaviors that taken together lead to a higher order of behavior of the organization as a whole, just as following the rules of the road leads to traffic jams or the behavior of individual bees leads to the behavior of the hive.
Even if you buy the fact that governance supported by dynamic constraint satisfaction leads to emergent behaviors, you may still be dubious whether business agility is the final result. After all agility seems so free while governance seems so constraining. Remember, however, that agility doesn’t mean chaos, which is what you’d end up with if everybody in an organization did whatever they wanted to without any rules or policies to follow. Instead, it’s precisely those rules and policies that steer the enterprise in the right direction. The secret to business agility is to empower people to adapt to change and leverage change for competitive advantage within the constraints of organizational policy. Real time, automated dynamic constraint satisfaction is a critical link in this chain.
governance policies, Agile Software Development, compliance policies