BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles IT Architecture Design Framework: ADMIT

IT Architecture Design Framework: ADMIT

Bookmarks

ADMIT (Architecture Design (or Development) Methodology for Information Technology) is a decision-making tool for systematically developing a robust architecture using twenty design forces and strategies, as well as fifteen aspects of the lifecycle processes. This methodology defines an architecture development lifecycle, its phases and processes of managing the architecture development, and can be used in conjunction with other frameworks. Additionally, this paper discusses architectural levels and domains, resource dimensions, and how architecture relates to quality and design.

Introduction

In information technology, architecture plays a major role in the aspects of business modernization, IT transformation, software development, as well as other major initiatives within the enterprise. IT architecture is used to implement an efficient, flexible, and high quality technology solution for a business problem, and is classified into three different categories: enterprise architecture, solution architecture and system architecture. Each of these classifications varies in their implementation and design, depending on the contextual business scope, organization structure, and corporate culture.

Architecture Level

Architecture level represents the scope boundary and granularity of details the architectural activity should take, based on organization hierarchy and communication audience.

Enterprise Architecture (Company level) aligns technological strategies and execution plans with business visions and objectives by providing architectural oversight and guidance. Enterprise architecture also drives consolidation, reuse, and economy of scale by addressing company-wide goals in a holistic way across all IT projects.

Solution Architecture (Department level) models a solution vision that defines the IT systems, business processes and reusable services for a specific business unit, spanning across business and technology architectures.

System Architecture (Team level) defines the structure of an information system in terms of various subsystem components and their relationships with internal and external systems. System architecture focuses on application, data, and technology, and is called software architecture in some organizations.

Architecture Level

Driving Force

System Scope

Communication Audience

Design Detail

Enterprise Architecture

Organizational/line of business/divisional vision & strategy

Highly abstracted (broad & shallow). Focus on business.

Leadership team of organization/line of business(executives, VP)

Very high level

Solution Architecture

Business Unit / departmental long-range plan & tactics

Focus on solution modeling, process improvement.

Across departments (directors, business owners, technology leaders)

Medium level

System Architecture

Project/operational goals & objectives

Centered on applications and data.

Single project/team (managers, users & developers)

Very detailed

Table 1 - IT Architecture Classification/Hierarchy

Architecture Domain

IT architecture encompasses four domains from an information management perspective, based on the components of enterprise, solution, and system architectures.

Figure 1 - IT Architecture Domains

Business Architecture (Why domain) represents the business-centric view of the enterprise from a functional perspective. Business processes, business services, and business rules are defined and designed along with the business operating model, business performance goals, and organizational structure. Architecture at any level, starts from this domain and cascades down to technology architecture.

Information/Data Architecture (What domain) describes the data assets and management resources, such as information catalogs, data models, data-flows, data quality, and data security, to support critical business functions and the governance models to share data across enterprise.

Application/Service Architecture (How domain) provides the blueprint for applications and services and their alignment with other business processes and services. Application architecture defines the logical and physical components, object models, process-flow, and cross-cutting concerns such as caching, validation, transaction etc.

Technology/Technical Architecture (Where domain) addresses the technology stack, data center, cloud delivery, network topology, and security architecture. The technology stack includes server, storage, virtualization, operating system, and middleware.

Architecture and Resource Dimension

Technology architecture prepares the infrastructure environment by optimizing the use of system resources to meet key business demands. In order to achieve better performance metrics, a balanced mix of workload, demand, throughput, and latency for a desired capacity and redundancy is required.

  • Workload refers to the computational tasks being performed within the system. Workload consumes available processor capacity, which leaves fewer resources available for other tasks.
  • Demand is the user load and addresses average and peak capacities for users at a particular point within the system. Demand mostly consumes memory for session, state and cache information.
  • Throughput corresponds to the volume of data being transferred to and from a storage medium and is measured in terms of I/O operations per second or megabytes transmitted per second.
  • Latency measures the round-trip time and the processing delay of network resources.
  • Capacity is the raw resource power in a machine. Capacity is increased by augmenting CPU, memory, network connectivity, and storage capabilities in the server and contributes to scale-up architecture (vertical scaling).
  • Redundancy refers to the case when multiple machines are sharing the workloads or system switches to other machine seamlessly when primary machine fails. This contributes to scale-out architecture (horizontal scaling).

How Architecture relates to Quality & Design

