Long time ago I worked for an IT of large shipping port - a few thousands of employees, ship docks, dockmen, warehouses, railroad cars. This ran on a mix of mainframe, UNIX and disjointed PCs. There wasn't SAP and new cool thing called Oracle just came out. Our group was tasked with understanding the organization business and coming up with a plan of moving to a better information system future. We spent a year and ton of money on the latest modeling tools but had marginal success simply because no one of us knew anything about enterprise architecture frameworks.

Our business analysts were shadowing users asking all sorts of questions and collecting all possible artifacts, but the problem was that we didn't know what questions to ask and most importantly how to organize information. There wasn't a process. At the end we produced a ton of models only one of which was useful - huge database ER diagram. After a while one can tell that it was used all the time since it was torn and had marks and stains. Nobody even looked at the rest of the model or most of the artifact we spent a year on - there we clean and crisp. These days these process would have been different because there are several Enterprise Architecture framework, Zachman framework being one of them.

What't cool about Zachman is that technically it is not a framework like TOGAF, it it a classification scheme or taxonomy - it's a way of dealing with processing unknown information. What fascinates me is this powerful idea - in order to understand something knew, you need to classify it. For example, in order to understand an animal world we need first to decide on their their categories or groups - mammals, invertebrates, fish, reptiles and so on. Once we do, we start seeing similarities between them and eventually understand them better.

Zachman framework classification scheme is two-dimensional matrix. The columns of the matrix are these six exhaustive questions which are:

What (data)

How (process, function)

Where (technology, network)

Who (people, organization)

When( time, schedule)

Why (motivation, strategy).

The rows of the matrix are called perspectives:

Scope (Contextual, Planner or Ballpark View) - place for strategy

Conceptual (Business model, Enterprise model, Owner View)

Logical (System model, Designer View) - place for requirements

Physical (Technology, Builder View)

As Built (Subcontractor, Deployment, Integrator view) - place for COTS packages

Functioning (Evaluation, User view, Actual System)

Going on one column top to bottom the perspectives can be called Identification, Definition, Representation, Specification, Configuration, Installation

This gives a powerful analytic tool in the form of 6 x 5 matrix (6 x 6 to be exact, but since the last row is functional enterprise, only 30 cells of the matrix matter most):

Zachman-ZIFA

Zachman framework is now supported by major modeling tools (EA, VP and others) where every cell of the matrix is clickable:

Zachman

I also noticed that having those six questions (What, How, Where, Who, When and Why) helps a lot in thinking about software and writing design docs to avoid lumping unrelated concepts together.