Wednesday, May 5, 2010

One Size Doesn't Fit All

"You go find out what the users want, I'll start coding." Believe it or not, those words, or at least that approach, takes place everyday. Look, most applications are delivered as web sites, and most web sites follow a familiar architecture; three tiered, user interface, business logic layer, and a database. A development team could, quite literally, establish certain application constructs before knowing a single business requirement.

Assuming the platform of choice is Java, we know we're going to need a main servlet, a way of handling errors pages, a CSS file, a JDBC connection, a properties file, a build script, folders for test scripts, a logging framework, authentication plugins, and a whole host of other "general purpose" utilities. All of this can be established before the first requirement is gathered.

In most of the better shops there is an established standard application starter package that contains all of this. It is no wonder then that architects fall into a pattern (we love patterns) that every application looks the same. So why then, do we spend so much time in our Architecture Review meetings, going over the business context before looking at the blueprints.

Consider this picture taken during the construction phase of Three PNC Plaza in downtown Pittsburgh. You'll note the criss-cross of steel I-beams that are typical for a modern office building; in this case the fireproofing has already been applied. But if you look more closely you'll also note that one of the I-beams is considerably larger than all of the rest. Like whoa baby! Did they truck that thing in, or did they just over-fertilize it right here on the spot?

The size of this beam is even more perplexing when looking at the rest of the skeleton, which I couldn't fit here. This was the only beam of this size in the whole of the structure and it wasn't even centrally located. It's not like this was the central support beam for the 23 story building. So why? Why do we have this, why was it needed?

Let's consider the business requirements as depicted in a writeup of the building:

Three PNC Plaza will be a 780,000 sq. ft. office/condo/hotel/retail/parking complex. Designed to meet Leadership in Energy and Environmental Design standards established by the U.S. Green Building Council, the 23-story building is planned to be the largest environmentally friendly, mixed-used building in the United States. Pittsburgh's first new high-rise in 20 years will include: office space; a Fairmont Hotel with "green" guest rooms; 28 condominiums; a restaurant; retail space; underground parking garage; and a pet-friendly public park. A 6000 sq. ft. hotel ballroom will reside on the 2nd floor, overlooking Fifth Ave.

Do you see anything in that description that would indicate a need for the father of all I-Beams? Imagine the steel skeleton of a typical sky scraper, focusing on the vertical beams that support each of the floors. Under what circumstances would a vertical beam cause insurmountable problems? Typical offices deal with vertical beams all the time, no issue there, but a ballroom simply cannot have visual obstructions.

If Three PNC Plaza was to be a typical office complex, the super-dee-super horizontal cross beam would not be necessary. But, because of the mixed use nature of the business requirements, specifically the inclusion of a hotel (which would almost certainly need a ballroom), the architect had to figure out a way to sustain 21 floors of weight above a section of the building where there wouldn't be any vertical support. Thus, the inclusion of a specially manufactured (you don't think this is standard issue do you) beam that is so tall that they couldn't bring into downtown through the Fort Pitt, Liberty, or Squirrel Hill Tunnels. For those that understand how Pittsburgh is laid out, that becomes a logistical nightmare.

Understanding the business requirements is absolutely fundamental to developing a workable architecture, regardless of any prevailing wisdom as to how things should be built. Architecture reviews must begin with the context (business purpose) that the architecture is supposed to support. Otherwise we'll be bumping into ornate pillars when we're dancing to the Blue Danube.

Follow by Email