Customer Oriented Architecture

Marc calls Bullshit on (perspectives on) SOA (service oriented architecture).

“in the end, it’s about delivering value to the customer, isn’t it?”

I’m having problems with the “Architecture” metaphor applied to software for exactly this reason – software architecture often detracts from delivering value to the customer.

I think it would be wise for those discussing “software architecture” to take a deeper look at architecture than the unthinking stereotype that results from “just using the metaphor”, thereby transforming the metaphor to a (perhaps useful) analogy. Writing this post is my attempt to deepen my own understanding a bit, maybe it will do the same for you :)
So far, the use of “architecture” seems like a vain attempt of a young profession to borrow credibility from a much older profession. I believe it is time software development learns to stand on its own two feet.
The one thing I’m missing most in discussions and descriptions of “software architecture” is context and history. Building architecture has many “schools”. Each school puts emphasis on other values. An architect, or a team of architects can belong to one or more schools, at the same time, or over time. Or they develop their own style.

Building projects and architects are driven by many factors. For some it seems to be mainly aesthetics:

piramide near the louvre, paris

the piramide @ the Louvre

For others it may be research into new materials:

eiffel tower by night

Eiffel Tower
For others it may be adapting to traditional buildings in the environment:

buildings in shanghai

For some projects (e.g. hanging a photo on the wall) using an architect would be somewhat of an overkill. Using an interior designer might be a good idea in some cases, in the Netherlands they are called “binnenhuis architecten”, meaning “inside (house) architects”. For other projects, an architect is not enough, and an urban planner may be needed:

view on the scheveningen beach

Scheveningen, the beach front of the Hague
view on delft

Delft city centre and some of its edges
Other architects, in the vein of Christopher Alexander and Frank Lloyd Wright take a fractal view of architecture. They pay as much attention to why what lamp is hanging where (interior) as to how buildings fit in the (urban) landscape around it:

Monona Terrace Community and Convention Center parking lot overlooking Lake Monona in Madison, Wisconsin

Monona Terrace Community and Convention Center parking lot overlooking Lake Monona in Madison, Wisconsin, designed by Frank Lloyd Wright

Monona Terrace Community and Convention Center parking lot overlooking Lake Monona in Madison, Wisconsin

Inside of the convention center, also designed by Frank Lloyd Wright

I used to like the “architect also implements” pattern. Johanna Rothman’s Architects Must Write Code seems to be a more prescriptive variant of the pattern – I’m missing the contexts in which it applies, and contexts in which it doesn’t. Reading Architect as Consultant? it seems Johanna believes architects who don’t program on “the project” can’t work. In Rotterdam we used to say “Kan niet bestaat niet” (‘Can not ‘ exists not). Rotterdam was re-built from scratch, after the city-centre and more was destroyed in a blazing fire, resulting from a bombing in the second worldwar.

If you’re building just a house, “architect also implements” might be feasible, or maybe it is the master builder that also designs. If you’re re-building a city, having the urban planner run around with a hammer and a box of nails would be seen as micro-managemement.

To me the main question is: how does the “architect” know the influence she has on the project, and how does she receive and learn from the feedback about the thing as it is (being) built? For a small project, actually participating in the implementation may be a good idea. I like to pair program with others, and collaboratively develop the (technical) architecture. For a larger project, being present at stand-ups, temperature readings and retrospectives may be a good idea.

We shouldn’t forget that building software is not only about technology. A good “architect” also takes into account the landscape around the software and the people living in it. Diving deep into software development may make one focus on the hammer and nails, and forget about the landscape.

I’m currently involved in an architectural project for a Really Large Corporation that is more comparable in scale to “urban planning”. The role of me and my colleagues is more that of city planners, determining which buildings fit where, and where buildings have to be demolished to make place for highways (I’m consulting on fits and misfits of existing software, software under construction, and assessing the way(s) in which they are constructed and hosted by vendors, internal suppliers and customers).

Actually implementing things, and having done that in the past gives me a perspective that makes it easier to call “Bullshit” on this project. For instance, when SOA related performance issues come up, I can use my experience on implementing a similar system to provide a perspective.
“Implementing” for this particular project wouldn’t make sense to me; I would lose the perspective I need to participate in “urban planning” of multiple (software and organisational) systems.

To me, developing software is about providing value to the customer now and in the future. I prefer to think of “software architecture” as a fractal, taking into acount which types of events have to happen here, placing a lamp if appropriate, and at other times looking at how the buildings fit in the landscape; if and how “architecture” and “architects” provide value depends heavily on the context.

9 Responses to “Customer Oriented Architecture”

  1. Graham Oakes Says:

    Well said.

    We need to get better at describing what sort of architecture we’re talking about – enterprise architecture (town planning) is different to software architecture (building design), and information architecture, business architecture, etc, etc are all different again. When we try to use the single word “architect” to encompass all these, we just confuse ourselves.

  2. Johannes Link Says:

    I’ve written a follow-up to your story.

  3. Willem van den Ende Says:

    Thanks Graham and Johannes!

    Graham wrote: ‘When we try to use the single word “architect” to encompass all these, we just confuse ourselves.’

    Johannes wrote: “In those projects, however, there’s probably room for a couple of architects, all of them with different decision scopes. And probably we should give them different job titles, too..”

    Using the word ‘architect” for different scopes is confusing indeed.
    It’s a strange place I find myself in, not squarely defending ‘architect also implements’ :) .

  4. me.andering » Blog Archive » Architect also hammers nails Says:

    [...] me.andering Flowing slowly through the lowlands « Customer Oriented Architecture [...]

  5. nynke.andering » Blog Archive » Stopping worlds Says:

    [...] And apparently I’m not alone relating and stabilizing 5: Read Marc’s bullshit 2.0 Willem’s Customer oriented architecture [...]

  6. nynke.andering » Blog Archive » Game ingredients Says:

    [...] The true count for a swat depends on the observable elegance of a swat, the humor in it’s stances, and the amount of higher energy from the swattee redirected for grounding the swattee. If its a full redirect and no energy whatsoever needs to be channeled by swatter, the game is over and won by both. Example in Preventing creative constipation. For more from my partners in crime: Rick’s “If only I had known II” [...]

  7. What’s an Architect Anyway? « My Not So Private Tech Life Says:

    [...] sake – I’m sometimes called an architect myself; that’s why Willem’s article on customer-oriented architecture made me reconsider my attitude about “software architects” in general and my personal [...]

  8. Kevin Says:

    Its so beautiful design, planning to go holiday :)

    The SOA

  9. landscape architect Says:

    This blog makes a comparison between architecture and software architecture and explains to people the similarities in the concept in them. In this, the word architecture has been used as a metaphor whilst we compare the two things.
    Regards, Bob Richardson