I was recently asked to provide my definition of an architect.  I have a more philosophical view of the role in comparison to others, but this is my Blog and these are my thoughts.  My job is to spew nonsense; your job is to read it and disagree (at least that’s what most people do).

An architect is responsible for getting the job done right vs. just getting the job done. They are the visionary responsible for the spirit of a design along with establishing the guardrails for the implementation. They are also the person that is responsible for understanding the design, the use, the potential use, the management and maintenance as well as the implementation of a solution.  They will use many tools, experiences, references and guidance add in some customer requirements and constraints and produce what they feel is the best solution for the problem at hand.

Here are some stories that read recently where the architect failed:

  • A building architect/designer was inspired to create a design for a building that was “open and airy”.  They were to construct this building on some land had already been purchased.  The architect created a design that allowed for open air flow in the lobby; with high ceilings.  It will take elements of the outside and bring them inside.  The space will be a smooth transition for patrons as they make their way from the outside to the inside.  One problem.  The location of the building and the layout of the lobby was downwind from a river.  Across the street from the river, was a landfill.  Had the architect looked around, he would have known to change the design for the building, change the lobby layout or change his inspiration altogether due to the surroundings. 
  • Another more famous example was the The History of Amazon’s Tab Navigation.  For those who don’t remember, the home page used to have tabs.  The problem was that no one ever considered what would happen if the number of tabs were increased to something more than 10. 

Architects do good as well.  I am always amazed at the thought that goes into software frameworks where the intended purpose if completely unknown.  Think about the HTTP protocol RFC.  I bet when the architects where in the room back in 1999, thinking about what people might do, the thought of using it to build systems that would be able to able to carry videos, executables, HTML, voice, and pretty much anything we throw at it..  However, the design was simple enough to understand (request and response between servers and some data in the middle) yet complex enough to allow for others to use and extend without major redesign of the protocol.  Great architecture.