|
|
|
Advertisement
|
Bill Venners: You write in your book, "An architecture is like a carefully designed garden, and needs care and feeding." Can you elaborate?
Luke Hohmann: I think many people think about software architecture the way they think about city streets. When you build city streets, you come, you pave, and you come back in six years, after a lot of heavy wear and tear, and you patch a few potholes. And after another four years of heavy wear and tear, you scrape it all and you repave. That very inorganic view of the world is not how I think of modern software architecture. Modern software architecture is much more akin to an English garden that you plan and you plant and you weed and you improve. Yes, there's an overall plan, but the result requires more tending. I think that tending is one of the things that frustrates executives. Why does software require tending? Things shift on you. Your database just upgraded, you have XML infrastructure to deal with, the customer wants a middleware option, and an operating system just changed. There's more shifting in software than people realize.
Now, we do actually repave city streets and fix potholes, but the city streets metaphor is more about mindset. To me, the mindset of the city street builder is, I'm going to pave it and I hope to God I don't have to come back for ten years, because that's my cost model. Whereas to me, my expectation is that you are tending and nurturing this software architecture that you have created.
I'm cautious about using Alexandrian style building
architecture as a metaphor for software development, for a couple
of reasons. One is that similar to city streets, building architecture
is very static. But number two is that I think developers deal with
space and time differently, especially time, than architects. I find
that dance choreography is a much better analogy.
Choreography is much more akin to what software people do,
because dance has elements that move relative to
each other in time and space. In building architecture, you design
a structure and how things move inside it. In dance, the structure
is amorphous. It's called a stage. Yes, it has sides and a back
wall, but that's about it. And the choreographer has these
elements, these objects and data structures, which are interacting
with themselves, and themselves changeable. To me, that is a
much closer analogy to what a software architect does than
building architecture. I think the Alexandrian patterns are great
and wonderful, but I don't want to take them too far. I am definitely
a person who wants to bring the organic metaphors, the
movement, the ability for things to interact, to software. I think
those metaphors are more compelling and powerful, and more
accurately describe what we do.
Come back Monday, March 29 for the next installment of this conversation with Luke Hohmann. If you'd like to receive a brief weekly email announcing new articles at Artima.com, please subscribe to the Artima Newsletter.
Have an opinion about the design principles presented in this article?
Discuss this article in the News & Ideas Forum topic,
Entropy Reduction.
Resources
Luke Hohmann is author of Beyond Software Architecture: Creating and Sustaining Winning Solutions, which
is available on Amazon.com at:
http://www.amazon.com/exec/obidos/ASIN/0201775948/
Luke Hohmann is the author of Journey of the Software Professional: The Sociology of Software Development, which
is available on Amazon.com at:
http://www.amazon.com/exec/obidos/ASIN/0132366134/
The Pragmatic Programmer's home page:
http://www.pragmaticprogrammer.com/
A good place to start looking into Extreme Programming is:
http://www.xprogramming.com/
|
Sponsored Links
|