ADMIT defines the “architecture” of an information system as its structure and foundation in a run-time environment, embodied in its building blocks and characterized in their properties and relationships, in order to satisfy the functional requirements and achieve a desired set of quality attributes.

Modern IT architecture shares the same vitruvian triad that ancient Greeks defined for building architecture. Many experts define quality as the combination of fitness-for-purpose (feature) and fitness-for-use (attribute). Architecture enables and carries the qualities of system by exhibiting form, fitness and functionality.

System architecture focuses on both functional and non-functional requirements, and represents its high-level view, whereas system design deals with mostly functional requirements and represents low-level view with more implementation details. Architecture is driven by strategic initiative or business requirements, whereas design is based on architecture and follows architecture. They complement each other to implement a sustainable business solution.

Architecture Design Methodology for IT

ADMIT consists of 2 components:

  • Architecture design forces (ADF)
  • Architecture development lifecycle (ADLC)

Design forces focus on the strategies and techniques of developing the architecture systematically.

Lifecycle defines the phases and processes of managing the architecture development.

Architecture Design Forces (ADF)

In order to develop architecture with excellent system qualities, a structured thinking process is encouraged, so that the correct decision can be made to select the best possible option. ADFs are used to drive the methodical development of any architecture. They span across several areas of concern as shown in the following diagram.

(Click on the image to enlarge it)

Figure 2 - Architecture Design Forces

1. Business Force

A needs assessment from the business community should be considered first, in order to craft a successful solution. Business and IT will partner together to identify innovative solutions that satisfy requirements and adhere to IT strategy and standards. Architects transform ideas and concepts into systems and solutions; yielding the definition of business processes and services by applying their broad domain knowledge and business expertise.

2. Operation Force

Non-functional requirements, such as system health monitoring, administration, service level agreements, and operational concerns usually comes from the business and IT operations. Despite not originating from direct client needs, meeting these requirements and pursuing operational excellence is a vital component of any architectural work.

3. Aestheticism Force

Artistry and aestheticism should come into play because of human interaction with the systems we create. Architectural design delights people and raises their spirits. Seamless, effortless and attractive user interface will enhance customer experience and engagement. Helping business with right mix of technology, process, and pragmatism is a combination of both science and art. For that, left and right brains should be fused to think outside of box.

4. Future Force

In addition to current requirements, architects have to consider the relevance of the solution for next five to ten years, so that a sound and solid architecture can be built to cater the expected growth pattern. Think ahead by introducing abstraction layers (boxes on flow chart or interfaces in code), but defer implementation until it is required.

5. Simplicity Force

Simplicity not only improves the understandability of the system to its stakeholders, but also saves cost in the long run. However, sometimes complexity is unavoidable in the enterprise. Architects should be able to identify and manage the necessary complexity by abstraction or decomposition, and prevent the design entropy from taking hold. In the real world, complex systems evolve from simple working systems.

6. Change Force

In order to be competitive in the market place, we have to embrace and adopt changes quickly. For this reason, systems should be easily configurable using metadata and properties. Architecture will be better off if it is based on common foundation and building blocks to enable agility and flexibility.

7. Process Force

Outdated business processes and custom solutions should be reengineered to deliver both current and future requirements. Standardized and integrated business processes build core capabilities for execution and growth. Industry standard processes are appropriate for most functions, unless a clear competitive reason exists for a custom solution.

8. Integration Force

Integration plays a major role in sharing data between applications as well as external business in the case of corporate acquisitions. To maintain flexibility and interoperability, integration should be loosely-coupled and standard-based. Common integration patterns and messaging protocols prevent the proliferation of redundant technologies and reduce maintenance costs.

9. Implementation/Pattern Force

Architects need to provide implementation details like object models (UML), data models (ERD), shared components, data-flow diagrams, dependency graphs, service APIs, communication protocols, messaging structure, etc. to the delivery team. These patterns, frameworks, and standards play an important role in architecture design. Patterns are proven solutions of a problem within a given context. Frameworks are the implementation kits for architecture and design patterns. Technology standards are used to improve interoperability of the system.

10. Enterprise Force

Having enterprise systems, shared IT infrastructure, and company-wide core data store provides global synergy, promotes efficiency of processes, and saves overhead costs, compared to building business silos for each business vertical. Focus should be on system reusability, core business processes and master data management.

11. Constraint/Environment Force

