Home > Architecture / Engineering > The Architetcture debate continued…

The Architetcture debate continued…

April 28, 2010
Following on from some previous posts on the debate of the Architectecture discipline,  I found some interesting potsts on http://www.designpatternsfor.net that are a few years old but still relevant today. I will create a couple of entries on these posts.
 
In the below topic you could equally read Engineer for Developer in these post.
 

One of the reasons why there is so much disagreement over the definition of the word Architect is that those engaged in the debate seem to be reaching for one comprehensive definition for this professional label. The reality is that there are many species or types of architects, each with different concerns and responsibilities.

Many people in our community have posited the idea that the role of an architect unfolds as a continuum that starts somewhere around the time you become a more senior developer, and transforms in its nature up through positions such as CTO. This description suggests the wide variance in concerns that different types of architects might have, but is still quite vague. If you’re not a senior developer or an executive, where do you fit on this continuum, how does that translate into what you really do, and might there be a way to better classify the different types of architects?

"…Many would agree that the label architect is becoming more and more meaningless as an increasing number of organizations use the title in order to promote their sales agendas. Furthermore, many developers call themselves architects in order to elevate their own stature. For the time being, let’s forget about the negative connotations related to the word architect. Instead, let’s think about the role of architect, what it means to play that role, and how developers might move up to this role.

Perhaps a good place to start is by looking at the construction industry. Webster’s dictionary defines an architect as being…

"1. A person who designs buildings and advises in their construction. 2. A person who designs and guides a plan or undertaking."

I think that’s a pretty good place to start. All we need to do is swap a few words, add couple more, and this definition might work for our industry.

"1. A person who designs software systems and advises in the design of such systems. 2. A person who designs and guides a plan or undertaking related to software systems design."

Many of us are indeed architects if we use definition #1 as our standard. Even the most junior developer has valuable insights into how an organization might design and deliver software. Item #2, however, suggests a leadership role that somehow rises above mere counsel. The implication is that an architect has some kind of wisdom that will help the organization deliver software that not only meets the tactical and strategic objectives of the organization, but also considers the technical, fiscal, scheduling, and staffing constraints (to name a few) of the project. Such wisdom helps the organization identify the pros and cons of a given design decision and select a direction that optimizes the use of technology for the given business objectives and constraints.

If we accept that one of the characteristics of an architect is wisdom, the next question might be, "Where does such wisdom come from?" The quick answer is that it varies from person to person. Some people early in their careers have a natural talent that allows them to see how software designs might best achieve their objectives. Others, like myself, acquire knowledge over time by observing and studying how problems are solved on a number of platforms, in different languages, and by learning from our own mistakes.

Some believe that architects should be the best coders. I would argue that, regardless of the vertical industry you’re in, and whether you do corporate, commercial, government, or non-profit software work, this tenet if faulty. Let’s consider the world of building construction. In that world there are clear distinctions between specialists (e.g. carpenters, masons, electricians, etc.) and architects. In that world we can all understand the role of an architect, and we would never expect the architect to be an expert carpenter, mason, or electrician. Yet we all can accept that a building architect has to know enough about all of these things in order to envision, design, communicate with, and possibly direct and orchestrate the activities of such highly skilled individuals.

This analogy suggests that architecture is more focused on "the big picture", and that the architect turns to and delegates to specialists accordingly. This does not mean that the architect should ever let their coding abilities slip. On the contrary, the best architects keep on coding, they just may not dig into all of nuances of the latest framework, language, or platform. Most architects have learned that, when it comes to technology, specialized knowledge is a moving target and will probably be obsolete within 5 years or less. Architects are more concerned with how the current or "up and coming" technologies serve a "big picture" need…."

There are a couple of other observations I remember that also relate and tie in to the above….

Architect – An Engineer who knows what he/she is doing.
"If an Archtect says something that appears insane… Its because they are smarter than you"  Michael Lopp aka Rands (http://www.randsinrepose.com) on Definition of an Architect.

Miha Kralj- Microsoft Architecture Journal Article….

"…In the structural construction business, architects branched away from civil engineers and construction workers many centuries ago. They were (and still are) groomed, educated, and taught quite different skill sets than their engineering counterparts.

If you would ask a civil engineer what a building is, the definition will focus on thickness of the walls, angle of the roof, sturdiness of beams and type of concrete required for house fundaments. Architects on the other side will describe the house as a wrapper around the living space, nested into the environment that allows the inhabitants to do whatever they intend to do in the house.

How does that translate to IT, where we have borrowed the name and title of architecture? Our modern profession has not had centuries to diversify and evolve naturally. It seems that every high-complexity IT endeavor is now called architecture instead of engineering. In the words of Alan Cooper: "[nowadays] Web designers are called programmers, programmers are called engineers, engineers are called architects, and [true] architects are never called."


Advertisements
%d bloggers like this: