"Is the code the architecture?" Behind this question is another one: "Does the code tell me everything I need to know?". I would say in most instances, no it doesn't. But I don't know if this justifies the need for "Architecture" as something seperate. Architecture is one of those "made up words" as far as software is concerned that eludes precise definition. Lets assume that the architecture is the highest level concrete design of your system that eludes capture and represention using your chosen programming language.
One solution is to change your language to one that does allow you to explicitly define higher level "architectural" abstractions.
Newspeak a new language from Gilad Bracha of "Java Language Specification" fame that allows you to do just this. It does this by removing global namespaces and replacing them with explicit objects that act as higher level namespaces. These abstractions can be used to model libraries, modules, architectural layers, etc directly in code:
So with Newspeak you can plug high level modules together explicitly, just like lego blocks. So the "architecture" is represented in the code.
I think the original question "why do we need this architecture stuff?" Is very valid. If architecture is just high level design, and you can make explicit high level design decisions in your code (like you can with Newspeak). Then architecturing is just coding.
Even without a language like Newspeak, architecturing can still be coding, but code annotated with comments maybe? Or even an "architectural document" as an appendum perhaps?
When Thompson and Ritchie sat down to write Unix , did they see themselves as Architects or Programmers? Maybe for some architecturing is just one aspect of programming. Just as listening, testing, coding, communicating etc are just other aspects. But they are all part and parcel of the same thing.
Perhaps it was this point of view that lay behind the question? "Why do we need to separate architecturing out from everything else?"
E-mail addresses are not publicly displayed, so please only leave your e-mail address if you would like to be notified when new comments are added to this blog entry (you can opt-out later).