Jun
21
Posted (User ImageBrandon Satrom) in Architecture, Business on June-21-2007

 

When I was working on The Great Buy vs. Build Debate - Part II last week, I briefly mentioned that the configuration of a purchased application often takes the form of declarative programming, where a developer instructs a system in what to do, but leaves it to the system to decide how best to implement that instruction. Contrast this with imperative programming, where the system is told both the what and the how. In a moment of rabbit-trailing, I started to think about these terms as they relate to human systems. Specifically, I wondered: Does Enterprise Architecture, as an organizational function, serve better by interacting declaratively with implementing teams, or should said function be imperative in nature? Personally, I think that EA is meant to be declarative and should interact regularly with a group of implementing architects (we refer to them as Solution Architects) who “sync up” with these declarative visions and translate them into execution.

 

However, I think that in order for an EA group to truly be declarative in its interactions with other teams, there are a few things that have to be in place:

 

- An official and accountable group of SA’s;

- A high degree of trust both within and between the EA and SA groups;

- Clarity of vision/ strategy and communication from EA to SA’s;

- A healthy and consistent feedback loop from SA’s to EA.

 

I think that without these (and others, I am sure), the EA function is almost forced to have two feet in both camps, which is frustrating to both the EA team and the SA group, be it “official” or not.

 

But forget about my opinion: What do you think? Is EA truly meant to be declarative? What else belongs on the list of EA-SA collaboration prerequisites? I’d like to elaborate on this discussion more in future posts and would love some dialogue and feedback.

 

Rate this:
2.5


Comments:
no imageAdnan Masood (Check me out!) on June 25th, 2007 at 6:49 am #

Enterprise architecture is declarative in its most maintainable form. There is certain level of imperative behavior for the rules-engine-sync-up-process but by large, it should be dictated declaratively by system architects policy documents.

[...] Satrom posted a blog last week asking the question, “Is Enterprise Architecture Declarative or Imperative?” In clarifying the question, he pointed out that declarative programming is where a developer [...]

[...] week, Todd Biske linked to my post, ”Is Enterprise Architecture Declarative or Imperative?” and added some of his thoughts in a post entitled “Transparency in [...]

no imageMike Walker (Check me out!) on July 10th, 2007 at 11:18 am #

I agree with some of the concepts that EA’s should interact regularly, however I don’t really like using the terms Declarative vs. Imperative.

I believe that Enterprise Architecture is all about fostering community, provide the frameworks for decision making and provides assistance on mission critical projects. It’s less about “telling the system what to do” rather fostering collaboration with these teams. When EA’s go in by force they are viewed not only as Ivory Tower but as Traffic Cops. EA’s should step back an enable and empower the community to make the right decisions, this gives EA’s creditability and support because they are not viewed as micro-managing.

Additionally sometimes Solution Architects (SA’s) or as I refer to them Domain Architects; do not apply in certain situations. I would be careful there for that reason and that not all organizations are structured the same.

For example below are two organizations I have had interactions with over the past few months:

http://blogs.msdn.com/blogfiles/mikewalker/WindowsLiveWriter/IsEnterpriseArchitectureDeclarativeorImp_9D49/image_thumb.png

One is structured around the Org Chart the other in a domain model.

Lastly, I would check out Todd Biske’s post regarding this as well. He has some good thoughts around transparency around the interactions between teams. He focuses a lot on the Solution Architect role, I agree with that however I think the higher order bit here is that EA’s and SA’s facilitate the change they do not micro manage teams. If they do resistance will be found and the organization rebels.

no imageBrandon Satrom (Check me out!) on July 17th, 2007 at 7:48 am #

Hey Mike,

These are great thoughts, thanks for joining the discussion. I plan to respond to these comments in my next post as I think it warrants further discussion.

[...] always be a better set than when I started. Most recently for me, the topics and discussion around Declarative EA and Buy vs. Build have only refined and improved my ideas. So hear hear! Let’s get more of [...]

no imageMike Walker (Check me out!) on July 18th, 2007 at 3:34 pm #

Thanks, I look forward to the wrap-up post. As some background I am a former EA that came from a top 10 US bank. I am now focused on Enterprise Architecture here at Microsoft. Check out my blog as I am going to be blogging a bit more about my thoughts on EA.

no imageBrandon Satrom (Check me out!) on July 18th, 2007 at 3:51 pm #

I look forward to those thoughts Mike. I’ve got you in my reader and have enjoyed both your blog and the work MS is doing to expand its services to EA. I actually attended your EA talk at TechEd this year and enjoyed it quite a bit. I’d be interesting in picking your brain more on leveraging MS tools for EA at some point. Thanks again for picking up this discussion and adding your take!

[...] Walker responded to my “Is Enterprise Architecture Declarative or Imperative” question with some great thoughts that I’d like to respond to and expand upon [...]

Post a comment
Name: 
Email: 
URL: 
Comments: