Enterprise Architecture Defined: (2) Complexity and Change
Architecture is a SET of Descriptive Representations.
If the object you are trying to create is simple, you can see the whole thing at the level of definition required to create it … like a log cabin … or a computer program … you don't need Architecture. All you need is a tool, like an axe of a compiler or something and some raw material like a forest, or some data or something, and some time, then build log cabins or write computer programs.
On the other hand, if the object is complex and you can't see it in its entirety at the level of definition required to create it, like a hundred story building … or an Enterprise … now you need Architecture!
In short … the reasons you need Architecture are complexity and change.
In terms of complexity … if you can't describe it, you can't create it!
If somebody hadn't figured out how to describe buildings, you'd be living in a log cabin. If somebody hadn't figured out how to describe airplanes, I'd travel around teaching and consulting in a covered wagon. If somebody hadn't figured out how to describe automobiles, you'd show up to work every day on a horse. If somebody hadn't figured out how to describe computers, you'd be adding up columns of numbers with pencils and paper. Actually, it'd be worse … you'd be moving little doughnuts around on wires. If you can't describe it, you can't create it!
In terms of change … if you don't retain the descriptive representations for the object after you create it … or if you never created them in the first place … and you need to change the resultant implementation, you only have three options:
- You can change the instance and see what happens (high risk).
- You can reverse engineer the architectural descriptions from the existing instantiation (takes time and costs money), or
- You can scrap the whole thing and build a new one.
These three options exhaust the total set of possibilities.
Here is a vivid Illustration of options:
This is really easy to see in buildings. You are probably sitting in a building as you are reading this (or on an airplane or on a cruise liner or something) … the principle will be the same.
Let's assume that whoever owns the building takes an order to put 5,000 people in the building tomorrow morning at 8:00 AM, for a big conference, banquet style seating, round tables, 10 people at a table and they take the order. You notice, nobody is turning down orders these days! "Take the order … we'll figure out what to do later!" (If you happen to be sitting in a Conference Center, picture yourself sitting in an office building or an apartment for purposes of this illustration.)
Well, they are not likely to put 5,000 people sitting at round tables, 10 people at a table in the room you are sitting in … something will have to change. They will probably have to break out one or two or three or all four walls, open up the whole floor … maybe even a second or third floor. So, how do you do this?
You call up the Engineering Department and say, "Okay you guys … We have 5,000 people showing up tomorrow morning at 8:00 AM and we need tables for 10, banquet-style seating, big conference and we have to change the building … so send up the Architecture so we can figure out what to do." What if the Engineering Department says, "Send up the what? The Architecture?! The Building Architecture?!! You mean Building-wide Architecture?!!! You mean Building-WIDE Architecture at EXCRUCIATING level of detail so you can see where the wires are, the outlets, the lighting fixtures, the pipes, the water pipes, the sewage pipes, the weight-bearing members and everything??!!!! Well, you can't do that! You cannot produce Building-wide Architecture at excruciating level of detail! … it would take too long, cost too much!! … and anyway, even if we had taken the time and spent the money, the Building-wide Architecture we would have would not be any good for what you want to do with it anyway because you guys keep changing the building and we couldn't keep the Architecture up to date so it wouldn't reflect the 'as is' configuration of the current building … so … we don't have any Architecture!"
Ohhhhh. Hmmmmm. Now what?
Well, you have three options:
- You can get a bunch of guys with axes and sledge hammers to come in and start knocking out the walls … not with me in that building! You could make some rather small changes and lose the whole thing!!
- The Architect arrives … "We have 5,000 people showing up tomorrow morning at 8:00 AM and we want banquet style seating, round tables, 10 people at a table so we have to change the building … when can you start to work?
This is not a very tasteful metaphor to use right now, but you could take the strength members out of a hundred story building around the 90th floor elevator shafts and the thing could implode on you!
"Jeeeeze! We don't want to do that! Too much risk. Maybe we'd better call an Architect and have him help us."
The Architect says, "Well, I can start right now but … where's your Architecture?" "We don't have any Architecture. That's why we called you, you know!" "WHAT?!! You want ME to change YOUR building and you DON'T HAVE any Architecture? Are you crazy?! Nobody in their right mind is going to change this building without any Architecture!"
The Architect would be in there with drills and tape measures trying to re-create the Architecture from the standing edifice. He or she would be "reverse engineering" the Architectural representations from the existing instantiation. The Architect would go down to the library to try to find pictures of the building being built in the newspaper. They would do all kinds of research before they ever touch that building! That takes time and costs money!
"Well, we can't do that!"
Well, here's your third option:
- Tear this building down and build a new one … only this time build it with a bigger room.
Those are your three options if you have to change something that already exists for which there is no Architecture.
Once again, the reason you need Architecture is to accommodate complexity and high rates of change. And, ARCHITECTURE IS A SET OF DESCRIPTIVE REPRESENTATIONS.
# # #