A System Architect Does Not Need To Be A Developer

Of course, not being a developer and having successfully performed in the role of system architect I hold this belief for obvious reasons.  There is an impression that to be a successful architect one has to be an experienced developer, and nothing is further from the truth.  One only needs to have, from a technical standpoint, a deep understanding of the technologies available and how they are applied, for what reasons, and with what limitations.

I liken the difference between the two to the building trade and that of architect/engineer, and builder, which I think is an apt analogy, because business users can easily grasp not only the similarities and differences of the roles, but also the subtly between the role and the profession.  That is you may be a builder, but still have the knowledge, skills, and disposition to act as an excellent engineer.  Further, you may be an excellent engineer, and not able to build an excellent birdhouse.

One reason for this is that system architecture is seen as a technical role and not a business role, and therefore it is expected to require development experience; and, while it is a very technical role, it does not require that the architect be a developer.  Further, and to be clear, because the knowledge, skills, and dispositions between the two roles are different, not all developers may be successful architects.  So what makes a good architect?

1) Understands the business.

A friend of mine had this beautiful apartment in a gorgeous building in one of the most desirable parts of NYC.  It turned out to be a very difficult apartment to sell, because, it was built in a time where people had a different concept of living space.  The kitchen was no-where near the dinning room, and there was a huge sitting room in addition to a formal living room.  It was built in a time of servants and formal entertaining, and today’s culture is much more informal and people desire open space designs where the functional areas are a part of the living space.

The point being that the apartment did not address the business requirements of its users and therefore no matter how many desirable characteristics it had, as it did not address a fundamental needs of buyers, it was a difficult apartment to sell.

2) Understands the tools

One day when I was living in NYC I was running late for a long-distance bus traveling out to the country.  I could not miss this bus as they ran but once a day and I could not be a day late for where I was going.  I had the choice of jumping on a city bus, taking a cab, riding the subway, or getting on my bike.  All of these vehicles of transportation could get me where I had to go, and if I had all the time in the world I would have taken the subway, but under pressure I decided to take my bike.

Of all the modes of transport at my disposal, each had its pros and its cons and I knew I could make it in time with my bike and I was not at risk to be side-lined by a problem with transportation delay, which was common in those days with all the other forms of transportation; and as far as I was concerned the biggest con of all.

3) Understands what makes a good solution

It was the first episode of Project Runway and the designers were competing with each other to create an elegant evening outfit out of $50.00 of food that was chosen within one hour.  Twelve competitors raced the clock and their decisions throughout pushed them to the edge of not only their creativity, but also their ability to execute their vision.  Finally, no matter how good of job they thought they did, it was ultimately up to someone else’s subjective decision.

It must have been a dog lover who popularized the phrase, there is more than one way to skin a cat, but that is the essence of being a system architect–there is probably no single way to solve a problem and what makes a solution “good” is subjective to the specifics of a particular situation.

An excellent developer is someone who is able to build well written code, which I will not qualify here, but in so doing, they have to understand the technical problem that has been put in front of them which may be a logical problem, a functional problem, or an analytic problem.  In so doing, developers begin to gain an understanding of the above components of system architecture and in much the same way that a builder gains an understanding of design, engineering, and architecture so that they can step into each of these functions a developer can step into the role solution architect.  But in the same way that an architect/engineer can create a beautiful building and identify how it should be implemented and have never picked up a hammer, a system architect can build a technical solution without experience as a developer.

Roy Pellicano

Advertisement
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s