In the organization, there may be some constraints that inevitably need to be addressed. These constraints can be related to personnel, technology, or time. We need to balance those constraints while designing the architecture. Architecture is also influenced by many environmental factors such as the organization’s structure and culture, as well as individual employee’s influence and corporate politics.

12. Failure Force

Protecting systems from a single point of failure is achieved by considering fault-tolerance, redundancy, and data replication in the architecture. Over time all hardware and software systems fail. We need to plan for success scenarios, as well as failure scenarios in order to mitigate this risk.

13. Channel Force

Companies target different customer segments via multiple channels, such as mobile, web, social media, and on premises kiosks to provide unique and differentiating user experiences. Architects need to consider various tangible devices that are available to reach the consumer, and their related technologies at the client tier for mass adaption.

14. Content Force

Content such as data and information is an enterprise asset that needs to be governed and delivered in an efficient way. Content sourcing, integration, and distribution are some of the important aspects of content strategy.

15. Platform Force

Platform covers the operating systems, virtual servers, middleware, database, and other technologies that deliver products. They play a major role in overall architecture in application and data space.

16. Infrastructure Force

To design a highly scalable and reliable infrastructure, architects consider server sizing and cluster environments to balance the workload for multiple servers and to protect the system from single point of failure. Infrastructure includes hardware stacks and the datacenter facility.

17. Network Force

To design a distributed system for a globalized environment, we have to consider next-generation networks including mobile and cloud and prepare deployment topologies with the proper network segmentation and firewall protected perimeter security.

18. Storage Force

Protecting data’s integrity is one of the most important elements in IT. These assets should be stored in a persistent storage medium such as NAS, SAN. Attention should be paid to define data replication strategy, backup and retention policy, restore and cleanup procedure.

19. Security Force

Companies formulate security policies to meet the legal and regulatory requirements of compliance, governance, and privacy in addition to protecting the organization and its brand from various risks. These policies are enforced as part of network security, application and data security, platform security, and physical security.

20. Cost Force

Minimizing cost and maximizing quality is everybody’s business in IT. Architects explore multiple of design options and their associated trade-offs in order to measure their cost and effectiveness before deciding the best possible solution of the business problem. Efficient technology is always good for company’s bottom-line.

Architecture Development Lifecycle (ADLC)

In order to manage architecture development effectively, fifteen processes have been defined in the lifecycle. These processes are agile and iterative, and are grouped into five phases: planning, design, management (from development area), optimization (optimization area) and automation (automation area) as shown below.

Figure 3 - Lifecycle Diagram

Area

Phase

Process


  Development
 
 
 
 
 
 
 
 
 
 
Planning/ Strategy (4)
 
 

Identify business vision & strategy

Plan stakeholder management

Define architecture & technology strategy

Assess current architecture

Design/ Execution (4)
 

Design target architecture

Conduct gap analysis

Develop execution roadmap

Build reference architecture

Management/ Governance (5)
 

Review architecture with stakeholders

Initiate a quick-win project

Perform implementation governance

Manage lifecycle changes

Manage architecture assets

Optimization

Optimization (1)

Improve architecture & process continuously

Automation

Automation (1)

Automate lifecycle with tool & technology

Table 2 - Processes, Phases & Areas in Architecture Development Lifecycle

1. Identify business vision and strategy

Business vision and strategic plan are identified in this process. Architecture is initiated by a business case and its objectives. This will form the basis of business architecture.

2. Plan stakeholder management (requirement management)

Stakeholders are identified for the architecture initiative. Managing their expectations, requirements, and communication needs are keys to success of any architecture implementation. Relationship management, communication, and negotiation play crucial parts in this process.

3. Define architecture and technology strategy

Management and strategic direction are defined by technology standards, asset governance, and portfolio management. Key technology decisions such as buy versus build or cloud versus premises are also considered as aspects of this strategy.

4. Assess current architecture

Architecture assessment is performed by reviewing the overall requirements of the new system and comparing them with the state of the current architecture using SWOT, MoSCoW, and other techniques. Based upon this assessment, a list of best practices is recommended for architecture advancement and adoption in later phase.

5. Design target architecture

In order to execute the proposed business strategy or to meet business requirements, the target architecture with future processes is developed using the aforementioned architecture design forces. Sometimes transition architectures are identified to deliver continuous business value before reaching the target architecture.

6. Conduct gap analysis

