[self-interest] Architecture and Programming

cramakrishnan at acm.org cramakrishnan at acm.org
Tue Dec 5 17:33:32 UTC 2000

Richard writes:
> Both programming and architecture must satisfy functional and human needs.

I not sure i completely agree.  I think user interfaces to programs
must satisfy functional and human needs in a way somewhat similar to
architecture, but i don't think the structure of a program has to.

Besides, architecture is about structuring space, whereas software
architecture is about structuring ideas.

> But programming per se has little connection to architecture. Rather,
> computer science encompasses both programming and software architecture.
> It is possible to do architecture without programming, even if this is
> anathema to the Extreme Programming crowd and you can't get a job that
> way. And of course, requiring aspiring software architects to prove
> themselves as programmers makes as much sense as requiring building
> architects to prove themselves as draftsmen. Training as a programmer
> is actually a sure way to destroy the instincts of an architect. Too
> much technical knowledge hinders your ability to envision the human
> dimension.

Your analogy here presuposses that it makes sense to compare software
architecture to real architecture!  :)

For the sake of argument, let's suppose it does make sense to compare
software design to architecture.  Why do you compare the programmer to
a draftsman?  Why not a structural engineer, or a mason, or whatever?

> The job of the programmer is to instantiate software based on abstact
> architectures. The job of the architect is to produce and improve
> abstract architectures from existing software. These are fundamentally
> different tasks.

I'm really not sure they are fundamentally different tasks.

Because architecture is about space and software about ideas, i think
it's a poor comparison.  Personally, I think of software architecture
as closer to rhetoric, which, at least, is about the structure of

I don't even think architecture is a good metaphor for user interface
design.  Industrial design is closer to UI design at the level of
which it has to take into account the capabilities and limitations of

> I read a good paper (can't remember where) on the uselessness of software
> reuse which explains that while the abstract architectures in two different

If you remember the reference, I'd like to hear it.

- sekhar

C. Ramakrishnan        cramakrishnan at acm.org

More information about the Self-interest mailing list