Sponsored Link •
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.
Luke Hohmann is author of Beyond Software Architecture: Creating and Sustaining Winning Solutions, which
is available on Amazon.com at:
Luke Hohmann is the author of Journey of the Software Professional: The Sociology of Software Development, which
is available on Amazon.com at:
The Pragmatic Programmer's home page:
A good place to start looking into Extreme Programming is: