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.
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!