The book "The Art of Systems Architecting" discusses the importance of heuristics as an architectural tool. The authors define a heuristic as follows:

"Heuristics are guides along the way - channel markings, direction signs, alerts, warnings, and anchorages - tools in the larger sense"

The word heuristic has it’s origin in the Greek word ‘heuriskein‘ which means "to find a way" or "to guide" in the sense of guiding a boat through treacherous waters. I liked this definition of a heuristic from Steve Pavlina:

"An heuristic is a rule for exploring a search space that can help you get close to an optimal solution when you cannot explore the entire search space."

Dave Snowden, discussing heuristics, provides the following insight:

"Heuristics are common sense sayings that make us think about things."

Heuristics are especially useful in decision-making, in providing guidance, and in solving ill-structured problems. There are primarily two types of heuristics:

  • Descriptive heuristics: these describe a situation or context but do not provide any guidance on how to resolve it.
  • Prescriptive heuristics: these provide guidance about what to do about a specific situation.

Carefully selected heuristics are great tools that architects can use to guide their journey into the unknown, they a great way to consciously apply the wisdom, insights, the lessons learned and gleaned from personal experiences and from the experiences of others. Heuristics are most useful when they are used as a set. Some example  heuristics are:

  • The beginning is the most important part of the work - Plato, 4th Century B.C.
  • Build and maintain options al long as possible in the design and implementation of complex systems. You will need them.
  • In order to understand anything you must not try to understand everything.
  • Politics, not technology, sets the limits of what technology is allowed to achieve.

Deliberately and consciously selecting a set of heuristics at the start of a project is a great way to reuse the wisdom gained from past experiences. A team discussion on the most appropriate heuristics that should be "top of mind" and used as a set of guides, shared by the team, to guide their journey. Heuristics are especially important given the increasing level of complexity and uncertainty in architecting large systems.

In book "The Art of Systems Architecting" the authors provide the following rules to consider when applying heuristics:

  • If it works, then it’s useful.
  • Knowing when and how to use a heuristic is as important as knowing the what and why.
  • Heuristics work best when applied early to reduce the solution space.
  • Strive for balance - too much of a good thing or complete elimination of a bad thing may make things worse not better.
  • Practice, practice, practice.
  • Heuristics aren’t reality either.

To conclude:

“Heuristics are an essential complement to analytics, particularly in situations where analysis alone cannot provide either insights, or guidelines.”

How much have you learned as an architect? Have you codified some of your lessons learned into succinct expressions or heuristics to guide future architecture efforts?

 

Technorati Tags: , , , ,

“Time after time, we have found that in the midst of profound and complex change, more than one significant aspect of the enterprise is changing at once. Often key leaders or team members don’t see the whole system in the same way - each sees a different portion of the overall picture. They generally do not agree on the range of forces affecting their business or on their importance. They often do not have shared views on the key strategies the business should use to respond to these forces, what the business must become, where they currently stand, or how they will go about the change or development that is needed to survive in the changing environment. Even when different members see parts of the system from a common perspective, key elements in the system are often “invisible” to any particular group, and their disagreements often lie in just these invisible areas. Conflicts arise because not everyone is on the same page regarding the key elements of the enterprise as a whole.” - Friedman & Gyr “The Dynamic Enterprise”

Silo-based systems are developed due to a lack of seeing the whole or the big picture. Seeing the whole is a collaborative rather than individual effort as each stakeholder helps us to gain an important insight into the whole. This can be likened to the parable of the "Blind Men and the Elephant", where, “Knowing in part may make a fine tale, but wisdom comes from seeing the whole.” See the whole is analogy to effort of blind men and the elephant: In a sense, each individual is blind to the invisible big picture.

The capability to address the enterprise as a whole, distinguishes the enterprise architecture paradigm from the others. Enterprise architecture is about “seeing the whole”, as such there can only be one enterprise view of the organisation….

 

image

 

The value of enterprise architecture is it’s role in identifying the big picture of the enterprise and to provide the enterprise definition for each architectural domain, so architects can design the IT architecture from an enterprise consideration. Enterprise architecture can be distinguished from other styles of architecture by it’s enterprise perspective. Enterprise architecture is the discipline of seeing the whole, of seeing the big picture.