Search Archives
Why New Daedalus?

Daedalus was the mythical great architect and artificer of the classical world. Today, embedded intelligence is enabling the most profound changes in the way we create and use buildings since his day.

Building Intelligence meets the Intelligent Building. The Intelligent Building negotiates with the Intelligent Grid. How will this transform how we interact with the physical world?

More on the Web
Powered by Squarespace
« oBIX – Why have an Enterprise Interface to Control Systems? | Services and Mouse Traps »

What the Programmer needs to know about Architecture (SOA 3)

As I have written before, programming and architecture are different skills, and the architect need not be a great programmer. Software Architects work primarily in models, patterns and process, not code. The chief skill of the software architect needs to be in expressing the underlying business purpose as a service.

It is easy for the programmer to see such statements and think “What a load of Rubbish!” There have been some notable rants written against the misuse of the words “Architecture”, “Enterprise” and “Service” (see Many claim the words with no idea what they mean. For others, the friction is because the architects interfere with the solitary programmer’s desire to just get things done by himself, as he sees fit. It is easy, but not correct.

But what if you are a programmer, coding happily with no interest in architecture? How should Service Architecture affect your world? I am excluding the trivial example, in that you need to be able to read the interface documents prepared by the system architect.

The programmer should know:

  • What is architecture concerned with? Can I recognize the demands of architecture and so work to strengthen rather than weaken architecture? Can I resist inappropriate requests that will cause brittle integration to harm the enterprise later?
  • How should the existing monolithic applications that I work with every day fail in part because of the lack of architecture? Can I recognize when they should be broken up. Can I recognize when multiple services are inappropriately bundled so I can get ready to move in the right direction.
  • What if my best work should not be written? A coder should learn to recognize when difficult code is substituting for good architecture. A code jockey should recognize when the problem would be solved better by adding an architect.
  • Is my best code maintainable? As a manager, I know that a job description that requires sainthood from the employee is poorly written. The same applies when an application requires virtuoso coding. An old lemma is that it is twice as difficult to debug as it is to code, so you had better not be programming at the limit of your abilities…

When he understands and acts on these issues, the Coder can stay safely away from the Architect.

Next: How Service and Security support and extend each other

PrintView Printer Friendly Version

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>