Enterprise Integration Zone is brought to you in partnership with:

I'm a software developer working as a senior consultant at Kentor in Stockholm, Sweden. My core competence is as a technical specialist within development and system architecture. In my heart I am, and probably will remain, a programmer. I still think programming is tremendously fun, more than 20 years after I first tried it. That's why my blog is named Passion for Coding.  Anders is a DZone MVB and is not an employee of DZone and has posted 81 posts at DZone. You can read more from them at their website. View Full User Profile

Don't Be Just a "Bubbles and Arrows" Architect

10.22.2012
| 10993 views |
  • submit to reddit

We’ve all seen it: An architect explaining something with a sketch containing bubbles and arrows on a whiteboard. Sometimes the architecture is perfectly realized in the project, sometimes not. Looking at the sketches there are few differences. Why are only some possible to realize?

Let’s look at a typical system sketch drawn by an architect. (My skills at drawing in paint are even worse than my whiteboard sketches, but I hope you get the idea) The project using the design by this architect will be a complete failure. All attempts to build a system according to the architecture will fail miserably when the implementations of the components get incredibly expensive, while the result is a performance nightmare impossible to use for real work.

We’ll get back to where it went wrong shortly. But first, let’s look at a sketch that works.

 

Another architect draws this image. The project delivers high quality software on (or maybe even ahead of) schedule.

You can stop comparing. There is no difference. Actually, it’s the same image displayed twice.

So what’s the difference? The sketches are the same, but the outcome of the projects are completely different.

Bubbles and Arrows Architects

The difference is not in the drawings. The difference is between the architects. There are 10 different types of architects. Those that know binary counting and those that don’t.

Those that know binary counting often have a strong background in coding and know what works and what doesn’t. Those architects will rely on their very own personal experience from implementation and set a pride in being sure that every single piece of the architecture is realizable. They might not be the best coders any more, but they know the craft. They could possibly write most of the system themselves and for those parts they don’t master themselves they listen to developers who do.

Those that doesn’t know binary has a weaker background. In my experience, they are often people that never had a strong passion for programming. Instead, they tried to skip the hard work of learning to create working solutions themselves and went straight for the architecture. The problem is that their whiteboard drawings will only be just drawings. Eventually they will drift off to so high abstraction levels that they become architecture astronauts.

Real architects making the drawing above think of how to implement every single of those boxes when drawing them. For each box they draw, they have an idea of what framework and tools to use and they know that all the components will work together.

A bubble and arrows architect will draw the same boxes and lines, but will typically dismiss any questions on how to implement it.

It’s an implementation detail, for the developers to handle.


If you hear that in a project, don’t walk. Run.

The Other Eight Types

That’s two types of architects. If you’re looking for a list of eight more types I must make you disappointed. It was a joke. A very geeky, mathematical joke, that most people with strong coding experience understands.

Published at DZone with permission of Anders Abel, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Jose Maria Arranz replied on Mon, 2012/10/22 - 2:01pm

There's nothing wrong with "Bubbles and Arrows" the problem is overvalue "Bubbles and Arrows" and undervalue "the implementation guy", you know, the devil is in the Impl class.

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.