• Contact me

    Your Name (required)

    Your Email (required)

    Subject

    Your Message

  • HealthcareGuy.com
  • |
  • ShahidShah.com
  • |
  • FedSphere.com

Why do we all want to be architects now?

I’ve noticed that the term software architect, a term I use quite often to describe myself, is in vogue these days. It’s interesting to hear that many developers who used to call themselves senior software engineers are doing the same thing that I’m doing — starting to use the term Software Architect. Even Bill Gates now has the title “Chairman and Chief Software Architect” at Microsoft! What’s the difference between a software engineer and a systems/software architect?

In software now there’s even a specialty of “Enterprise Architect” versus “Software Architect”. We all know precisely what an architect and engineer does in the physical world of construction but what about the logical electronic world of software?

I was approached by Amazon.com recently to join their team and found it interesting that they said “We have no ‘architects’ versus ‘implementors’, everyone does everything from requirements and design through rollout.” So does that imply that architects don’t really implement anything? Is software architectue just an intellectual exercise?

I have been coding for about 15 years and still code many hours a week (mainly Java, Perl, Ruby, and C#). In my line of work (J2EE development) I have seen many architects that don’t know how to code what they “architect”. I’m not sure that’s a good idea — hiring architects that can’t code (even a bit of scripting or basic prototyping is useful). I saw someone say on a website a while back “an architect that can not code is like a composer that plays no instrument.” But, is that accurate? Maybe not.

To be fair to all the systems and software architects out there — nobody would expect a building architect do be a carpenter — and perhaps we shouldn’t expect software architects to carry out their plans (simply oversee them). I spend most of my time talking with senior management, executives, and end users that tell me what their systems want to do and then I create systems plans such servers, network, data centers, and the like to carry out the requirements. Code and software construction (as Stevel McConnell puts it) seems to be a smaller and smaller part of my job (to my dismay because I love to code).

Is systems architecture versus software architecture a meaningful distinction? Perhaps systems architects need to be like traditional building architects — be able to take requirements from customers, create a vision, and lay out the plans for implementing the vision in a timely manner. Systems architects may not need to be coders but software architects probably do.

2 thoughts on “Why do we all want to be architects now?

  1. Definitely an interesting topic and well-put. I believe a software architect should be as familiar with the various tools/languages and their capabilities and shortcomings as a building architect is familiar with the physical materials he designs for. The alternative results in designs which might not be optimum based on the tools at hand.

    Having said that, the difference between a Software Engineer and a Software Architect is IMO scope of vision. So while knowing about the materials at hand is important, the over-arching vision of the architect is what differentiates him from an engineer.

  2. Perhaps the issue is not so much with the Software Architect but with the Software Engineer. Lets take your building construction analogy one more step. I would expect an architect I hire to design my house to understand fundemental building construction techniques, laws of physics and what is generally possible or not possible given the current state of the art, the tools and construction materials available given what I can afford. But I wouldn’t expect that person to know how to pour concrete footers or run electrical wiring or solder copper pipe. I expect the General Contractor, his CONSTRUCTION engineer, foremen and team to know that stuff.

    I think that the evolution from Software Engineer to Software Architect did nothing to redefine the left behind engineer. Perhaps if we re-name that person as a Software Construction Engineer, the analogy then fits better.

    But consider, one of the best architects ever, Frank Lloyd Wright, pushed the very limits of what was possible with construction techniques, sometimes just beyond the edge. His famous Falling Water in Pennsylvania is literally falling apart and has serious long-term structural issues. But, he is, of course, a genious!

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Invite me to speak at your event

    Invite me to speak at your event

  • KLOUT Score

Trustcloud Score