The current and target architectures are compared and gaps between them are identified. Impacts on upstream and downstream systems and existing processes are analyzed; identifying dependencies, synergies, risks, assumptions, and constraints that should be addressed during implementation.

7. Develop execution roadmap

Based on identified gaps, an execution roadmap with multiple project and program initiatives and sequencing action plan is developed to migrate from current state to future state, based on business priorities, costs, and expected value.

8. Build reference architecture (architecture pattern)

Reference architecture provides the architectural foundation and guidance via solution blueprints and models for future implementations across multiple organizations or business units. Architects need to implement standard, reusable platforms, and formulate best practices and repeatable patterns in their own technology’s “center of excellence”.

9. Review architecture with stakeholders

Architects need to socialize their solutions with stakeholders in order to garner support and establish consensus. Engineering solutions, architecture views, and roadmap are reviewed with stakeholders and validated for viability and feasibility in regularly scheduled checkpoint meetings to get their approval and buy-in.

10. Initiate a quick-win project

In order to realize the business value quickly, it is recommended to begin with a foundation project that emphasizes accelerating the implementation’s time-to-market. This project prepares the organization and IT environment for the future solutions that will be implemented.

11. Perform implementation governance

An architecture team will manage and monitor where the architecture standards and guidelines that are being followed by the delivery teams during regularly scheduled project architecture reviews.

12. Manage lifecycle changes

This process ensures that the architecture responds to the changing needs of business during its lifecycle. Architecture changes need to be evaluated and analyzed for their impact and then managed proactively in a controlled manner.

13. Manage architecture assets

Architecture assets are used to communicate the stakeholder’s concerns and referred to as a knowledge area for future architecture works. Deliverable artifacts such as views, models, catalogs and other assets need to be recorded and managed within a content repository in order to be congruent with version, approval, and access controls.

14. Improve architecture and process continuously

Continuous improvement of the product, process, and personnel is a key element in delivering quality solutions. Architectures are improved and optimized iteratively to maximize their value to the business. Similarly, lifecycle processes should be improved and streamlined over time in order to achieve efficiency.

15. Automate lifecycle with tool and technology

Architecture development is a process that has specific objectives and uses tools and techniques to convert inputs into output deliverables. Architecture development and the management of its processes depend heavily on architect’s skill and experience. Appropriate tools and technologies should be used to automate some parts of the development lifecycle in order to assist architects in a well-established architecture practice.

Conclusion

This generic methodology only describes high-level forces and process objectives without any implementation details. Organizations can tailor ADMIT by customizing its design forces and implementing its processes, based on their own needs, size of their organization, and scale of their solution.

ADMIT would be the way to apply the classic architectural themes of ancient Greeks to modern IT architecture for the implementation of winning solutions. May this open methodology be a helpful tool for architects and those who are braving the nebulous sea of technological changes and challenges every day.

Acknowledgement

I’d like to thank my managers – Leo Modica & Vlad Boroditsky at Nokia and former mentors at Walgreens & JPMorgan Chase for inspiring me to think critically and creatively. Also I’d like to acknowledge my past and present colleagues for bearing with me to discuss some technical and whimsical topics near water-cooler during time-out. A big thank to Harry Brumleve for his great review and feedback. Pride of place goes to my wife – Ambapali for her patience and support.

About the Author

Suman Pradhan, PMP is a senior business technologist with more than 18 years of IT experience in financial, banking, retail, healthcare, location (map) and technology industries. His research and interest includes IT architecture, application development & management, information security, and web, integration & distributed technologies. He is currently a senior IT architect at Nokia.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Nice article

    by Rajan Manickavasagam,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Captures all the different perspectives an architect needs to look at.

  • Great article indeed

    by J Li,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    BTW - Technology/Technical architecture might better map to "How domain"?

  • Re: Great article indeed

    by Suman Pradhan,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thank you for the comment. Let me take this opportunity to clarify technology/technical architecture. IT architects craft technology solutions for business problems by defining not only information and application architectures (what and how domains), but also runtime environments where the applications and services will be deployed to realize the solutions. These infrastructure and technology environments represent the “where domain” of the overall solution space. Hope it helps!

  • Good Overview perspective

    by Leo Bardenstein,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Bravo! this is a first rate article. I belive you have clearely captured the concept of the architectrual level design process. Of course one can add volumes of information to each phase in the process...but that would defeat the point of an article...

  • Technically sound article

    by Asif Syed,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Great article! Thanks for a innovative article in the IT architecture design space!

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT