Guiding Principles

James Fennimore Cooper is best known for his fiction set in the colonial frontier of early America. Books like The Last of the Mohicans and its sequel The Pathfinder come readily to mind. But he also wrote political commentary on both the American and some European institutions. In The American Democrat, published in 1838, Cooper had this to say about the danger of popular opinion:

In Democracies there is a besetting disposition to make publick opinion stronger than the law…. The most insinuating and dangerous form in which oppression can overshadow a community is that of popular sway.

Cooper recognized, as did the American founders, that the line between majority rule and majority tyranny is thin and fragile, and many emergencies of the moment may be easily, but ultimately erroneously, deemed important enough to ignore the letter or spirit of the law.

A systems architecture exists to identify and describe the strategically important aspects of a software and hardware system. The architecture is the first translation of the business and product strategy to a technical product blueprint, and embodies the most salient technical aspects which will lead to the success of those strategies. But in developing complex technical systems, the architecture will not foresee all the possible critical decision points which will emerge during development. Scope, schedule, cost, and quality will require constant balancing, and emergencies of the moment will often arise which the architecture will not (and even should not) address. This is where guiding principles are invaluable.

Otsego Hall renovation plan by Cooper. One of his principles for planting trees in the expanded gardens was "no straight lines."

Architectural Guiding Principles are statements which succinctly capture the major goals of the architecture and the eventual product. They are often considered part of the meta-architecture, or “architecture of the architecture.” They are used when creating the architecture, but their use extends well beyond that phase. Architectural Guiding Principles should each

  • be stated as simply and clearly as possible;
  • have an associated rationale; and
  • have examples of one or more counter principles.

The principles should be fully understood and agreed upon by all. Well-formed and well-communicated principles will help even the most remote product manager, developer, or tester decide which of two or more possible options are more aligned with the architecture and its goals. Requests for feature additions, changes, or deletions, design and implementation options, defect severity, etc. are all examples of day-to-day decisions which can be made easier in the light of well-known guiding principles. As Dana Bredemeyer explains,

Well-stated principles cleave the decision space between decisions in line with the principle and decisions that run counter to the principle.

Some companies cast their principles into pithy sayings, all the more easily to be remembered. One company, moving away from docking hardware for its mobile devices, had a principle stated as, “Cradles are for babies.” Another company used “Time Trumps Space” to embody the direction that computational efficiency, leading to a more responsive user experience and better battery life, was more important for this product than code and data size, since the cost of memory was in steep decline.

The rationale for a guiding principle should be more verbose than the principle itself, but only such that it clarifies the purpose. A motivating quote from one or more key stakeholders (obtained, for example, during stakeholder interviews) is useful in this section, and helps to ground the principle in reality.

One or more counter principles serve to add depth to the understanding of the principle itself. This works exactly the way an artist uses shade – to counter the light thrown upon an object, giving it depth and correct perspective.

Guiding Principles can be applied to more than just architecture. They can be used when developing business plans, business strategies, marketing plans, training programs, etc. In  a very real sense, the Declaration of Independence embodies the guiding principles of the U.S. Constitution. When well-formed and disseminated, guiding principles can be a key factor in the success of any system.

For more information, Dana Bredemeyer has an excellent page on architectural principles, with many links to other examples.

How have you used Architectural Guiding Principles in your organization? Join the conversation below!

Advertisements

One response to “Guiding Principles

  • charliealfred

    Hi Randall,

    Thanks for posting on a very important, but often overlooked architecture topic. A great set of core principles is the foundation of conceptual integrity, which in turn provides balance and stability for any long-lived architecture.

    The key question, I believe, is where do these great principles come from? Many come from experience with prior generation systems. The “balance of power” principle which is central to the U.S. Constitutions came from close study of many other forms of government (monarchies and dictatorships, among them) which lacked checks and balanced.

    But in many situations, there are no equivalent systems to learn from. Here, analogy and generalization can help. Airplanes have wings because people watched birds fly (and people fail to) and hypothesized that wings were important for aerodynamics.

    But in many cases, it is critical that principles emerge from the architecture process itself. A few years ago, I wrote about a Value -> Challenge -> Approach -> Principle relationship in http://charliealfred.wordpress.com/architecture-in-a-nutshell/.

    The general idea is that systems exist to create value. Value usually is something that is scarce or difficult to attain, so it is essential to understand the challenges that obstruct the attainment of value. The challenges that obstruct the most value and/or are the most difficult or complex are the ones to focus on first (and most). This is because virtually every architecture decision made reduces the degrees of freedom available for the rest. So it’s important to make your earliest decisions count.

    The rationale for these decisions, and their consistency with each other is the soil from which the best principles are grown. The ideas for how best to address these high priority challenges are the seeds from which the best principles grow. And if these seeds originate from prior experience with other similar problems, all the better.

    Best Regards,
    Charlie Alfred
    charliealfred@comcast.net

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: