The purpose of this page is to answer the question: How should an IT Architecture team be organized within a large company?
ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems, provides the following definition for architecture:
Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. This definition is intended to encompass a variety of uses of the term architecture by recognizing their underlying common elements. Principal among these is the need to understand and control those elements of system design that capture the system’s utility, cost, and risk. In some cases, these elements are the physical components of the system and their relationships. In other cases, these elements are not physical, but instead, logical components. In still other cases, these elements are enduring principles or patterns that create enduring organizational structures. The definition is intended to encompass these distinct, but related uses, while encouraging more rigorous definition of what constitutes the fundamental organization of a system within particular domains.
Here is my definition for Architecture:
Architecture is the set of decisions that must be made at the enterprise level before specific applications are designed and built in order to provide conceptual integrity and sanity across the enterprise’s systems. Architecture includes a decomposition of the systems into separate orthogonal viewpoints along with the enforced rules that enable this clean decomposition and isolation of design viewpoints. This is done so functional (application requirements) and non-functional (system qualities) and other aspects of the application system may be defined and built by independent specialists in their specific field. An architecture not only divides the system, it also divides the roles and responsibilities of those who work with the system into separate organizational concerns and disciplines that are conceptually tractable and can be effectively managed.
Architects are divided into Enterprise Architects and Project Architects (PA).
Enterprise Architects are focused at the IT enterprise level and connectivity between multiple applications. Enterprise Architects are geared to be more proactive, less reactive; more strategic, less tactical. Enterprise Architects provide guidance to the Project Architects who apply enterprise standards and guidelines at the project level.
Project Architects are focused at the project level and working with the developing vendor to design and implement the project. PAs report to Project Managers, but have a dotted-line responsibility to the Enterprise Architects in order to maintain consistency and interoperability across systems.
n Responsible for translating business requirements into systems qualities and thence into repeatable design strategies and patterns that enable those qualities (e.g. adaptability, scalability, availability, non-repudiation, reusability, etc.).
n Responsible for enterprise application integration (EAI). This includes defining the opportunities for integration, selecting the tools, specifying the shared data & code resources, defining the interfaces and data-flows, and monitoring the success of said integration.
n Compiles or designs architectural models of current and proposed systems across the enterprise for use internally and in conjunction with Technology Partners. The models are of two types:
n Enterprise Models that depict the entire enterprise and its inter-relationships.
n Reference Models that depict recommended & approved technologies & designs, which can serve as a template for future projects.
These models cover the following viewpoints:
n API Stack of blessed Open Standards and Proprietary Technologies (expanded OSI 7-Layer Model)
n Application Map
n Data Flow Diagram
n Business Process Models (from the Business Process Group)
n Logical & Physical Data Schema
n Hardware Infrastructure Diagram
n Network LAN & VLAN Infrastructure Diagram
n Also, where needed to clarify application requirements, Unified Modeling Language (UML) diagrams, viz.: Use Case, Class, Package, Object, Sequence, Collaboration, State-chart, Activity, Component and Deployment Diagrams.
n Establishes the Design Repository and Metadata Repository for integrating all aspects of these models, and provides oversight of its use in conjunction with integrated Tool sets.
n Perform design reviews across the organization. (Note: not code reviews.)
n Leads the evaluation of vendor software targeted for possible integration into the systems or environment, including strategic applications, tools, and utilities.
n Defines the IT design methodology, development process methodology and best practices.
n Surveys external emerging developments, and evangelizes new technologies, standards and methodologies that will have a positive impact on the company's bottom-line and quality of service.
n Participates in external standards body work that defines IT standards in the health community.
The Architecture team is divided into a number of roles based on an orthogonal “separation of concerns”:
n Chief Architect
n Applications Architect
n Data Architect
n Information Architect
n Internet Architect
n Network Architect
n Systems Architect
n Security Architect
n Process Architect
n Project Architects (PA)
All but the last role comprise the Enterprise Architects. Each role (with the exception of the PA) is focused on issues at the enterprise level and across all projects. Due to the shortage of resources many architects hold more than one of the positions described below. In some cases there already exists a central department within the company that has an enterprise focus on one of these roles. In this case the Enterprise Architect may reside in this team and be matrixed into the Architecture team. By this means all architectural work is coordinated across all dimensions and projects.
n Coordinates and facilitates the activity of the Enterprise Architects and Project Architects with existing projects; removing road-blocks where necessary.
n Takes proactive escalation of probable system problems or design flaws to upper management before serious impact on ROI.
n Assures the complementary synthesis of all standards, models, designs and methodologies recommended by the Enterprise Architects.
n Acts as evangelist of the work and recommendations of the architecture team.
n Selects the paradigm and technology for application program-to-program communication (APPC) among the components.
n Determines the overall priority ranking of each of the possible system qualities (cost, reusability, robustness, etc.) so the other architects can design models that enforce the “balance of concerns”.
n Responsible for defining the application tiers, frameworks, components types and interfaces. Also, creates the first-draft graphical template of UML design models used by the Project Architects.
n Specifies and provides ownership of reusable application components or reusable application code.
n Sets Data Policy and the technical solution for the management, storage, access, navigation, movement, and transformation of data.
n Specifies recommended DBMS and ETL tools and technologies for structured and unstructured content.
n Creates and maintains the Metadata Repository.
n Creates a semantically rich business model of the enterprise problem domain that:
n Is independent of any technology solution
n Defines the Content of the business
n Compiles and maintains the Enterprise Schema across all applications.
n Enforces principles of good canonical data design.
n Examines and enforces opportunities to provide data reuse, balancing the issues of centralization and replication.
n Ensures the preservation of strategic data assets as applications and technologies de jure come and go.
n Reviews the policies and work of the Data Base Administrators.
Because there already exists a central Web Hosting team the Information Architect may reside in this team and be matrixed into the Architecture team.
Richard Saul Wurman, the father of information architecture, describes the role in these words: “The individual who organizes the patterns inherent in data, making the complex clear.” “A person who creates the structure or map of information which allows others to find their personal paths to knowledge.” “The emerging 21st century professional occupation addressing the needs of the age focused upon clarity, human understanding, and the science of the organization of information”
n Defines the visual roadmap seen by the customers of the company with emphasis on making it easy for customers to find the needed data to make appropriate decisions regarding their medical care and management.
n Establishes branding policy and holds the UI templates.
n Establishes the personalization policy with a goal to building customer loyalty and relationship enrichment.
n Defines the recommended dialog flow for long-running transactions and “speech acts” in coordination with the Business Process Group.
n Monitors the emerging standards for B2B & B2C internet interaction and sets the standards and technologies to be used by the enterprise. These include the existing HTML, applet & XML standards, and the emerging web services and semantic net standards.
n Coordinates with the other architects on issues dealing with the quality flaws of the existing standards, especially security, session state and long-running transactions.
n Builds a composite reference model to be used on internet-based applications, incorporating the models provided by the system architect, network architect, security architect, and applications architect.
Because there already exists a central Network team the Network Architect may reside in this team and be matrixed into the Architecture team.
n Focuses on the lower-level transport protocols and the standards and technologies for enabling systems qualities via network command-and-control structures.
n Evaluates and selects the enterprise’s networking hardware.
n Manages the network topology.
n Establishes network operation center (NOC) command-and-control structures for auto-discovery, event monitoring, trouble ticketing.
n Facilitates the upgrade to the Web-Based Enterprise Management (WBEM) standard of the Distributed Management Task Force (DMTF) and select the appropriate Common Information Model Object Manager (CIMOM) for tracking the state of the enterprises assets.
n Focuses on the standards and technologies for enabling systems performance qualities, such as availability, scalability, recoverability, etc.
n Evaluates and selects the enterprise’s server hardware, operating system, job control.
n Supports the Applications architect in selecting the application framework.
n Balances the quality issues cost vs. robustness, and hardware architecture, such as share-nothing n-tier vs. share-all symmetric multi-processing (SMP).
n Monitors performance benchmarks provided by the Transaction Processing Council (TPC).
n In conjunction with the Project Architect (PA) sizes the application and selects the hardware and configuration to use.
n Participates in the drafting of Service Level Agreements (SLA).
n Establishes a process to monitor existing systems for performance problems and drafts system migration plan if necessary.
n Monitors security guidelines, such as HIPAA.
n Establishes and enforces the Security Policy and Trust Model for Administrators to follow in delegating and granting application privileges.
n Establishes and enforces the Security Model, technologies and standards for system architects and designers.
n Tracks warnings of new types of security threats and assures that the systems in place guard against these threats.
n Establishes the systems for discovering, tracking and convicting abusers of security and system integrity.
n Performs periodic security audits on existing systems.
While the other architects are focused on what the system should contain, the process architect is focused on how the application should be designed and built.
n Reviews and selects the Design Methodology and Modeling Language. Methodologies may be based on the Zachman, Rational Unified Process (RUP), Catalysis, RM-ODP, Iconix, SAADAM, etc. The modeling language should incorporate the Business Process Model (BPML) and the Unified Modeling Language (UML).
n Reviews and selects the Process Management Methodology. It is recommended that the new iterative methodologies from the Agile Alliance be reviewed for adoption, esp. Feature-Drive Development (FDD).
n Defines roles & responsibilities and creates a template Project Plan for modification by Project Managers.
n Selects CASE & IDE tool & Design Repository.
n Communicates the above to the development teams, and is enforced by the Project Architects (PA).
n Manages the education of the PAs.
n Responsible for translating application requirements and business process models (BPM) into component and interface specifications.
n Ensures that the Technology Partners and development teams adhere to the principles established by the Enterprise Architects.
n Designs first-draft graphical UML & ER models that are delivered to the software development & DBA teams.
The activities of the Project Architect (PA) can be contrasted with the Project Manager (PM) as shown in the following table:
Organize project; manage resources, budgets, schedules
Organizes team or technology partner around design; manages dependencies
Negotiate with marketing; emphasis on business process and user interface
Review requirements; emphasis on functionality and system qualities
Handle hiring; performance appraisals, salary; motivate employees
Interview candidates; provide input on technical capabilities of staff; motivate development team
Introduce new technologies per architect’s recommendations
Recommend technology, standards, training, tools
Ensure quality of product
Ensure quality of design and operational control characteristics
Measure productivity, size, quality
Ensure design goals are met, volumetrics do not exceed scale