Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Wikipedia defines Enterprise Architecture as follows:

An enterprise architecture (EA) is a rigorous description of the structure of an enterprise, its decomposition into subsystems, the relationships between the subsystems, the relationships with the external environment, the terminology to use, and the guiding principles for the design and evolution of an enterprise. This description is comprehensive, including enterprise goals, business functions, business process, roles, organisational structures, business information, software applications and computer systems. Practitioners of EA call themselves "enterprise architects."

An enterprise architect is a person responsible for developing the enterprise architecture and is often called upon to draw conclusions from it. By producing an enterprise architecture, architects are providing a tool for identifying opportunities to improve the enterprise, in a manner that more effectively and efficiently pursues its purpose.

As a company grows, the enterprise architecture has a tendency to fracture (if it existed at all) and become a big ball of mud.

Unfortunately at that point, any individual development group within a company is usually not structured or positioned properly to create an enterprise architecture, and there is usually little incentive for any particular group to do so since they are focused on their business problems.

On the flip side, creating a separate "architecture group" that is not closely aligned with the business priorities and delivers from on high what architecture should be isn't sufficient either since the work they do usually falls on death ears by those people doing the "real work."

What then is the best way to create and guide an enterprise architecture?

share|improve this question
add comment

2 Answers

I work in a very large company. We do have dedicated enterprise architecture resources, but a lot of the direction comes from developers and architects who work in the business groups. The enterprise team focuses on a role of facilitation. There are individual "Centers of Excellence" which function as forums and governance bodies for a particular technology space. Generally these are lead on a rotating basis by people who actively work on projects in that space. These centers define product roadmaps, work with information security to develop and maintain baselines and standards, create the build packages for various platforms etc. They also form workgroups for specific efforts such as defining standards for product use of new technologies.

I will not say this is the best way to do it and it is fairly heavyweight so would not suite even a medium-large company but we have over 30,000 people working in technology on more than 10,000 applications.

share|improve this answer
    
+1: Facilitation. Further, the "Enterprise Architecture" isn't a goal, it's more of a direction. The architect tries to get developers to head in a common direction. Each solution, each product, each initiative is at a different point; ideally with a common direction. Except, some products will be discontinued, so they don't match other products which are big money makers. So there's not one architecture; and the goal should be constantly moving forward. –  S.Lott Jun 3 '11 at 19:32
    
I agree with rotating teams. Teams dedicated to non line of business work can become disconnected from the practical implications of their decisions. –  Tjaart Jul 5 '12 at 9:43
add comment

The same way as any other architecture: iteratively in vertical slices with continuous feedback, refactoring and refinement. "Enterprise Architecture" is just a solution in search of a problem. Design just enough up front to deliver something of value, then do it again. Refactor your designs so that they always represent your best current knowledge of the domain. Use a process of continuous improvement.

In other words, the best way to create and guide an enterprise architecture is the same as the best way to create and guide a non-enterprise architecture, because they are the same.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.