Software Architecture

Long-Time readers of Creative Chaos know that I am a bit frazzelled by the term “Software Architect.” I don’t think it means anything.

Or, perhaps, to put it another way: Perhaps it means everything?

The confusion of the word reminds me of the confusion over the term testing, which reminds me of Brett Pettichord’s Four Schools of Software Testing.

It occurs to me that there are at least five distinct schools of computer architecture:

CPU Architecture: Highly specialized and different; slim to never confused with the items below
A CPU Architect looks a lot like: An electrical engineer
Exemplar: Multi-Core CPU’s

Systems Architecture: Interested in the technology stack used by the business – for example – HP/UX servers running Oracle as DB servers, linux web servers, desktop PC’s with windows
A systems architect looks a lot like: A director of IT services
Exemplar: Service Level Agreements, Redundancy, Failover, Backups

Software Architecture: Interested in implementing various strategies to solve problems, such as Session, State, Domain Logic, Polymorphism, MVC, and so on
A Software Architect looks like: A highly-abstracted programmer
Exemplar: UML Diagrams

Organization Architect: Interested in how to seamlessly integrate people, processes and tools while speaking a common business language
A Organization Architect Looks a Lot Like: Some guy asking a bunch of questions and making your job harder
Exemplar: The Zachman Framework, “Enterprise” Architecture, The City Planning Analogy

Consulting Architecture: Interested in helping the customer and technical staff reach a shared understanding of the work, breaking the work up into manageable chunks, helping the customer understand the solution, and sticking around to see the solution implemented.
A Consulting Architect looks a lot like: What we used to call a ‘systems analyst’ in the 1980’s
Exemplar: Story-Cards and a release schedule

This is really just a conceptual framework. Thus, when I get into arguments about the meanings of the word “Architecture”, I can say “Oh, wait, you’re coming from the consulting school” and do translation.

What do you think? Does this warrant further writing?

3 comments on “Software Architecture

  1. Yes, please do further writing on the topic! I need more references for the battles with the architecture astronauts.

  2. I agree with your post. Although, I had the impression what we used to call a Systems Analyst is now a Business Analyst (where DO these names come from?).

    However, I don’t think words like ‘framework’ or ‘stack’ mean anything either. To me a stack is something to push return addresses onto, and a framework is what helps keep a building from sagging into the ground.

    And don’t get me started on “space” (as in the “database space” – ugh) – or worse buzzwords.

    By the way: to me, the school of Architecture is where Frank Lloyd Wright is studied, not Von Neumann or Alan Turing….

    What is it about people that they want to use new terms for old things?

Leave a Reply

Your email address will not be published.